메모리관리(weak self와 guard의 만남)
·
면접준비
강한 참조 순환 vs 지연된 할당 해제처음에 저는 [weak self]를 언제 써야 하는지 정말 헷갈렸어요. "그냥 항상 쓰면 되는 거 아닌가?" 싶었는데, 알고 보니 두 가지 서로 다른 문제를 해결하는 거더라고요.1. 강한 참조 순환 (Strong Reference Cycle)원인: 두 객체가 서로를 강하게 참조해서 순환 고리가 형성됨결과: 메모리 누수 - 객체가 영원히 해제되지 않음 💥해결책: weak 또는 unowned 참조 사용2. 지연된 할당 해제 (Delayed Deallocation)원인: 객체가 클로저에 의해 강하게 참조되고, 클로저 실행이 지연됨결과: 객체의 메모리 해제가 지연되지만, 결국에는 해제됨부작용: 불필요하게 메모리를 오래 점유하거나, 해제된 후에도 작업이 계속될 수 있음가장 ..