
프론트엔드
여기어때 Compose Perfomance 해결 이야기
두줄요약
여기어때는 Compose 도입 후 알림함 화면의 성능 저하 원인을 stability와 recomposition 관점에서 분석했습니다. Immutable Collection과 MutableState, derivedStateOf 조정으로 화면 성능을 개선했습니다.
문제 상황
- 여기어때 알림함 화면에서 적은 리스트에도 스크롤 시 화면 끊김과 과도한 recomposition 발생
- Compose 도입 후 성능 저하 원인으로 안정성(stability)과 스킵(skiippable) 여부 점검 필요
원인 분석
var가 포함된NotificationItem으로 인해 unstable 판정List같은 컬렉션과derivedStateOf구성 방식 때문에 불필요한 recomposition 반복
해결 방법
- UI 모델을
val기반으로 정리하고kotlinx.collections.immutable의 Immutable List 적용 MutableState를 활용해 변경 감지 가능한 상태로 분리하고,derivedStateOf를 한 번에 계산하도록 조정
적용해볼 점
- Compose compiler report와 Layout Inspector로 stability, skippable, recomposition 상태 점검
- mutable 상태와 컬렉션 사용 위치를 다시 검토해 불필요한 재구성 최소화
