lunchScreen/Interview_Questions

Retain Count 방식에 대해 설명하시오.

Opened this issue · 3 comments

Retain Count 방식에 대해 설명하시오.
  • Swift는 ARC를 이용해 Memory를 관리합니다. ARC는 Memory를 reference하는 숫자가 0 초과일 때 retain하고, 0이 되면 Memory에서 release하는 방식입니다.

  • Comfile time에 reference가 발생할 때마다 reference count를 1 증가시키고(retain), reference가 사라지면 reference count를 1 감소시키는(release) code를 자동으로 넣어 줍니다.

  • Run time에 삽입된 retain과 release code가 실행되면서 reference count가 0이 되면 Memory에서 해제되는 방식으로 작동합니다.

  • GC, ARC의 개념

  • ARC란 무엇인지 설명하시오.

ARC에서는 컴파일 타임에 참조횟수를 관리하여 특정 인스턴스를 메모리에 올리고 내립니다. 이 때 특정 참조값에 대한 참조가 늘어날때마다 reference count를 증가시키는데 이를 retain이라고 합니다. 참조가 모두 사라져 해당 count가 0이 되면 메모리에서 해제됩니다.

retain count는 객체 하나가 다른 객체에 의해 참조되거나 소유된 횟수를 의미합니다. ARC(Automatic Reference Counting) 방식은 자동으로 Reference Count를 계산하여 count가 0이 되면 메모리 할당을 해제합니다.

만약 Xcode의 Build Settings에서 automatic reference counting 기능을 끄면 MRC(Manual Reference Counting)가 됩니다. 이 경우 개발자가 직접 수동으로 참조 횟수를 계산해야 합니다. 이 경우 객체에 접근해 참조 횟수를 확인할 수 있는데, 그 프로퍼티 명이 retain count입니다.

https://babbab2.tistory.com/28