도구 사용 과정과 원인 파악 흐름을 단계별로 설명하는 결
사이드 프로젝트로 만든 iOS 앱에서 장시간 사용 시 메모리가 계속 올라가는 현상이 있었습니다. Xcode Instruments의 Leaks와 Allocations 도구를 써서 확인했더니, 특정 뷰 컨트롤러가 dismiss 후에도 메모리에 남아 있었습니다. 원인을 추적해보니 클로저에서 self를 강하게 캡처하는 순환 참조 때문이었고, [weak self]로 바꾸면서 해결됐습니다. 처음에는 어떤 도구를 써야 하는지도 몰라서 Debug Memory Graph를 먼저 열었다가 그래프 해석이 어려웠고, 결국 Allocations에서 생성·해제 카운트를 비교하는 방식으로 방향을 잡았습니다. 그 경험 이후로는 뷰 컨트롤러에서 클로저를 쓸 때 캡처 리스트를 먼저 확인하는 습관이 생겼습니다.