핵심 요약
여기어때의 Compose 안정성 베드 케이스 분석은 StableMarker와 @Stable/@Immutable의 동작 원리, Strong Skipping Mode를 실험으로 확인하고 재구성 대상 시 객체 변화가 없으면 건너뛰는 메커니즘의 핵심 포인트를 정리했습니다.
주요 분석 포인트
- StableMarker가 안정 타입 판단과 값 변화의 통지를 담당한다.
- 불안정 매개변수는 인스턴스 동등성(===)으로, 안정 매개변수는 객체 동등성으로 비교한다.
- 일반 클래스/가변 프로퍼티와 데이터 클래스 간 동등성 적용 차이가 재구성 건너뛰기에 영향을 준다.
- Strong Skipping Mode에서 불안정 객체의 경우도 상황에 따라 건너뛰기가 달라진다.
시사점
- 안정성 주석은 컴파일러와의 약속일 뿐 자동 불변성 보장을 의미하지 않으며, 남용 시 재구성 중단 위험이 있다.
- 모델 설계 시 공개 속성, equals 구현 여부, 모드 활성 여부를 고려해 성능 예측과 관리가 필요하다.

![[Jetpack Compose — Part 3] Jetpack Compose, 데이터로 성능과 안정성을 증명하다 섬네일](https://miro.medium.com/v2/resize:fit:1200/1*fzHVp60NQLB9-H8fQYCmrA.png)
