Composable 함수는 Composable 트리 구조를 만드는데 사용된다.
트리는 Compose Runtime에서 각 Composable 함수를 노드로 등록하여 구성된다.
@Composable 어노테이션은 함수를 노드화 하여 트리에 등록하겠다는 의도이다.
@Composable
fun NamePlate(name: String) { }
Composable 함수를 @Composable (Input) → Unit의 함수 형태로 볼 때, 입력은 데이터지만, 출력은 트리에 노드를 삽입하기 위한 액션에 해당한다.
⇒ 이 행위를 함수 실행의 부수효과 (== 방출)로 이해할 수 있음

Composable을 실행하는 목적은 트리에서의 메모리 표현을 만들거나 업데이트 하는 것이다.
매 재구성마다 다시 실행되기 때문에 메모리 구조를 항상 최신값을 유지한다.
또한, 트리를 통해 상태를 읽거나 쓸 수도 있다.
<aside> 💡
@Composable 어노테이션을 통해 컴포저블을 트리구조에 노드 형태로 등록하며, 각 노드는 매 재구성마다 최신 상태를 유지한다.
</aside>
@Composable 어노테이션을 함수나 표현식에 붙이게 되면 Compose Runtime에 의해 다양한 런타임 최적화가 적용된다.