Spring MVC는 Spring에서 제공하는 웹 모듈로, Model, View, Controller를 활용해 사용자의 다양한 HTTP Request를 처리
하고, 다양한 형식의 Response
, View를 리턴
하는 응답까지, 다양한 응답을 할 수 있도록 도와주는 프레임워크이다. 아래의 사진을 보며 Spring MVC의 작동원리에 대해 이해해보자.
- Client가 URL을 통해
Request를 보냄
- 프론트 컨트롤러(Front Controller)인
DispatcherServlet
은 `Handler Mapping을 통해 해당 Request가 어느 컨트롤러에게 온 요청인지 찾음 - DispatcherServlet이
Handler Adapter
에게 Reqeust 전달을 넘김 - Handler Adapter가
Controller
에게 Request 전달 - Controller는
비즈니스 로직
을 처리한 후View Name
을 리턴 - DispatcherServlet은
View Resolver
를 통해 해당 View를 찾음 - Controller에서 View에 전달할 데이터를 추가
- 데이터가 추가된 View 리턴
- DI를 통해 컴포넌트 간의 결합도를 낮출 수 있음
- 단위 테스트 용이
- IoC를 통해 Bean의 라이프사이클에 대해 신경쓰지 않고 개발에 집중할 수 있음