MVC VS MVVM 둘의 장단점에 대한 내용이다.
MVC
- Model : 데이터를 저장 및 가공
- View : Model이 갖고 있는 데이터를 시각화하여 표현
- Controller : Model과 View모두에게 관여하며, Model을 통해 데이터를 제어하고, 데이터가 변경될때마다 View를 업데이트
흐름
- 사용자의 액션은 Activity/Fragment가 받음.
- Activity/Fragment는 이를 확인하고 필요하다면 Model에 업데이트
- Model로부터 전달받은 데이터를 통해 View를 업데이트
여기서 View를 나타내는 Activity/Fragment가 Controller의 역할까지 가지고있음.
MVC의 장단점
장점 - 굉장히 단순하고 직관적이다.
단점 - Controller규모가 커진다, 유지보수가 어려워진다.
MVVM
- Model : 데이터를 관리
- View : 화면에 데이터를 표시
- ViewModel :Model에 데이터를 요청하고 UI를 위한 데이터를 가공.
흐름
- 사용자의 액션은 View가 받음
- 들어온 액션은 ViewModel로 전달되며, ViewModel은 Model에게 데이터를 요청
- Model은 ViewModel에게 요청받은 데이터를 전달하고
- ViewModel은 응답받은 데이터를 가공하고 저장
- View는 ViewModel를 관찰하고 변경된 데이터를 화면에 나타냄
