
앱을 개발하는데 있어서, 효율적인 알고리즘 및 로직을 작성하는 것도 중요하지만 불필요한 리소스가 낭비되는 것을 방지되는 것 역시 매우 중요합니다! Memory Leak, 즉 메모리 누수의 경우 불필요하게 메모리 영역을 잡아먹음과 동시에 메모리에서 해제되지 않은 인스턴스가 지속적으로 특정 로직을 실행하게 되면 리소스를 잡아먹기 때문에 앱의 성능에도 영향을 끼칠 수 있습니다. 아무튼 쉽게 생각하고 간과해서는 안 되는 문제라는 건데요. 이러한 메모리 누수를 확인하고 해결하는 방법 세 가지를 소개해 드리려고 합니다. 1. retain cycle이 발생하지 않도록 주의 깊게 코드를 작성하자! Swift의 경우 ARC에 의해 힙 영역에 할당된 인스턴스 중 reference count가 0인 인스턴스의 경우 메모리에..

오늘은 Instruments를 알아보려고 합니다. Instruments는 성능 분석 및 테스팅 도구로 앱의 성능을 신경 쓴다면 반드시 알아야 할 도구입니다. Instruments를 사용하면 CPU분석 메모리 분석을 포함해 여러 가지 분석을 할 수 있고 분석을 통해 성능을 개선시킬 수 있습니다. 오늘 모든 분석을 다 살펴보진 않고 Activity Monitor, Time Profiler, Allocations, Leaks 이렇게 네 가지만 살펴보겠습니다. Instruments를 사용하려면 Product > Profile을 누르시면 됩니다. Instruments가 실행된 후 통계를 기록하기 위해서는 아래와 같이 빨간색 레코드 버튼을 누르셔야 합니다. (모든 분석의 경우 트래킹을 중지하고 Instruments..

오늘은 ARC 즉, Automatic Reference Counting에 대해 정리해보려 합니다. ARC란? - Swift는 ARC를 활용해 앱의 메모리 사용을 추적하고 관리합니다. 인스턴스가 더 이상 필요하지 않으면 메모리에서 해제합니다. 그렇기 때문에 우리는 메모리 관리에서 비교적 자유로워질 수 있죠 ㅎㅎ 하지만, 강한 참조로 순환이 이루어질 때는 메모리 누수가 발생할 수 있기 때문에 우리가 적절한 조치를 해줘야 합니다. 지금은 무슨 말인지 잘 모르겠어도 뒷부분에 설명할 예정이니 걱정 안 하셔도 됩니다! 작동 방식 - ARC는 각 인스턴스가 얼마나 참조되고 있는지를 추적하고 저장함으로써 메모리 관리를 합니다. 만약 참조 counting이 1 이상이면 인스턴스는 메모리에 계속 남아 있고 0이 되었을 때..