[Android] 디자인패턴 5 - MVVM패턴

MVVM패턴이란? 참고 https://medium.com/@jsuch2362/android-%EC%97%90%EC%84%9C-mvvm-%EC%9C%BC%EB%A1%9C-%EA%B8%B4-%EC%97%AC%EC%A0%95%EC%9D%84-82494151f312 mvp패턴에서 presenter의 문제점이 있다. 컨트롤러와 마찬가지로 시간이 지남에 따라 추가되는 비즈니스 로직이 모이게 된다. 시간이 흐르면 거대하고 다루기 어렵고 문제가 발생하기 쉽고 분리하기 어려운 presenter를 발견하게 된다. *신중한 개발자라면 앱의 변화에 맞춰 해결해 나갈 수 있다. - Model, View, ViewModel의 약자 - 뷰와 모델을 연결하기 위해 사용해야하는 연결 코드 감소 - MVP에서 파생된 패턴 - Microsoft에 의해 제안된 패턴 *Model : MVC, MVP와 동일하다. *View : ViewModel에 의해 보여지는 Observable변수와 액션에 유연하게 바인딩된다. *ViewModel : Model을 래핑하고 View에 필요한 Observable 데이터를 준비한다. -> View가 Model에 이벤트를 전달하도록 Hook을 준비한다. -> ViewModel은 View에 종속되지 않는다. 이미지1 MVVM 관계도 *View와 ViewModel의 관계 - ViewModel은 Model을 알지만 View를 알지 못한다. - View는 Model을 알지 못하지만 ViewModel은 알 수 있다. - View는 ViewModel을 관찰하고 있다가 변화가 감지되면 화면을 갱신한다. DataBinding : View와 ViewModel 독립 ...