🌱 Spring MVC란?
- MVC 패턴 + 프론트 컨트롤러 패턴 + 어댑터 패턴이 적용된 백엔드 웹 프레임워크
→ 백엔드 웹 기술의 진화 단계 중 네 번째
🧩 MVC 패턴 구조 (기본 구조)

🚦 Spring MVC 핵심 구조
→ 핵심은 DispatcherServlet이 중앙 관제탑 역할을 수행하는 것!
1. HTTP 요청 수신 (DispatcherServlet)
2. HandlerMapping으로 해당 URL에 맞는 Controller 탐색
3. HandlerAdapter로 알맞은 Controller 호출 가능 여부 확인
4. Handler(Controller) 실행 → ModelAndView 반환
5. ViewResolver로 View 이름 → View 객체 변환
6. View 렌더링 → HTML 응답
🔄 Dispatcher Servlet이란?
- Spring MVC의 프론트 컨트롤러 역할
HttpServlet을 상속하여 작동/ URL에 매핑service() 메서드 호출 → 내부적으로 doDispatch() 동작> IntelliJ Class Diagram
1. Dispatcher Servlet은 HttpServlet을 상속받아서 사용하며, Servlet의 한 종류
2. Spring Boot는 Dispatcher Servlet을 서블릿으로 자동으로 등록(내장 Tomcat WAS를 실행하면서 등록)하고 모든 URL 경로에 대해서 Mapping → (urlPatterns=”/”)
3. 더 자세한 URL 경로가 높은 우선 순위를 가짐
→ 개발자가 만들 Servlet이 항상 우선 순위가 높아서 실행됨
⚙️ DispatcherServlet 주요 기능
// 핵심 흐름 요약
1. Handler 조회 → getHandler()
2. HandlerAdapter 조회 → getHandlerAdapter()
3. HandlerAdapter 실행 → handle()
4. 결과 처리 → processDispatchResult()
5. View 이름 확인 → resolveViewName()
6. View 렌더링 → view.render()
🧰 Spring MVC의 주요 Interface
- Spring은 다형성을 통해 유연한 확장이 가능하도록 구성됨
📂 org.springframework.web.servlet 패키지
| 인터페이스 | 역할 요약 |
|---|---|
HandlerMapping | URL에 맞는 Handler(Controller) 매핑 |
HandlerAdapter | Handler 실행을 돕는 어댑터 역할 |
ViewResolver | 논리 View 이름 → 물리 View 객체로 변환 |
View | 최종 렌더링 담당 |
❓ Spring MVC 구조 전부 알아야 할까?