컴포즈 함수를 다루다 보면 필연적으로 만나게 되는 @Stable 어노테이션이 있다.
온기 프로젝트 이전에도 대충 “스마트 리컴포지션 최적화” 정도로 알고 있었다.
다만.. 프로젝트를 진행하면서 왜, 언제, 어떻게 쓰는지 알아야 잘 최적화 할 수 있다는 생각이 들어 테스트를 해봐야 겠다고 생각했다.
리컴포지션의 최적화를 위해 사용되는 어노테이션은 두 가지가 있음을 확인할 수 있었다.
@Stable @Immutable
https://developer.android.com/develop/ui/compose/performance/stability/fix?hl=ko&_gl=1*1kb79uw*_up*MQ

Compose 컴파일러는 Composable 함수의 매개변수들에 대해 두 가지로 분류한다.
Stable ↔ UnStable
stable의 종류로는 아래와 같다.
unStable한 종류는 stable 하지 않은 경우 전부 unStable하다고 정의된다.
예시로는 List<T>가 있다.