세상을 바꾸는 개발자

[Android] 안드로이드 디자인패턴 3 - 3 MVVM패턴 본문

안드로이드/Design Pattern

[Android] 안드로이드 디자인패턴 3 - 3 MVVM패턴

헬창코딩 2021. 7. 12. 23:10

안녕하세요~ 헬창코딩 입니다. 

 

오늘은 MVVM패턴에 대해서 알아보도록 하겠습니다. 

 

저번 글에서 살펴보았던 MVP패턴에서는 Presenter가 View에 어떤 일을 요청하는지 명백하게 확인할 수 있었습니다.

하지만 View와 Presenter가 강하게 결합하여 있다는 문제점이 있었습니다.

 

MVVM패턴에서는 데이터 바인딩 및 LiveData 또는 Rxjava와 같은 Observable 타입을 이용해서 Presenter와 View 사이에서

강하게 연결되었던 점을 끊는데 집중했습니다. 

이때 Presenter 데신 ViewModel이라는 구성요소를 사용합니다. 

 

Model View에 관한 설명은 이전 게시글을 참조해주세요~~

https://healthcoding.tistory.com/12

 

ViewModel은 View에 표현할 데이터를 Observable 타입을 관리하며, View들이 ViewModel에 데이터를 구독 요청하여 화면에 나타내는 것이 핵심입니다. 그렇게 때문에 ViewModel과 View는 1:N의 관계가 됩니다. 

여기서 ViewModel이 View에 대한 의존성을 갖지 않고 느슨하게 연결되도록, DataBinding 라이브러리가 필수적으로 사용됩니다.

 

MVVM패턴의 장점은 View와 Model의 의존성이 없고 DataBinding을 사용하여 View와 ViewModel 간의 의존성도 없앤 패턴이라서

각각 모듈화 하여 개발할 수 있는 장점이 있습니다. 

 

 

 

MVVM 구조

 

 

 

 

 

Comments