
프론트엔드
Compose에서 Stable을 가볍게 보면 안 되는 이유: 베드 케이스로 본 안정성의 법칙 Part 1
두줄요약
Compose Stability가 재구성과 성능에 미치는 영향을 여러 객체 유형으로 비교해 설명했습니다. @Stable과 @Immutable은 단순 최적화가 아니라 계약이므로 신중히 사용해야 합니다.
핵심 내용
- Android Compose에서 Stability가 재구성 skip과 성능에 직접 영향을 주는 핵심 요소라는 점을 베드 케이스 실험으로 검증
- 일반 class, data class, @Stable, @Immutable, strong skipping mode 조합별로 recomposition skip 여부를 비교
- stable 여부에 따라 객체 비교 방식이 달라지고, public property의 변경 가능성에 따라 컴파일러의 판단도 달라짐
- @Stable, @Immutable은 단순 최적화 도구가 아니라 컴파일러와의 계약에 가깝고, 잘못 사용하면 재구성이 막힐 수 있음
적용해볼 점
- 프로젝트에서 Compose skip이 어떤 기준으로 발생하는지 점검
- @Stable, @Immutable을 남용하지 말고 모델의 안정성 보장 여부를 먼저 확인
- strong skipping mode 적용 시 unstable 객체의 skip 동작도 함께 검토
