장점: 공통 작업 통합 관리 및 컨트롤러 구현 단순화
상위 맥락
01. DispatcherServlet과 Front Controller < 02. MVC 아키텍처와 요청 흐름 < 01. Spring MVC1 기초와 아키텍처 < MVC < Spring < Web
핵심 정리
Front Controller 패턴의 장점은 웹 요청 처리에 필요한 공통 작업을 중앙에서 관리하고, 실제 컨트롤러 구현을 단순하게 만든다는 점입니다. DispatcherServlet은 요청 흐름의 중심에서 라우팅, 실행 위임, 뷰 해석 같은 공통 절차를 통합 관리합니다.
공통 작업의 통합
웹 애플리케이션은 요청을 받을 때마다 반복되는 작업이 많습니다. 요청 경로 분석, 핸들러 선택, 파라미터 바인딩, 뷰 결정, 응답 렌더링 등이 대표적입니다. 이 작업을 각 컨트롤러가 직접 처리하면 중복 코드가 많아지고 흐름이 분산됩니다.
DispatcherServlet은 이런 작업을 중앙 흐름으로 끌어올리고, 필요한 부분은 HandlerMapping, HandlerAdapter, ViewResolver에 위임합니다. 따라서 컨트롤러는 더 이상 서블릿 API를 직접 조작하거나 복잡한 분기 흐름을 직접 만들 필요가 줄어듭니다.
컨트롤러 구현의 단순화
@Controller의 메서드는 보통 다음 역할에 집중합니다.
- 요청 파라미터를 받습니다.
- Service를 호출합니다.
- 결과를 Model에 저장합니다.
- 논리적 View 이름이나 데이터를 반환합니다.
즉, 컨트롤러는 웹 요청의 세부 인프라를 직접 관리하는 객체가 아니라, 요청을 해석하고 비즈니스 계층으로 연결하는 얇은 계층으로 설계됩니다.
AOP와의 구조적 유사성
AOP가 로깅, 트랜잭션 같은 시스템 서비스를 비즈니스 로직 밖으로 분리하듯이, DispatcherServlet은 웹 요청 처리의 공통 흐름을 개별 컨트롤러 밖으로 분리합니다. 둘 다 핵심 로직이 인프라 코드에 오염되지 않도록 만드는 구조입니다.
한 문장 요약
DispatcherServlet은 웹 요청 처리의 공통 흐름을 중앙에서 관리하여, @Controller가 요청 분석과 흐름 제어라는 본래 책임에 집중할 수 있게 합니다.
핵심 연결
AOP, DispatcherServlet, HandlerMapping, HandlerAdapter, ViewResolver와 함께 읽으면 좋습니다.