👩🏻‍💻 TIL

앱이 도중 꺼지는 이유에 대해 분석해보았다

ji-hyun 2022. 12. 2. 16:45

제목 그대로 어느 날, QA 를 하시는 한 분이 내가 만든 기능의 리뷰를 작성하던 도중 앱이 꺼지는 것 같다고 하셨다.

이전 QA 에서 앱이 꺼졌다고 보고한 사람들이 없었는데 왜 갑자기 이런 현상이 일어난 걸까?

또한 내가 쓴 코드에 대해선 여러 번 체크를 해봤기 때문에 코드에선 100% 아무런 잘못이 없다고 나는 확신을 하고 있었다.

 

리뷰를 작성하던 도중 앱이 꺼진다고 한다

 

 

QA 를 하시는 분이 쓰는 핸드폰은 갤럭시이며 회사의 공용 테스트폰 iphone 7 로 테스트를 하고 있었다.

내가 테스트하는 폰들은 이런 현상이 일어나지 않았기에 QA 분에게 테스트폰을 잠시 빌려서 디버깅을 해보겠다고 부탁하였다.

 

 

 

 

그런데 테스트폰을 본 순간 문득 예전 기억이 떠올랐다.

옆에 개발하시는 분이 이 폰으로 디버깅하는데 속도가 너무 느리다고 하셨다.

그래서 나는 리뷰 사진을 등록하면서 메모리를 많이 잡아먹었던 것은 아닐까 라는 합리적인 의심이 들었다.

그래서 나는 사수분에게 이런 문제가 원인이었던 것이 아닐까요? 했고 사수분도 왠지 그런 것 같다고 하셨다.

 

 

 

그리곤 사수분이 xcode 로 신기한 기능을 알려주셨다.

바로 xcode 로 실시간 메모리 사용량을 분석하는 방법이다.

 

 

 

xcode 로 빌드하면 맨 상단 왼쪽 메뉴에서 스프레이를 클릭하면 된다.

 

맨 위에 있는 메뉴 중 스프레이 모양을 클릭해보자

 

그 중 Memory 부분을 클릭해본다.

그러면 아래처럼..

 

 

실시간으로 바로 메모리 사용량을 알 수 있었다.

 

 

 

 

 

그래서 아이폰 7을 디버깅해봤고 역시나 리뷰 사진을 한 장 한 장 등록할 때마다 메모리가 치솟았다.

8장때 쯤 메모리가 1기가에 도달했고 앱이 꺼져버렸다.

그리고 xcode 에선 due to memory ..? 이런 식의 팝업창이 남아있었다.

아무튼 앱의 사용량이 많으면 꺼질 수도 있구나 라고 생각한 재밌는 헤프닝이었다.

 

 

 

 

 

찾아보니 아이폰의 RAM 사용량은 극히 제한되어 있다고 한다.

https://woongsios.tistory.com/206

 

앱에서 너무 많은 메모리를 사용하면 어떻게 될까? 어떻게 확인할까?

개인적으로 공부하며 정리하는 블로그 입니다. 오류나 부족한 부분이 있을 수 있으니 감안하여 봐주시고 아낌없는 조언 감사드립니다 :D 앱이 메모리를 너무 많이 사용하면 어떻게 될까요? 갑자

woongsios.tistory.com

 

또한 메모리 제한을 넘겨버리면 아이폰은 앱을 종료시킨다고 한다.

 

 

 

 

 

 

 

여기 탭에서 재밌는 기능이 많았다.

나는 iOS 개발자가 아니라서 모든게 신기했고 재밌었다.

 

 

아래는 Energy Impact 를 클릭해본 결과다.

 

 

overhead 가 뭔지 궁금해서 찾아보았다.

 

오버헤드란 프로그램의 실행흐름에서 나타나는 현상중 하나로 예를 들어 , 프로그램의 실행흐름 도중에 동떨어진 위치의 코드를 실행시켜야 할 때 , 추가적으로 시간,메모리,자원이 사용되는 현상입니다.
한마디로 정의하자면,  오버 헤드는 특정 기능을 수행하는데 드는 간접적인 시간, 메모리 등 자원을 말한다. 
예를들어,  10초 걸리는 기능이 간접적인 원인으로 20초걸린다면 오버헤드는 10초가 되는것이다. 

 

 

 

재밌으니까 xcode 로 좀 더 분석해봐야겠다. 😄

 

 

 

'👩🏻‍💻 TIL' 카테고리의 다른 글

[Flutter] 앱 버전관리 규칙  (0) 2022.12.28
안드로이드 Manifest 파일  (0) 2022.12.05
xcode push notification not showing  (0) 2022.10.24
[iOS] [Flutter] module not found.  (1) 2022.10.18
only one auth mechanism allowed  (0) 2022.09.19