[swift] 참조 순환 문제
예를 들어, 클래스 A가 클래스 B를 가리키고, 클래스 B가 다시 클래스 A를 가리키는 상황이 있다고 가정해보겠습니다. 이때 두 클래스간의 참조가 해제되지 않고 계속 유지될 경우, 참조 순환 문제가 발생하여 메모리 누수가 발생합니다.
이를 해결하기 위해 Swift에서는 강한 참조 순환 문제를 해결하기 위한 메커니즘으로 약한 참조(Weak references)와 미소유 참조(Unowned references)를 제공합니다.
약한 참조는 참조하는 객체를 가리키지 않는 참조이며, 미소유 참조는 항상 유효한 참조를 전제로 하는 참조입니다.
이를 통해 해당 문제를 해결할 수 있으며, 참조 순환이 발생하는 연결의 적절한 자유화를 보장할 수 있습니다.
더 자세한 내용은 Apple의 공식 문서를 참고할 수 있습니다.