[디자인패턴] MVVM ~ Container-Presenter
MVVM패턴이란 ?
MVC패턴에서 Model, View, Controller로 구성된 내용 중
Controller가 View Model로 바뀌어 만들어진 패턴
View Model이란?
View부분을 추상화 한 계층으로
템플릿과 바인딩문법등을 사용해서 "선언적인 방식"을 취하여
여러 처리에 대해 하나의 액션으로 처리함
데이터 바인딩(뷰모델을 변경하면 뷰의 데이터도 변경되도록)처리도 해줌
MVVM아키텍처를 사용하게된 이유?
-> Controller부분이 너무 방대해지고, 반복되는 부분들이 많아짐
-> 반복되는 부분은 미리 선언해두는 방식으로 개발하면 편하지 않을까?
-> 반복되는 부분을 선언적인 방식(ex. jsx와 같이 약속된 선언을 바탕으로 개발)으로 변경함
-> 앵귤러, React, Vue...등 생겨남
-> Controller가 DOM조작을 할 필요가 없어지면서 컨트롤러에서 View Model의 개념으로 변경됨
MVVM은 component를 조립하여 구성하는 패턴으로 발전함
-> 위 패턴은 비즈니스 로직을 가지는 container컴포넌트
-> 컨테이너 안에 - 데이터를 뿌리기 위한 Presenter컴포넌트로 구성하는 형태의 패턴 만들어짐
-> 위와 같이 컴포넌트를 구성하는 패턴을 Container-presenter패턴이라고 함
참고:
https://learn.microsoft.com/ko-kr/windows/uwp/data-binding/data-binding-and-mvvm
https://yozm.wishket.com/magazine/detail/1663/
https://product.kyobobook.co.kr/detail/S000001834833