성능·디버깅
멈춤 현상 원인 찾기
출시된 iOS 앱이 가끔 몇 초 동안 터치에 반응하지 않는다는 리뷰가 올라옵니다. 사무실에서는 재현이 안 될 때 main thread가 멈춘 순간의 스택을 어떻게 손에 넣겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
출시된 iOS 앱이 가끔 몇 초 동안 터치에 반응하지 않는다는 리뷰가 올라옵니다. 사무실에서는 재현이 안 될 때 main thread가 멈춘 순간의 스택을 어떻게 손에 넣겠습니까?
MetricKit의 MXHangDiagnostic을 구독해 실사용자 기기에서 멈춤이 250ms를 넘은 순간의 메인 스레드 콜 스택을 받아 서버로 올리고, Xcode Organizer의 Hangs 리포트로 같은 스택이 어느 버전과 화면에서 몇 번 잡혔는지 본 뒤, 그 스택이 가리키는 코드 경로를 로컬에서 확인한다.
성능·디버깅주관식심화
특정 화면에서 가끔 1초 정도 화면이 멈춘다는 제보가 있지만 개발 환경에서는 재현되지 않습니다. 원인을 좁혀 가는 방법을 설명해 주세요.
#hang #main-thread #metrickit
성능·디버깅객관식딥다이브
MetricKit(MXMetricManager)을 통해 앱이 실제로 받을 수 있는 데이터를 모두 고르세요.
#hang #metrickit
성능·디버깅주관식심화
사내 APM에 "메인 스레드가 일정 시간 이상 멈추면 스택을 남기는" 기능을 넣으려 합니다. 앱 안에서 렉(卡顿)을 어떻게 감지하겠습니까?
#hang #main-thread
성능·디버깅객관식심화
앱이 특정 조작 후 완전히 멈췄습니다(입력 무반응). 메인 스레드가 어디서 블록됐는지 알아내는 방법으로 옳은 것을 모두 고르세요.
#hang #main-thread