[Spring] Spring MVC 구조
1. MVC 패턴이란?
- Business logic과 Presentation logic을 분리하기 위해서 고안된 구조
- 모델(Model) - 뷰(View) - 컨트롤러(Controller)로 이루어져 있음
- 모델(Model)
- 데이터 베이스와 연동하여 데이터를 다룸
- 비즈니스 로직을 다룸
- ex) DAO, Service 클래스
- 뷰(View)
- 모델이 처리한 결과를 바탕으로 화면을 출력
- ex) HTML, JSP
- 컨트롤러(Controller)
- 데이터와 비즈니스 로직 사이으이 상호 동작을 관리
- 모델(Model)
2. Spring MVC 구조
- 기본적으로 Front Controller 패턴이다
- Front Controller(여기선 Dispatcher Servlet)가 요청을 받고 적절한 handler들을 찾아주는 방식
- 중복된 부분을 공통적으로 처리할 수 있게 도와 줌
- 프론트 컨트롤러 도입 전
- Front Controller(여기선 Dispatcher Servlet)가 요청을 받고 적절한 handler들을 찾아주는 방식
-
- 프론트 컨트롤러 도입 후
<동작 순서>
- HTTP 요청이 오면 요청 URL에 매핑된 핸들러를 조회한다.
- 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다.
- 핸들러 어댑터를 실행한다.
- 핸들러 어댑터가 실제 핸들러를 실행한다.
- 실제 핸들러가 정보를 반환하고 핸들러 어댑터가 그 정보를 이용하여 ModelAndView를 반환한다.
- 뷰 리졸버를 찾아서 실행한다.
- 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 하는 View 객체를 반환한다.
- View를 랜더링 한다.
※ 참조
- [Spring] 스프링 MVC 모델
- [스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 김영한
'FRAMEWORK > [SPRING]' 카테고리의 다른 글
[Spring] Spring 검증 기능1 (BindingResult, Validator) (0) | 2022.06.07 |
---|---|
[Spring] HttpMessageConverter (0) | 2022.06.06 |
[Spring] CGI vs Servlet (0) | 2022.06.03 |
[Spring] Web Server vs WAS (0) | 2022.06.02 |
스프링 핵심 원리 - 기본편2 (0) | 2021.08.23 |