본문 바로가기
대외활동/UMC 8기

4주차. spring web MVC-DispatcherServlet

by 피스타0204 2025. 4. 7.

서블릿(Servlet)은 클라이언트의 요청을 받아 처리하고 응답을 생성하는 자바 기반의 서버 측 웹 프로그램입니다. Spring Web MVC는 Servlet API를 기반으로 구축된 원래 웹 프레임워크이며 처음부터 Spring Framework에 포함되었습니다.

전통적인 서블릿 방식에서는 비즈니스 로직을 각 Servlet 클래스 안에 직접 작성해야 하기 때문에, 코드의 중복이 많고 유지보수가 어려운 단점이 있습니다.

 

DispatcherServlet은 Spring Web MVC의 중심 구성 요소로서, 모든 웹 요청을 중앙에서 처리하는 Front Controller 패턴을 기반으로 동작합니다. Spring MVC의 중앙 제어 지점(Front Controller) 역할을 수행하는 서블릿입니다.

반면 Spring MVC는 컨트롤러, 서비스, 리포지토리 등으로 역할을 분리하여 코드를 구조화할 수 있어 유지보수성과 확장성이 뛰어납니다.

 

또한 Spring MVC는 공통 로직을 처리할 수 있도록 HandlerInterceptor를 제공합니다. 이를 통해 컨트롤러 실행 전/후, 혹은 뷰 렌더링 후 등의 시점에 공통 작업(예: 인증, 로깅 등)을 삽입할 수 있으며,

WebMvcConfigurer를 사용해 어떤 경로(URL)에 인터셉터를 적용할지 설정할 수 있습니다.

이처럼 Spring MVC는 요청 처리 흐름을 정교하게 제어할 수 있어 전통적인 Servlet 방식보다 더 유연하고 강력한 웹 애플리케이션 아키텍처를 구성할 수 있습니다.

 

# HandlerInterceptor

로그인 체크, 권한 확인, 로깅, 요청 시간 측정 등여러 컨트롤러에서 반복적으로 사용되는 공통 로직이 있을 때, 매번 컨트롤러마다 작성하는 건 비효율적입니다. DispatcherServlet이 요청을 처리하는 과정에서 핸들러(컨트롤러) 실행 전후에 개입할 수 있게 해주는 기능이 바로 인터셉터입니다. java config에서 등록합니다.

 

참고 자료)

https://docs.spring.io/spring-framework/reference/web/webmvc.html

 

Spring Web MVC :: Spring Framework

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 commonl

docs.spring.io