스위프트는 ARC로 메모리를 관리한다.
ARC는 Auto Reference Counting을 뜻하며 한국어론 자동 참조 계수이다.
인스터스가 더 이상 필요없을 때 사용된 메모리를 자동으로 해제 해준다.
강한순환참조는 ARC로 메모리를 관리할 때 발생할 수 있는 문제이다. 두 객체가 서로 강한 참조를 하는 경우 발생할 수 있다.
서로 강한 참조를 하는 경우 발생한다면, 둘 중 하나의 강한 참조를 변경해주면 된다. 강한 참조를 약한(weak) 참조, 혹은 미소유(unowned) 참조로 변경하면 강한 순환 문제를 해결할 수 있다.
약한 참조는 옵셔널, 미소유 참조는 옵셔널이 아닐 때 사용한다.
weak 생명주기가 짧아서 nil로 바뀔 때 쯤
미소유는 원래인스턴스와 생명주기가 같거나 더 길 때 얘는 그냥 nil값을 가지는게 아니라 주소를 가짐