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

- 웹 브라우저 요청이 DispatcherServlet에 전달
- HandlerMapping에서 요청 URL과 매칭 되는 컨트롤러 검색
- HandlerAdapter에 처리 요청
- 컨트롤러 실행 결과를 리턴
- 컨트롤러 실행 결과를 보여줄 View 검색
- View에서 응답 생성 후 웹 브라우저에 전송
위의 그림에서 각 구성 요소는 다음과 같은 역할을 수행한다.
- DispatcherServlet : 클라이언트의 요청을 전달받는다. 컨트롤러에게 클라이언트의 요청을 전달하고, 컨트롤러가 리턴한 결괏값을 View에 전달하여 알맞은 응답을 생성하도록 한다.
- HandlerMapping : 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정한다.
- HandlerAdapter : DispatcherServlet의 처리 요청을 변환해서 컨트롤러에게 전달하고, 컨트롤러의 응답 결과를 DispatcherServlet이 요구하는 형식으로 변환한다. 웹 브라우저 캐시 등의 설정도 담당한다.
- Controller : 클라이언트의 요청을 처리한 뒤, 결과를 리턴한다. 응답 결과에서 보여줄 데이터를 모델에 담아 전달한다.
- ModelAndView : 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다.
- ViewResolver : 컨트롤러의 처리 결과를 보여줄 뷰를 결정한다.
- View : 컨트롤러의 처리 결과 화면을 생성한다. JSP나 Velocity 템플릿 파일 등을 이용해서 클라이언트에 응답 결과를 전송한다.
Reference
- 웹 개발자를 위한 Spring 4.0 프로그래밍 (최범균 저)
- Spring MVC (Model View Controller) - 스프링 MVC 패턴
'Spring' 카테고리의 다른 글
| [Spring] 스프링 MVC(3) - 스프링 MVC 설정 (0) | 2022.03.12 |
|---|---|
| [Spring] 스프링 MVC(2) - DispatcherServlet 설정 (0) | 2022.03.12 |
| [Spring] 스프링 AOP(7) - AspectJ 표현식 (0) | 2022.02.20 |
| [Spring] 스프링 AOP(6) - Proxy Target Class (0) | 2022.02.20 |
| [Spring] 스프링 AOP(5) - JoinPoint (0) | 2022.02.19 |