아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
여기어때 favicon여기어때

Compose LazyList, stable 상태 관리가 성능을 좌우한다!

by DD
2025-11-05
8개월 전
조회수 16

Compose LazyList에서 key 사용과 stable 상태 관리가 중요함을 설명

UnstableSelectItem 사용 시, 모든 아이템이 recomposition 되는 문제 발생

StableSelectItem 사용 시, 변경된 아이템만 recomposition 되어 성능 향상

LazyList의 Recomposition 최적화

LazyList에서 key를 지정하면 아이템의 변경을 효율적으로 감지한다. 구체적으로, UnstableSelectItem 사용 시, 객체 인스턴스 변경으로 인해 모든 아이템이 recomposition 된다. 따라서 @Stable 어노테이션과 mutableStateOf를 활용하여 상태 변경을 감지해야 한다.

Unstable vs Stable: 성능 비교

UnstableSelectItem은 객체 생성 시마다 새로운 인스턴스를 생성하여 모든 아이템의 recomposition을 유발한다. 반면, data class와 StableSelectItem은 변경된 아이템만 recomposition을 발생시켜 성능을 향상시킨다. 따라서 상태 관리 방식에 따라 UI 렌더링 성능이 크게 달라진다.

Stable 상태 유지를 위한 전략

Compose에서 Stable 상태를 유지하기 위해 data class 또는 @Stable 어노테이션과 mutableStateOf를 사용한다. 구체적으로, ImmutableList와 함께 사용하면 UI 업데이트 시 불필요한 recomposition을 방지한다. 따라서 상태 관리 전략을 통해 UI 응답성을 개선할 수 있다.

Compose에서 Stable을 가볍게 보면 안 되는 이유: LazyList 안정성 가이드 Part 2
중급
아키텍처
Compose
Kotlin
Frontend
Mobile
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

뱅크샐러드 Android 팀의 모든 것!

뱅크샐러드 로고

Jetpack Compose, 실전에서 생산성 혁신을 이끌다!

놀유니버스 로고

Jetpack Compose 마이그레이션, 어디서부터 시작해야 할까?

놀유니버스 로고

CodeQL 2.26.0: Kotlin 2.4.0 지원 및 AI 프롬프트 주입 탐지

깃헙 로고

Compose 안정성, 쉽게 보면 큰 코 다칩니다!

여기어때 로고

Kotlin Coroutine으로 안드로이드 앱 동시성 문제 해결!

데브시스터즈 로고
여기어때 favicon여기어때
중급
아키텍처
Compose
Kotlin
Frontend
Mobile

관련 추천 글

뱅크샐러드 Android 팀의 모든 것!

뱅크샐러드 로고

Jetpack Compose, 실전에서 생산성 혁신을 이끌다!

놀유니버스 로고

Jetpack Compose 마이그레이션, 어디서부터 시작해야 할까?

놀유니버스 로고