본문 바로가기

DEVELOPER

[Mac App] 5월부터 '가비지 컬렉션' 사용한 맥 앱 ARC로 전환 필수




애플이 지난 20일, 맥 앱에서 ARC로의 전환을 필수로 하겠다고 개발자 사이트 공지했습니다. 

iOS의 경우 처음부터 가비지 컬렉션을 지원하진 않았습니다만, Objective-C를 공부하신 분이라면 Obj-C도 자바 등과 같이 '가비지 컬렉션'을 지원한다는 것을 알고 계실껍니다. 


간단하게 두가지를 설명드리자면, '가비지 컬렉션' 방식은 프로그램이 실행 중일때 사용되는 전체 메모리를 읽어 필요없는 메모리를 삭제하는 방식으로 동적으로 메모리를 관리하는 것입니다. 때문에 '가비지 컬렉션'을 위해 항상 일정 메모리를 차지했어야 합니다. 애플도 이러한 단점을 알고 자원이 한정적인 모바일 환경에서는 애초부터 가비지 컬렉션을 지원하지 않았습니다.


이와 달리, ARC(Automatic Reference Counting)는 코드를 빌드할 때 컴파일러가 프로그래머 대신 적절한 위치에 release 코드를 넣어주는 것을 말합니다. (Objective-C는 retain count 방식의 메모리 관리를 사용하는데, 자세한 설명은 생략)

즉, 개발자가 release코드를 넣지 않았을뿐 컴파일러가 대신 넣어준 release 코드로 메모리를 수동으로 관리하는 것 처럼 동작한다는 것입니다.


이러한 성능과 관리상의 이점으로 2011년 ARC가 나온 이후로 빠르게 가비지 컬렉션을 대체 해왔습니다. 하지만 여전히 맥 앱스토어에는 '가비지 컬렉션'을 사용한 앱들이 있는데 애플의 이번 결정으로 더 이상 신규 등록이나 업데이트를 강제로 제한함으로써 ARC로의 완전한 전환을 선언한 것입니다.


수동으로 메모리를 직접 관리하시는 개발자 분들은 그냥 하시던대로 개발 하시면 됩니다. 저는 애초에 사용한 적도 없어서;;;


[참조]

- BACK TO THE MAC

- APPLE DEVELOPER




'DEVELOPER' 카테고리의 다른 글

C :: 비트 연산자  (0) 2016.03.18
Git Stash - 임시 보관하기  (0) 2016.03.15
프레임워크와 라이브러리의 차이  (0) 2015.04.01
ARC 특정 리소스에만 적용/해제 하기  (0) 2015.02.23
[퍼옴]APNS 따라하기 시리즈  (0) 2014.02.07