MVC 패턴
MVC 패턴이란 애플리케이션을 구성하는 요소를 역할에 따라 Model, View, Controller로 나누어 구분한 패턴이다.
2023.01.04 - [Spring] - [Spring] MVC 패턴
스프링 MVC
웹 계층에 서블릿 API를 기반으로 클라이언트의 요청을 처리하는 모듈이다.
Model, View, Controller로 역할을 분리해 각자의 영역에 집중하여 효율적으로 개발이 가능하다.
스프링 MVC의 구조
Dispatcher Servelet
스프링 MVC의 프론트 컨트롤러이다.
가장 앞단에서 클라이언트의 요청을 처리하는 컨트롤러로 전반적인 처리과정을 관리한다.
DispacherServlet 도 부모 클래스에서 HttpServlet을 상속받아서 사용하고, 서블릿으로 동작한다.
Handler
Handler는 스프링 MVC에서 웹 요청을 처리하는 객체를 의미한다.
컨트롤러를 일종의 핸들러라 부를 수 있다.
핸들러는 DispatcherServlet가 전달해준 HTTP 요청을 처리하고 결과를 Model에 저장한다.
ModelAndView
컨트롤러 처리 결과 후 반환된 Model과 View가 담긴 객체이다.
viewResolver
ModelAndView를 처리하여 View를 반환한다.Model에 있는 데이터를 이용하여 View에 데이터 정보를 넘긴다.
스프링 MVC 동작 순서
스프링 MVC는 다음과 같은 순서로 동작한다.
- 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다.
- 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다.
- 핸들러 어댑터 실행: 핸들러 어댑터를 실행한다.
- 핸들러 실행: 핸들러 어댑터가 실제 핸들러를 실행한다.
- ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환해서 반환한다.
- viewResolver 호출: 뷰 리졸버를 찾고 실행한다. JSP의 경우: InternalResourceViewResolver 가 자동 등록되고, 사용된다.
- View 반환: 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체를 반환한다. JSP의 경우 InternalResourceView(JstlView)를 반환하는데, 내부에 forward() 로직이 있다.
- View 렌더링: 뷰를 통해서 뷰를 렌더링 한다.
출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard
'Spring' 카테고리의 다른 글
[Spring] @RequestParam 사용법 (0) | 2023.01.10 |
---|---|
[Spring] @PathVariable 사용법 (0) | 2023.01.10 |
[Spring] MVC 패턴 (0) | 2023.01.04 |
[Spring] 빈 생명주기 콜백 (0) | 2022.12.28 |
[Spring] 같은 타입으로 조회된 빈이 여러 개일 경우 (0) | 2022.12.28 |