You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Q. Swift에서 메모리 관리는 어떻게 이뤄지나요? A.
Swift에서 메모리 관리는 ARC(Automatic Reference Counting)를 통해 이뤄집니다.
ARC는 클래스 인스턴스와 같은 참조 타입의 메모리를 자동으로 관리하여 참조횟수인 Reference Count를 기반으로 참조가 0이 될 때 메모리를 해제합니다.
Swift 메모리 영역은 Code/Data/Stack/Heap 영역으로 나뉘어집니다.
이 중 Heap 영역은 참조 타입 인스턴스가 저장되는 영역이므로 프로그래머가 동적으로 메모리를 할당하고 해제해줘야합니다. Swift는 이 Heap 영역의 메모리를 ARC를 통해 자동으로 관리하여 메모리 누수를 줄이고 개발자가 메모리 해제 작업에 크게 신경쓰지 않도록 돕는다는 장점이 있습니다. 개발자는 ARC를 통해 메모리 누수를 발생할 수 있는 순환참조 문제를 조심해야합니다.
Swift는 ARC를 이용해 메모리 관리를 합니다. ARC는 객체의 참조를 자동으로 카운팅하여 이를 토대로 객체의 수명을 관리합니다.
기본적으로 생성된 객체는 참조 카운트 1을 가지고 강한 참조가 생길 때마다 참조 카운트가 증가합니다.
카운트는 강한 참조가 해제될 때마다 감소되고 참조 카운트가 0이 되면 메모리에서 해제됩니다.
ARC 환경에서 두 객체가 서로 강한 참조를 가지게 되면 순환 참조가 발생하고 이는 메모리 누수를 유발합니다.
이 경우 weak과 unowned 키워드를 이용해 순환참조 문제를 해결할 수 있습니다.
The text was updated successfully, but these errors were encountered: