Swift의 메모리 구조
Stack: 지역 변수 및 함수 호출 시 할당되는 공간
Heap: 클래스 및 참조 타입 인스턴스가 저장되는 공간
Global: 전역 변수 및 정적 변수의 저장 공간
Code: 실행 코드가 저장되는 영역
ARC(Automatic Reference Counting) 개념
ARC는 Swift의 메모리 관리를 자동으로 수행하는 기능으로, 객체가 더 이상 참조되지 않을 때 메모리를 해제한다.
강한 참조 순환(Strong Reference Cycle) 해결 방법
Weak 참조: 참조 카운트를 증가시키지 않음
Unowned 참조: 참조된 객체가 해제될 것을 보장하는 경우 사용
class Person {
var name: String
weak var Friend: Person?
init(name: String) {
self.name = name
}
}