– Composer, SlotTable, ChangeList를 중심으로 Jetpack Compose는 선언형 UI를 효율적으로 관리하기 위해 런타임에서 Composition의 상태 저장 과 UI 변경 적용 을 명확히 분리한다. 이를 위해 Compose Runtime은 Composer , SlotTable , ChangeList , 그리고 이를 실제 UI로 반영하는 Applier , Recomposer 라는 구성 요소들을 사용한다. 이 글에서는 Compose Runtime 내부에서 Composable이 실행되고, 상태가 저장되며, 변경 사항이 실제 UI로 반영되는 전체 흐름 을 중심으로 구조를 정리한다. 전체 흐름 요약 Composable 함수가 실행되며 Composer를 통해 슬롯 테이블(SlotTable) 에 현재 상태를 기록 이전 Composition과 비교해 필요한 UI 변경 사항을 변경 목록(ChangeList) 으로 모델링 Composition이 완료되면 ChangeList가 Applier 에 의해 실제 UI 트리에 적용 Recomposer 는 상태 변경을 감지하고 필요한 범위만 재구성(Recomposition) SlotTable – Composition 상태 저장소 SlotTable은 Composition의 현재 상태를 메모리에 저장하는 트리 구조의 데이터 구조 다. Composable 함수 호출 순서에 따라 그룹(Group) 단위로 정보가 저장되며, Recomposition 시 이전 상태와 비교하는 기준이 된다. 주요 역할 Composable 호출 위치와 identity 관리 파라미터, remember 값, CompositionLocal 값 저장 Recomposition 시 변경 여부 판단 Positional memoization을 통한 불필요한 재실행 방지 내부 구조 특징 Group 단위 저장 시작 마커 + 데이터 슬롯 + 종료 마커 조건문, ...