iOS

Memory Management & ARC

ARC, strong/weak/unowned, retain cycle, capture list, 메모리 누수, 프로파일링

22 면접 질문·
Senior
1

iOS에서 ARC(Automatic Reference Counting)란 무엇입니까?

답변

ARC는 객체에 대한 참조를 세는 자동 메모리 관리 메커니즘입니다. 컴파일러가 retain과 release 호출을 자동으로 삽입하여 수동 관리가 필요 없게 합니다. 참조 카운트가 0에 도달하면 객체는 해제됩니다. ARC는 일반적인 메모리 누수를 방지하여 iOS 프로그래밍을 크게 단순화합니다.

2

ARC에서 strong reference란 무엇입니까?

답변

strong reference는 참조하는 객체의 참조 카운터를 증가시킵니다. 기본적으로 모든 변수는 strong reference입니다. 적어도 하나의 strong reference가 객체를 가리키는 한 객체는 메모리에 남아 있습니다. strong reference를 너무 많이 사용하면 해제를 방해하는 retain cycle이 생길 수 있습니다.

3

retain cycle(순환 참조)이란 무엇입니까?

답변

retain cycle은 둘 이상의 객체가 서로 strong reference를 보유할 때 발생합니다. 각각이 상대방의 참조 카운트가 0에 도달하는 것을 막기 때문에 어느 쪽도 해제될 수 없습니다. 이는 메모리 누수를 발생시킵니다. retain cycle은 순환 관계에서 weak 또는 unowned reference를 사용하여 방지합니다.

4

ARC 메모리 관리에서 deinit의 역할은 무엇입니까?

5

weak reference와 unowned reference의 차이점은 무엇입니까?

+19 면접 질문

다음 면접을 위해 iOS을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기