ecsimsw

MVC 패턴 본문

MVC 패턴

JinHwan Kim 2020. 6. 8. 16:31

MVC 패턴

 

  Model - View - Controller 로 역할을 분리하여 개발하는 디자인 패턴 방식이다.

 

  Model은 데이터를 관리하는 컴포넌트로 DB와 연결하여 데이터를 가져와 처리하거나, 반대로 데이터를 삽입하는 역할을 한다.

 

  View는 사용자의 요청에 답하여 출력될 사용자 인터페이스 요소 처리를 담당한다.

 

  Controller는 Model과 View를 이어, 사용자의 요구에 대한 처리를 담당한다. model에 데이터 가공을 요청하고, 가공된 데이터로 view에 화면 출력을 요청한다. 

 

 

Model 1

 

  mvc 패턴의 컴포넌트를 어떻게 분리하고 구성하는 가에 따라 model1 방식과 model2 방식으로 나뉜다.

 

  모델 1 방식은 아래 그림처럼 controller와 view의 구분이 없이 하나의 컴포넌트로 이 둘을 처리한다.

 

  웹 개발이라면 이는 jsp 파일이 될 것이고, Action 객체와 Page 객체가 분리가 안된 상황이라 예를 들 수 있다.

 

  보다 간단하게 만들 수 있으나, controller와 view의 구분이 없어 유지 보수에 까다롭다는 단점이 있다.

 

 

Model 2

 

  모델 2 방식은 정석적으로 Controller와 View가 분리되어 있다. 

 

  Controller는 Client의 요청을 받아 어떤 응답이 필요할지 판단하고, model에 데이터 관련 처리를 맡긴다.

 

  model의 처리 이후, 그 데이터로 View에 화면을 요청하고, View는 요청에 맞는 페이지를 출력한다.

 

  마찬가지로 웹 개발이라면 Controller는 Servlet으로 구성되어 있고, Model에 데이터 처리를 요구하면 DAO 객체가 DB와의 연결을 통해 데이터를 처리한다.

 

  ( DB와 DAO 사이의 데이터 변환은 DTO가 맡을 것이다. )

 

  Model에서 데이터 처리가 완료됨을 Controller에게 알리면, Controller는 View에 어떤 페이지가 출력될지 요청하고, View는 해당 페이지 파일을 포워딩하는 것으로 client에 응답하는 것이다.

 

 

예시 

 

  모델 2로 설계 

  1. FrontController

 

  - Client의 요청 URL에 따라 어떤 동작을 취할지 결정한다. 

 

  - 동작에 따라 필요한 데이터에 따라 Command를 결정하고 request와 response를 넘겨 Execute한다.

 

  - Command의 처리가 종료되면, 동작에 따라 view Page를 결정하여 forwarding 한다. 

 

2. Command

 

  - execute(HttpServletRequest request, HttpServletResponse response)

   

  - DAO를 사용하여, 데이터를 처리한다.

 

  - DAO는 DB와 연결하고, 적절한 쿼리를 수행하며, DTO를 통해 데이터를 변환하고 처리한다.

 

3. View

 

  - Controller가 결정할 view Page를 구성한다. 

'Server application > Web, Servlet' 카테고리의 다른 글

DTO와 VO, Entity  (6) 2021.04.16
스프링 이전에 Servlet  (0) 2020.07.29
JSP,Servlet / 한글화  (0) 2020.05.30
redirect 와 forward의 차이  (0) 2020.05.21
JSP / 액션 태그  (0) 2020.05.18
Comments