LiveData는 이미 내부적으로 setValue와 postValue가 존재하지만 이를 외부로 공개하지 않고 상속을 받은 서브클래스를 통해 외부로 공개합니다. 그렇기 때문에 이미 안드로이드에서 지원하는 LiveData는 MutableLive라는 서브클래스를 만들어두고 MutableLive에서 set을 허용하도록 개발자에게 환경을 제공합니다. 그렇게 View는 LiveData 에서 읽기만 할 수있고, ViewModel 에서 MutableLiveData를 통해 변경할 수 있는 권한이 생깁니다. 불변과 가변의 차이를 가진 LiveData와 MutableLiveData에 대해 각각 정리해봤습니다. 1.MutableLiveData package androidx.lifecycle; /** * {@link LiveD..