SPRING

[Spring] MVC, 동작원리, 개발순서

보겸삼촌 2021. 1. 27. 17:24

이전 게시글에 이어서 MVC 패턴에 대해서 더 상세하게 기술

 

1. MVC 패턴

Model, View, Controller의 합성어로 소프트웨어 공학에서 사용되는 소프트웨어 디자인패턴

 

- Model : 프로그램의 내부 상태, , 프로그램의 정보(데이터)를 말하는 것

- View : 사용자가 보게 될 결과화면 출력 (사용자 인터페이스 요소)

- Controller : 사용자의 입력 처리와 흐름 제어를 담당 (데이터와 비즈니스 로직간의 상호작용을 담당)

 

 

 

  1.1. MVC2

 

    MVC1 구조와 달리 웹 브라우저의 요청을 하나의 Servlet이 받게 됨. 그리고 Servlet은 웹 브라우저의 요청을 처리 후

    그 결과를 jsp로 포워딩

[그림, 내용 출처] http://nickjoit.tistory.com/9

 

 

- Client의 요청 처리와 응답처리, 비즈니스 로직을 처리하는 부분을 모듈화 시킨 구조로, 처리작업의 분리로 인해

 유지보수와 확장이 용이하지만, 구조 설계를 위한 시간이 많이 소요되므로 개발기간이 증가

 

 

  1.2. Spring MVC 구성 요소 및 처리 흐름

구성요소 설명
DispatcherServlet Client의 요청을 전달받아 요청에 맞는 Controller가 반환한 결과값을 View에 전달하여
알맞는 응답을 생성
HandleMapping Client의 요청 URL을 어떤 Controller가 처리할지 결정
Controller Client의 요청을 처리한 뒤, 결과를 DispatcherServlet에게 반환
ModelAndView Controller가 처리한 결과정보 및 View 선택에 필요한 정보를 담고 있음
ViewResolver Controller의 처리 결과를 생성할 View를 결정
View Controller의 처리 결과 화면을 생성, jsp 등으로 사용

 

 

[출처] http://nickjoit.tistory.com/9

 

 

 ClientWeb Browser에서 요청한 URLDispatcherServlet이 전달 받아 HandlerMapping을 통해서 요청된 URL

매핑 되는 Controller를 검색하여 리턴 함

 

 그리고 Controller는 요청받은 것을 처리하고, 그 결과를 ModelAndViewDispatcher Servlet에게 리턴

 

 DispatcherServlet은 결과값을 가지고 실행 결과를 Client에게 보여줄 View를 전달해주기 위해 View Resolver에게 요청

 

 실행 결과를 보여줄 View를 리턴 받은 DispatcherServletView를 통해 Client요청에 대한 응답을 출력해주기를 요청하고 Viewjsp를 생성하여 Client에게 결과 값 을 보여줌

 

 

 

 

  1.3. Spring MVC 개발 순서

  ➀ Client에 요청을 받을 DispatcherServlet web.xml 파일에 설정
  ➁ Client의 요청을 처리할 Controller를 작성
  ➂ View Resolver 설정(Controller가 전달한 값을 이용하여 응답 결과 화면을 생성할 View를 결정함)
  ➃ jsp 등을 이용하여 View 영역의 코드를 작성

 

 

 

 

[이전 포스팅] bogyum-uncle.tistory.com/34

 

spring mvc 개념

MVC2 M (Model)  : 어플리케이션의 정보, 데이터 V (View)  : 사용자에게 보여주는 인터페이스, 화면 Java 웹 어플리케이션에서는 jsp C (Controller)  : 비지니스 로직과 model 간 상호동작의 조정 역할, serv..

bogyum-uncle.tistory.com