안드로이드

MVC vs MVP vs MVVM 용어 정리

하늘을난모기 2017. 12. 31. 22:30

MVC (Model View Controller)


Model

데이터를 의미한다.

데이터를 관리/수정/수집 등을 하게 되는 부분이다.


View

UI를 그리는 곳이다. 화장자 .xml이나 안드로이드의 layout등이 이곳에 속한다.


Controller

View와 Model을 연결해주는 역할이다.

안드로이드에서는 Activity, Fragment등이 이 역할을 수행하며, V와 C의 역할 구분이 모호하여 안드로이드에서는 사용이 쉽지 않다.

최근에는 xml을 강화하여 MVC를 사용하기 쉽게 만들어지고 있다.



MVP (Model View Presenter)


Model

MVC와 마찬가지로 데이터를 의미한다.


View

Presenter에서 전달받은 View의 이벤트를 처리한다.


Presenter

View에서 전달된 이벤트에 대한 처리이다. (View와 무관한 처리만)

인터페이스로 구성하며, 프로젝트의 규모가 커질수록 Presenter의 분리가 힘들고 문제 발생이 쉬운 단점이 있다.



MVVM (Model View ViewModel)


Model

데이터를 의미한다.


View

UI


ViewModel

Presenter 대신 ViewModel이 생기면서 View를 표현하기 위한 View를 위한 Model이 만들어졌다.