viewModel() 함수를 들여다보다가 CompostionLocal이 뭔지 도통 모르겠어서 문서를 따로 작성하였습니다.
https://developer.android.com/develop/ui/compose/compositionlocal?hl=ko
Composition 단계에서 컴포저블 함수를 실행하고 위와 같은 UI트리가 만들어짐
이렇게 트리로 구성된 컴포저블 함수에서, 일반적으로 상태(State)는 UI트리의 최상위 컴포저블에서 선언되어(상태 호이스팅)
매개변수 형태로 하위 컴포저블에게 전해지면서 UI트리를 통해 아래로 흐른다.
그러나 트리의 깊이가 깊어질수록 이 과정은 굉장히 번거로워질 수 있다.
이때, CompositionLocal을 사용하면 컴포지선 트리에서 특정 노드부터의 서버 트리 범위에 접근할 수 있다.