예전에 있었던 면접에서 순환 참조가 잘 일어나는 상황에 대해 질문을 받은 적이 있다. 그 때 단순히 weak와 strong의 차이에 대해서만 줄줄이 읊은 기억이 있는데.. 정리를 좀 해야겠다 싶었다. 클래스 인스턴스 사이의 강력 순환 참조(Strong Reference Cycle) : 두 클래스 인스턴스가 서로 강력 참조를 쥐고 있다면, 각 인스턴스는 서로 살게 유지한다. ex) class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? deinit { println("\(name) is being deinitialized") } } class Apartment { let number: I..