안드로이드 환경에서 앱이나 시스템 서비스를 개발하다 보면 런타임에 원인 모를 크래시가 나거나, UI 프레임이 뚝뚝 끊기는 병목 현상을 마주하게 됩니다. 단순한 버그라면 자바 코드에 Log.d() 몇 줄 남기는 것으로 잡히지만, 여러 프로세스가 바인더(Binder)로 얽혀 있는 안드로이드 시스템 특성상 자바 로그만으로는 문제의 실마리조차 찾지 못할 때가 많습니다.커널과의 상호작용, 백그라운드 서비스의 자원 점유 상태, 그래픽 렌더링 파이프라인의 지연 등 시스템 깊은 곳의 문제를 해결하려면 그에 맞는 전문적인 무기가 필요합니다. 이번 포스팅에서는 기본 로그 분석 도구인 Logcat을 시작으로 시스템 상태를 진단하는 dumpsys, 커널 시스템 콜을 추적하는 strace, 그리고 프레임 드롭을 잡아내는 sys..