Skip to content

Latest commit

 

History

History
49 lines (32 loc) · 3.36 KB

231123-ARC.md

File metadata and controls

49 lines (32 loc) · 3.36 KB

ARC(Automatic Reference Counting)

"ARC(Automatic Reference Counting)" 는 객체의 수명과 객체 관계를 모델링합니다.

위 문장의 의미는 다음과 같습니다.

✅ 객체 수명 모델링.

ARC는 프로그램 내에서 객체가 언제 생성되고, 얼마나 오래 존재해야 하는지를 추적합니다. 객체의 "수명"은 객체가 메모리에 할당되어 있는 시간을 의미합니다. ARC는 이 객체가 더 이상 필요하지 않게 되는 시점을 파악하여, 자동으로 메모리를 해제합니다.

✅ 객체 간 관계의 모델링.

프로그램 내의 다양한 객체들은 서로 참조 관계를 가질 수 있습니다. 예를 들어, 한 객체가 다른 객체를 소유하거나, 서로를 참조할 수 있습니다. ARC는 이러한 참조들을 관리하여, 객체 간의 관계가 메모리 누수(Memory leak)나 강한 순환 참조(Strong Reference Cycles)를 일으키지 않도록 합니다.

"Swift는 ARC를 사용하여 앱의 메모리 사용을 추적하고 관리합니다. 대부분의 경우에 이는 Swift에서 메모리 관리가 '저절로 작동한다'는 것을 의미하여, 개발자가 직접 메모리 관리를 신경 쓸 필요가 없습니다."

🙌 위 문장은 "ARC의 역할" 을 정확하게 나타냅니다.

"ARC는 더 이상 필요하지 않은 클래스 인스턴스에 사용된 메모리를 자동으로 해제합니다."

🙌 위 문장은 "메모리 자동 해제" 에 대해 설명합니다.

또한 클래스 인스턴스에 사용된 메모리는 더 이상 필요하지 않게 되면 ARC에 의해 자동으로 해제된다고 해석이 가능합니다. 즉, 인스턴스가 더 이상 사용되지 않으면 ARC가 메모리를 자동으로 정리한다는 뜻입니다.

"그러나 몇몇 경우에는 ARC가 여러분의 코드 부분 사이의 관계에 대해 더 많은 정보를 필요로 하여 메모리를 관리합니다. Swift에서 ARC를 사용하는 것은 Objective-C에서 ARC를 사용하는 방법에 대해 설명된 Transition to ARC Release Notes에서 기술된 접근 방식과 매우 유사합니다."

🙌 위 문장은 "특정 상황에서의 추가 정보 필요성" 에 대해 설명합니다.

또한 Objective-C 와의 유사성을 설명하고 있습니다.

"참조 카운팅클래스 인스턴스에만 적용됩니다. 구조체와 열거형은 값 타입(Value type)이며, 참조 타입(Reference Type)이 아니고 참조에 의해 저장되거나 전달되지 않습니다."

🙌 위 문장은 "참조 카운팅의 적용 범위" 에 대하여 설명합니다.

참조 카운팅은 클래스 인스턴스에만 적용됩니다. 구조체(Structure)와 열거형(Enumerations)은 값 타입(Value Types)이며, 참조 타입(Reference Types)이 아니기 때문에 참조 카운팅의 대상이 아닙니다. 이들은 참조가 아닌 값으로 저장되고 전달됩니다.


참고 자료 📚