CS

MVP 패턴(Model, View, Presenter)이란?

cob 2023. 1. 26. 15:23

 

MVP

 

MVP패턴은 MVC 패턴으로부터 파생되었으며 MVC에서 C에 해당하는 컨트롤러가 프레젠터(presenter)로 교체된 디자인 패턴이다.

 

MVP 패턴 구조

  • 뷰와 프레젠터는 1:1 관계이기 때문에 MVC 패턴보다 더 강한 결합을 지닌 디자인 패턴이다.

 

 

1. 장단점

  • MVC와는 다르게 코드가 깔끔해지고, Model과 View의 결합도를 낮추면, 새로운 기능 추가 및 변경을 할 때마다 관련된 부분만 코드를 수정하면 되기 때문에 확장성이 개선된다.
  • UI, DATA 각각 파트를 나눠어서 해야 할 일이 명확해지고, 쉽고 빠른 코딩이 가능하다.
  • 애플리케이션이 복잡해질수록 View와 Presenter 사이의 의존성이 강해지는 문제가 있다.
  • MVC의 Controller처럼 추가 비즈니스 로직에 집중되는 경향이 있다.

 

 


2. 모델(Model)

모델(Model)은 애플리케이션의 데이터인 데이터베이스, 상수, 변수 등을 뜻한다.
모델 예
사각형 모양의 박스 안에 글자가 들어있다면 그 사각형 모양의 박스 위치정보, 글자 내용, 글자 위치, 글자 포맷에 관한 모든 정보를 가지고 있어야 한다. 이러한 정보를 담겨있는 것을 모델이라 한다.
  • 뷰에서 데이터를 생성하거나 수정하면 컨트롤러를 통해 모델을 생성하거나 갱신한다.

 

 


3. 뷰(View)

뷰(View)는 inputbox, checkbox, textarea 등 사용자 인터페이스 요소를 나타낸다.
즉, 모델을 기반으로 사용자가 볼 수 있는 화면을 뜻한다.
  • 모델이 가지고 있는 정보를 따로 저장하지 않아야 하며 단순히 사각형 모양 등 화면에 표시하는 정보만 가지고 있어야 한다.
  • 변경이 일어나면 컨트롤러에 이를 전달해야 한다.

 

 


4. 프레젠터(Presenter)

Model과 View를 매개체라는 점에서 Controller와 유사하지만, View에 직접 연결되는 대신 인터페이스를 통해 상호작용한다는 차이가 있음.
  •  인터페이스를 통해 상호작용하므로 MVC가 가진 테스트 문제와 함께 모듈화/유연성 문제 역시 해결할 수 있음.
  •  View에게 표시할 내용(Data)만 전달하며 어떻게 보여줄 지는 View가 담당.

 

 

 

 

반응형