1. ViewModel에서 View(Fragment, Acivity)에 직접 접근하거나 제어 해서는 안된다. 2. ViewModel에서 View를 변경하고 싶으면 LiveData나 Callback 혹은 Function Reference를 사용하면 된다. 예를 들어, 특정 View를 보이지 않게 하고 싶으면 "val enableLayoutVisibility = MutableLiveData()" 같은 변수를 사용하여 Observe 패턴으로 Fragment나 Activity에서 제어 하면 된다. 3. 장점 View와 Business logic을 분리 할 수 있으며, 이것은 많은 장점을 갖는다. View는 오직 View의 처리만 담당하므로 보기가 편하다. 이런 관심사의 분리가 발전하여 Compose UI를 탄생..