얼마전부터 공부하고 있는 MVVM 패턴에 대해 정리하기위해 포스팅을 하기로 마음먹었다.
사실 MVVM 패턴 자체만 두고보면 엄청 어렵고 그런 개념은 아닌데
제대로 만들기 위해서 들어가는 여러가지 따라오는것들이 어려운거 같다.
LiveData 라던지 RxJava 라던지..
이런것들도 다음 포스팅에 적을것이다.
일단 MVVM 패턴에 대해서 먼저 알아보자.
MVVM 패턴은 예전 MVP 포스팅에서도 언급했듯
MVP패턴의 View와 Presenter , Model 사이이 양방향 의존성이 심해서 이것을 해결하기 위해 만들어졌다.
MVVM 은 크게 View - ViewModel - Model 로 이루어져있고 단방향 의존성을 가진다.
VIew는 ViewModel 을 참조하지만 ViewModel 은 View 를 참조하지 않고
ViewModel 은 Model 을 참조하지만 Model 은 ViewModel 을 참조하지 않는다.
그림으로 설명하면 아래와 같다.
그렇다면 ViewModel 은 View 에 자신의 바뀐 데이터를 어떻게 알려줄까?
그래서 사용하는 개념이 Binding 이다.
ViewModel 은 값을 바꾸기만 하고 View 는 그 변화를 관찰하고 있다가 변화하면 된다.
특징을 꼽자면
1. View, ViewModel, Model은 최대한 서로 간섭하지 않는다. -> 의존성이 적어지고 유지보수, 테스트가 쉬워진다.
2. VIew에서 유저가 행동을 취하면 ViewModel에서 비즈니스 로직을 실행한다.
3. ViewModel 은 Model 의 데이터를 수정, 업데이트한다.
4. ViewModel은 Binding 을 통해 View를 수정한다.
5. ViewModel 만 Model 에 접근가능하고 View는 Model에 접근하지 못한다.
엄청 간단하게 썼지만 대략적인 개요는 이렇다.
'Android' 카테고리의 다른 글
MVVM 패턴 - 설명(1) (View) (0) | 2021.02.11 |
---|---|
안드로이드 하드웨어 모듈과 TCP/IP 소켓 통신 (0) | 2021.01.28 |
안드로이드에서의 Parcelable vs Serializable (0) | 2021.01.28 |
안드로이드 DI 라이브러리 Koin 에 대해 (0) | 2021.01.24 |
마법같은 애니메이션 Lottie 에 대해서 (0) | 2021.01.19 |
코틀린 retrofit2 공부 (0) | 2020.11.16 |
안드로이드 - service 정리 (0) | 2020.11.14 |
안드로이드 이중스크롤뷰 (0) | 2020.08.24 |