Jetpack Compose, 데이터 기반 성능 최적화!
by DD
7개월 전
조회수 1
Jetpack Compose 도입 후 CPU 프로파일러를 활용하여 UI 스크롤 성능 저하 원인을 분석함
LaunchedEffect와 remember를 사용하여 리컴포지션 및 로딩 문제를 해결함
최적화 결과, Janky Frame 제거 및 CPU 사용량 안정화를 달성함
Compose 성능 저하의 근본 원인
Compose는 상태 변화에 따라 UI를 다시 그리는 리컴포지션을 수행한다. 구체적으로, State Snapshot System을 통해 상태 변화를 감지하고, 불필요한 리컴포지션을 방지한다. 따라서 LaunchedEffect를 사용하여 상태와 생명주기를 동기화하고, remember를 통해 무거운 연산을 최적화해야 한다.
CPU 프로파일러를 활용한 병목 지점 분석
Android Studio의 CPU 프로파일러는 성능 문제를 진단하는 강력한 도구이다. Bottom Up 뷰를 통해 CPU 사용량이 많은 메서드를 파악하고, Janky Frame을 찾아낸다. 반면, 프로파일러 사용 시, 네트워크, 비동기 처리, 리소스 로딩 등 다양한 요소를 고려해야 한다.
실전 최적화: LaunchedEffect와 remember
LaunchedEffect를 사용하여 상태 변경에 따른 불필요한 리컴포지션을 방지한다. 구체적으로, 상태와 이벤트 분리 원칙을 적용하여 UI 렌더링 성능을 개선한다. 따라서 remember를 활용하여 미디어 플레이어와 같은 무거운 객체의 초기화 비용을 줄여 UI 깜빡임 문제를 해결한다.