## Q : ARC는 무엇인가? - 참조 타입의 인스턴스가 더 이상 필요하지 않을 때 자동으로 메모리를 해제하는 기술 - ARC는 컴파일 타임에 자동으로 구문 분석해서 관리를 한다. 그래서 실행 중에는 별도의 메모리 관리가 이루어지지 않는다. ## Q : ARC 이전의 메모리 관리는 어땠을까? - MRC : Manual Reference Counting으로 Objective-C에서 개발자가 직접 참조 관리를 하는 방식이다 ## Q : ARC를 이해해야 하는 이유는 무엇무엇이 있을까? - 객체들끼리 혹은 클로저와 객체사이의 강한 참조 순환을 막아 메모리 누수를 없애기 위해서 이해해야 한다. ## Q : 언제 구조체를 선택하고 언제 클래스를 선택해야할까? 구조체 선택을 고려할 때 - 주 목적이 관계된 값을 캡슐화하는 것일 때 - 인스턴스, 내부 프로퍼티가 참조보다는 복사되기를 원할 때 - 프로퍼티나 메소드 등을 상속할 필요가 없을 때 - Objective-C와 상호 운용성이 없을 때 - 작은 값을 처리할 때(블로그) - 고유 identity가 존재하지 않을 때(공식문서) 클래스 선택을 고려할 때 - 상속을 사용할 때 - 참조 타입으로 활용하여, 값이 변할 수 있는 데이터 구조일 때