안드로이드 스튜디오를 사용할 때 패키지 구조에 대해 신경쓴 적이 없었는데, 코드가 너무 지저분해지는 것 같다는 생각이 들어 찾아보게 되었다. MVC, MVP 등 여러 패턴이 있지만, MVVM 패턴에 대해 조사한 내용을 정리해보려고 한다!
MVVM 패턴은 Model, View, ViewModel로 구성된 디자인 패턴이다. 뷰에 모델간의 의존성을 줄여주기 때문에 체계적으로 앱을 만들고 관리할 수 있다. 또한, 뷰가 데이터를 실시간으로 관찰할 수 있고, 뷰와 로직의 통신이 명확해진다.

Model :ViewModel이 요청한 데이터를 반환해줌
View : Activity, Fragment 등 UI를 나타내는 역할
ViewModel : View가 요청한 데이터를 Model에 요청, View와 Model 사이의 통신을 조정
과정
1. 뷰가 이벤트를 발생시켜 데이터를 요청
2. 뷰 모델이 해당 데이터를 불러오는 모델의 메소드를 호출
3. 모델이 뷰모델에서 요청하는 값을 반환함
4. 뷰 모델이 모델로부터 받은 값을 라이브 데이터에 저장
5. 뷰는 라이브 데이터를 감지해 저장된 값을 뷰에 출력
* 라이브 데이터 : 관찰이 가능한 데이터 홀더 클래스, 데이터가 변경될 때 내부적으로 자동으로 알려주게 됨