
초기 컴포지션 - UI를 그리기 위해 호출한 컴포저블을 추적
리컴포지션 - 상태가 바뀌었을 때 예약되며(0회 이상) 변경 점을 반영하려 컴포지션을 업데이트 함 (수정하는 유일한 방법)
state가 변경되면 리컴포지션이 트리거 됨.
state를 읽는 컴포저블과, 여기에서 호출되는 컴포저블이 대상이 됨.
모든 입력이 안정적이고 변경되지 않았으면 건너뛸 수 있음
안정적인 타입은 아래를 지켜야 함.
• 두 인스턴스 equals 결과가 영원히 같은 경우.
• 공개 프로퍼티가 변경되면 콤포지션에 알려야 함.
• 모든 공개 프로퍼티는 안정적이어야 함.
@Stable이 표기되지 않아도 Compose 컴파일러가 안정적이라고 간주하는 공통 타입들
• 모든 프리미티브 타입: Boolean, Int, Long, Float 등
• 문자열
• 모든 함수 타입 (람다)
안정적이다고 추론 할 수 없는 경우 @Stable을 표기해야 함
MutableState는 안정적.
State의 value 프로퍼티 값 변경이 알려지기 때문.

리컴포지션에서 다른 컴포지션을 호출하는 경우 컴포저블들이 호출되는지 여부를 체크해 두 컴포지션에서 모두 호출되고 입력이 바뀌지 않은 컴포저블은 재구성하지 않음.


-> 키를 설정해 해결
랜더링 단계


무언가 바뀌면 각 단계에서 잡아 냄