도메인 관련 데이터를 표현. 모델이 변경되면 관찰자에게 알림을 보냄.
모델의 데이터는 지속적으로 유지되길 원하기에 데이터베이스에 저장되곤 한다.
모델의 현재 상태 표현. 관찰자 패턴을 통해 모델이 변경되었음을 알아차림. 화면에 보이는 부분만 담당.
키보드 입력이나 클릭 같은 사용자와의 상호작용 처리.
모델을 업데이트하는 작업은 컨트롤러가 처리한다.
유지보수 용이
하지만 MVC는 양방향 데이터 흐름이라 관리가 어려워질 수 있다고 하네요. vue도 양방향이라서 조금 헷갈릴 떄가 있었던 것이 기억 났어요.
컨트롤러 대신 프레젠터
MVC에서 뷰는 모델을 구독하고 있었다. 하지만 MVP에서는 뷰가 모델을 구독하지 않는다. 대신 프레젠터가 모델로부터 받은 데이터를 가공하여 뷰에게 전달한다.
뷰와 모델 간의 결합도가 낮아진다.
MVP랑 비슷해보이는디... 차이를 잘 모르겠네요..!
리액트나 Vue는 애플리케이션의 뷰 혹은 프레젠테이션 계층을 담당한다.