Spring Web MVC는 서블릿 API를 기반으로 구축된 웹 프레임워크이다.
Quote
Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web MVC,” comes from the name of its source module (spring-webmvc), but it is more commonly known as “Spring MVC”.
https://docs.spring.io/spring-framework/reference/web/webmvc.html
동작 과정
DispatcherServlet이 Client의 HTTP 요청을 받는다.HandlerMapping을 통해 요청을 처리할 Controller(Handler)를 찾는다.HandlerAdapter를 통해 해당 Controller를 호출한다.- Controller는 요청을 처리하고 필요한 비즈니스 로직을 수행한 뒤 Model과 View 정보를 반환한다.
DispatcherServlet은ViewResolver를 통해 View 이름에 해당하는 실제 View를 찾는다.- View는 Model 데이터를 이용하여 응답을 렌더링한다.
DispatcherServlet이 렌더링된 결과를 HTTP Response로 Client에게 반환한다.
TIP
RestController라면 5~6번이
HttpMessageConverter를 이용한 JSON/XML 직렬화 과정으로 대체
왜 DispatcherServlet이 Controller를 직접 호출하지 않는가?
HandlerAdapter가 존재하는 이유는 Spring이 여러 형태의 Handler/Controller를 동일한 DispatcherServlet 구조에서 처리할 수 있도록 하기 위해서다. HandlerAdapter가 존재하는 이유는 Spring이 여러 형태의Handler/Controller를 동일한 DispatcherServlet 구조에서 처리할 수 있도록 하기 위해서다.

DispatcherServlet
Dispatch(보내다/파견하다) + Servlet = Servlet을 보내는 객체
DispatcherServlet은 Spring MVC에서 프런트 컨트롤러 역할을 하는 핵심 구성 요소이다.
INFO
기본적으로 Java의 Servlet은 하나의 Request에 대해서 하나의 Servlet을 생성한다.
이 방법은 간단하고 직관적이지만 Servlet이 많이 생성되면 관리하기 힘들어지는 단점이 있다.
Spring에서는 DispatcherServlet이라는 FrontController 패턴을 사용해서 중앙에서 하나로 관리한다.
Servlet이 요청을 받아서 HandlerMapping을 통해 그에 맞는 컨트롤러로 분배하는 방식을 사용한다.
하나의 객체에서 모든 요청을 먼저 처리하기 때문에 다음과 같은 이점을 누릴 수 있다.
- 재사용성 및 유연한 매핑
- 인터셉터의 사용
- 관리의 용이성
Spring MVC에서는 DispatcherServlet이 전체 요청 처리 흐름을 통제한다.
- 들어오는 요청을 처리하고 적절한 컨트롤러로 전달
- 컨트롤러에게 요청을 처리하고 응답을 반환하는 방법을 알려줌
- 컨트롤러는 요청을 처리한 후 결과를 표시할 올바른 뷰를 선택
출처 및 참고자료
17. Web MVC frameworkdocs.spring.io What is Dispatcher Servlet in Spring? - GeeksforGeeksYour All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
www.geeksforgeeks.org
[10분 테코톡] 안나의 스프링 MVC와 DispatcherServlet🙋♀️ 우아한테크코스의 크루들이 진행하는 10분 테크토크입니다. 🙋♂️'10분 테코톡'이란 우아한테크코스 과정을 진행하며 크루(수강생)들이 동료들과 학습한 내용을 공유하고 이야기하는 시간입니다. 서로가 성장하기 위해 지식을 나누고 대화하며 생각해보는 시간으로 자기 주도적인 ...
