Spring

[Spring] 스프링 MVC(1) - 기본 흐름과 구성 요소

재담 2022. 3. 12. 18:34

Spring MVC

스프링 MVC는 여러 구성 요소가 맞물려 동작하기 때문에 스프링 MVC를 이용해서 웹 어플리케이션을 개발하려면 적어도 스프링 MVC가 어떤 식으로 동작하는지 이해하고 있어야 한다. 스프링 MVC는 다음 그림과 같은 과정을 거쳐 웹 브라우저에 응답을 전송하게 된다.

 

출처 : https://snd-snd.tistory.com/104

 

  1. 웹 브라우저 요청이 DispatcherServlet에 전달
  2. HandlerMapping에서 요청 URL과 매칭 되는 컨트롤러 검색
  3. HandlerAdapter에 처리 요청
  4. 컨트롤러 실행 결과를 리턴
  5. 컨트롤러 실행 결과를 보여줄 View 검색
  6. View에서 응답 생성 후 웹 브라우저에 전송

 

위의 그림에서 각 구성 요소는 다음과 같은 역할을 수행한다.

  • DispatcherServlet : 클라이언트의 요청을 전달받는다. 컨트롤러에게 클라이언트의 요청을 전달하고, 컨트롤러가 리턴한 결괏값을 View에 전달하여 알맞은 응답을 생성하도록 한다.
  • HandlerMapping : 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정한다.
  • HandlerAdapter : DispatcherServlet의 처리 요청을 변환해서 컨트롤러에게 전달하고, 컨트롤러의 응답 결과를 DispatcherServlet이 요구하는 형식으로 변환한다. 웹 브라우저 캐시 등의 설정도 담당한다.
  • Controller : 클라이언트의 요청을 처리한 뒤, 결과를 리턴한다. 응답 결과에서 보여줄 데이터를 모델에 담아 전달한다.
  • ModelAndView : 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다.
  • ViewResolver : 컨트롤러의 처리 결과를 보여줄 뷰를 결정한다.
  • View : 컨트롤러의 처리 결과 화면을 생성한다. JSP나 Velocity 템플릿 파일 등을 이용해서 클라이언트에 응답 결과를 전송한다.

Reference