앱을 만들면서 메모리가 쭉쭉 올라가는 경험을 한 번쯤 해보았을 것이다! 이를 해결해 보자.
ARC(Automatic Reference Counting)
: 객체의 참조를 추적하여 메모리를 해제하는 등 iOS 메모리 관리 기술
- 객체가 생성될 때마다 참조 카운트가 증가
- 해당 객체를 참조하는 모든 참조가 사라질 때마다 참조 카운트가 감소
- 참조 카운트가 0이 되면 메모리에서 해제
이때, 참조(Reference)가 뭘까?
- 변수나 값이 메모리 상의 다른 값을 가리키거나 참조하는 것
약한 참조(Weak References)
: 객체를 참조하지만 해당 객체의 메모리 수명을 유지하지 않는 참조 방식
- 순환 참조(서로를 강한 참조하여 서로를 가리키는 상황) 문제를 해결하거나 메모리 누수(사용이 끝났는데도 메모리가 해제되지 않는 상황)를 방지하기 위해 사용
- 'weak' 키워드 사용
프로파일링 도구 활용
: 메모리를 어떻게 사용하는지 모니터링하고 분석하는 도구
- Xcode Instruments (iOS)
- Android Profiler (Android Studio)
🦭