본문 바로가기

[Spring] Spring MVC의 구조

민이(MInE) 2023. 6. 3.
반응형

Inflearn의 김영한님의 스프링 MVC 1편 -백엔드 웹 개발 핵 기술 강의를 참고하여 작성한 내용입니다.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

 

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의

웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -

www.inflearn.com

https://chanhuiseok.github.io/posts/spring-3/

 

[Spring] Spring의 MVC 패턴과 MVC1과 MVC2 비교

컴퓨터/IT/알고리즘 정리 블로그

chanhuiseok.github.io

 


👉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를 찾고 실행해야 한다.

 

 

 

반응형

댓글