[Spring] Spring MVC의 구조
Inflearn의 김영한님의 스프링 MVC 1편 -백엔드 웹 개발 핵 기술 강의를 참고하여 작성한 내용입니다.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1
https://chanhuiseok.github.io/posts/spring-3/
👉Spring MVC란??
M(Model)V(View)C(Controller)로 소프트웨어 디자인 패턴 중 하나이다.
-Model: 어플리케이션의 정보나 데이터, DB 등을 말합니다.
-View: 사용자에게 보여지는 화면, UI를 말합니다. 모델로부터 정보를 얻어 표시합니다.
-Controller: 데이터와 비즈니스 로직 사이의 상호 동작을 관리합니다. 즉, 모델과 뷰를 통제합니다. MVC 패턴에서 View와 Model이
직접적인 상호 소통을 하지 않도록 관리합니다.
👉Spring MVC의 구조
동작 순서
1. Handler 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 Handler(Controller)를 조회한다.
2. Handler Adapter 조회: Handler를 실행할 수 있는 Handler Adapter를 조회한다.
3. Handler Adapter 실행: Handler Adapter를 실행한다.
4. Handler 실행: Handler Adapter가 실제 Handler를 실행한다.
5. ModelAndView 반환: 핸들러 어댑터는 핸들러라 반환하는 정보를 ModelAndView로 변환해서 반환한다.
6. viewResolver 호출: viewResolver를 찾고 실행한다.
7. View 반환: viewResolver는 View의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 View 객체를 반환한다.
8. View 렌더링: View를 통해서 View를 렌더링 한다.
👉DispacherServlet
Spring MVC도 Front Controller 패턴으로 구현 되어 있다.
Spring MVC의 Front Controller가 바로 DispatcherServlet이다. DispatcherServlet이 Spring MVC의 핵심이다.
👉HandlerMapping(핸들러 매핑)
Handler 매핑에서 이 Controller를 찾을 수 있어야 한다.
예) Spring Bean의 이름으로 Handler를 찾을 수 있는 Handler 매핑이 필요하다.
👉HandlerAdapter(핸들러 어댑터)
Handler 매핑을 통해서 찾은 Handler를 실행 할 수 있는 Handler Adapter가 필요하다.
예)Controller 인터페이스를 실행할 수 있는 Handler Adapter를 찾고 실행해야 한다.
'Spring Boot' 카테고리의 다른 글
[Spring Boot] Spring Boot와 MongoDB 연동하기 (2) | 2023.07.19 |
---|---|
[Spring] Grafana와 Prometheus로 서버 모니터링 하기 (0) | 2023.07.07 |
[Spring] Spring boot JPA사용해 로그인, 회원가입 구현 (0) | 2023.05.29 |
[Spring]@ModelAttribute 어노테이션의 기능과 사용법 (0) | 2023.05.23 |
[Spring]메시지와 국제화 (0) | 2023.05.12 |
댓글