참조 카운트

Swift

[Swift] 메모리 관리: 미소유 참조(Unowned References)

미소유 참조(Unowned References)란? "미소유 참조(Unowned References)"란 Swift에서 객체간의 참조 관계를 표현하는 방법 중 하나입니다. 이는 참조 대상의 참조 카운트를 증가시키지 않고, 참조 대상이 메모리에서 사라지더라도 자동으로 nil로 변하지 않는 특성을 가지고 있습니다. 이러한 점은 약한 참조(Weak References)와 차이점을 가집니다. 그러나 미소유 참조는 반드시 값이 존재한다는 가정하에 사용되므로, 옵셔널이 아닌 변수에 선언됩니다. 이는 미소유 참조가 메모리에서 해제된 인스턴스를 참조하려고 하면 런타임 오류를 발생시키기 이유이기도 합니다. 따라서 미소유 참조를 사용할 때에는 참조 대상이 항상 존재하고, 참조하는 변수나 상수의 수명이 참조 대상의 수명보다..

Swift

[Swift] 메모리 관리: 순환 참조

순환 참조란 무엇인가? 순환 참조는 간단히 말해서, 두 개 이상의 클래스 인스턴스가 서로를 '놓지 않는' 상황을 말합니다. 이 때문에, 인스턴스들은 메모리에서 해제되지 않게 됩니다. 스위프트에서는 메모리 관리를 위해 ARC(Automatic Reference Counting)라는 시스템을 사용합니다. ARC는 이름에서 알 수 있듯이, 인스턴스가 얼마나 많이 참조되는지 세어주는 역할을 합니다. 만약 이 참조 횟수가 0이 되면, 해당 인스턴스는 더 이상 필요 없다고 판단되어 메모리에서 해제됩니다. 그러나 순환 참조가 발생한 경우, 두 인스턴스는 서로를 계속 강하게 참조하고 있기 때문에 참조 횟수가 절대 0이 될 수 없습니다. 그 결과 이들 인스턴스는 메모리에서 해제되지 못하고 계속 남아 있게 됩니다. 이런 ..

웅이코
'참조 카운트' 태그의 글 목록