무지성 내 생각

이건 몰라서 검색해봄

정리

ARC가 없던 시절에는 개발자가 메모리 관리를 해주어야 했다.

따라서 메모리를 관리하는 방법에 Retain과 Release 라는 키워드를 사용하였다.

애플에서는 이 방식을 MRR(Manual Retain Release) 라고 명명하였다.

Retain은 객체의 레퍼런스 카운트를 증가시킨다. 그리고 카운트 되어있으면 메모리에서 해제되지 않는다.

Release는 객체의 레퍼런스 카운트를 감소시킨다. 객체를 더이상 사용하지 않거나 메모리에서 해제하고 싶을 때 이 함수를 호출하여 레퍼런스 카운트를 감소시킬 수 있다.

이 비효율적인 것을 극복하기 위해 애플에서는 ARC를 만들게 됐던 것이다.