MVC 디자인 패턴은 하나의 애플리케이션을 Model, View, Controller로 이루어진 3개의 측면으로 분리하여 개발하는 디자인 패턴이다.
MVC(Model-View-Controller) 패턴 정리
MVP패턴은 MVC패턴에서 파생된 디자인 패턴으로 Model과 View는 MVC패턴의 구조와 역할이 동일하다. 차이점이라고 하면 Controller를 Presenter로 대체한다는 것이다.
지나치게 의존적인 Model과 View의 한계점을 해결해주기 위해 Controller를 Presenter로 대체하였으며 View와 Model의 각 요소를 보다 명확하게 분리하여 그 의존성을 해결했다.
Model은 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분이다. View는 유저에게 보여지는 User Interface부분으로 Model, View 모두 MVC패턴과 동일하다.
Presenter는 View에서 요청한 정보로 Model에서 받은 데이터를 가공하여 View에게 전달해주는 역할을 한다. 즉, Presenter는 Model과 View의 다리역할을 한다.
MVVM 패턴에서는 뷰와 뷰모델 사이의 양방향 데이터 바인딩을 발견할 수 있다. 뷰 모델 안에서 그리고 뷰에게 수정사항들을 자동적으로 이동시킨다. 뷰모델에서 변화를 주기 위해서, 뷰모델은 옵저버 패턴을 사용한다.
MVC, MVP와 비슷하게 모델은 비즈니스 로직을 나타내고 클래스의 집합으로 특징된다. 이 부분은 데이터가 바뀌고 조작되는지에 대한 비즈니스 규칙을 디자인하는데 동작한다.
마찬가지로 MVC, MVP와 비슷하게 뷰는 UI 컴포넌트를 나타낸다. 뷰는 컨트롤러가 폼 형태로 되돌려준 결과를 보여준다. 모델은 또한 UI에 뷰로 변환될 수 있다.
뷰모델의 책임 중 하나는 메서드와 함수들을 나타내는 것이다. 모델을 작동하기 위한 명령을 나타내고, 뷰의 상태를 유지시키고 뷰의 이벤트를 활성화 시킨다.
참고
https://devowen.com/457
https://enumclass.tistory.com/230
https://velog.io/@zzangzzong/Design-Pattern-MVC-MVP-MVVM