---
# System prepended metadata

title: Untitled

---

## Q : ARC는 무엇인가?

- 참조 타입의 인스턴스가 더 이상 필요하지 않을 때 자동으로 메모리를 해제하는 기술
- ARC는 컴파일 타임에 자동으로 구문 분석해서 관리를 한다. 그래서 실행 중에는 별도의 메모리 관리가 이루어지지 않는다.

## Q : ARC 이전의 메모리 관리는 어땠을까?

- MRC : Manual Reference Counting으로 Objective-C에서 개발자가 직접 참조 관리를 하는 방식이다

## Q : ARC를 이해해야 하는 이유는 무엇무엇이 있을까?

- 객체들끼리 혹은 클로저와 객체사이의 강한 참조 순환을 막아 메모리 누수를 없애기 위해서 이해해야 한다.

## Q : 언제 구조체를 선택하고 언제 클래스를 선택해야할까?

구조체 선택을 고려할 때
- 주 목적이 관계된 값을 캡슐화하는 것일 때
- 인스턴스, 내부 프로퍼티가 참조보다는 복사되기를 원할 때
- 프로퍼티나 메소드 등을 상속할 필요가 없을 때
- Objective-C와 상호 운용성이 없을 때
- 작은 값을 처리할 때(블로그)
- 고유 identity가 존재하지 않을 때(공식문서)


클래스 선택을 고려할 때
- 상속을 사용할 때
- 참조 타입으로 활용하여, 값이 변할 수 있는 데이터 구조일 때

