Servlet
Servlet은 Java를 이용해서 HTTP 요청을 처리하고
응답을 생성하는 서버 측 프로그램 입니다.
javax.servlet.http.HttpServlet 클래스를 상속받아 구현하게 되고
Tomcat과 같은 웹 서버 위에서 작동합니다.
Spring에서도 이 Servlet 개념을 기반으로 하고 있습니다.
그중 DisPatcherServlet이 Spring MVC의 핵심 Servlet이라고 할수 있습니다.
즉, 서블릿은 웹 애플리케이션에서 클라이언트의 요청을 받아서
처리한 후에 응답을 생성하는 입구와 같은 역할을 합니다.
DispatcherServlet
DispatcherServlet은 Spring MVC에서 정말 핵심적인 존재입니다.
스프링 프레임워크의 웹 MVC 아키텍처에서 요청을 중앙에서 처리하고
알맞은 컨트롤러나 뷰로 전달해주는 프론트 컨트롤러 입니다.
DispatcherServlet은 클라이언트의 HTTP 요청을 받아서
컨트롤러에 전달하고 그 결과를 뷰에 전달하여 최종 응답을 반환하는 중앙 서블릿 입니다.
Servlet이 왜 쓰일까?
DispatcherServlet을 통해서 Servlet을 마저 설명해보겠습니다.
Spring MVC에서
Servlet은 다음과 같은

구조로 동작하게 됩니다.
Spring MVC에서는 모든 HTTP 요청이 DispatcherServlet을 통해서 들어오며
이 Servlet이 요청을 받아서 Spring의 컨트롤러나 서비스같이 다양한 계층으로
연결하는 프론트 컨트롤러 역할을 수행하게 됩니다.
즉 DispatcherServlet이 없으면 SpringMVC도 작동하지 않습니다.
모든 요청은 서블릿을 지나야 하기 때문에 Servlet이 핵심중에 핵심이라고 할수 있겠습니다.
Servlet의 장단점
우선 장점부터 보자면
1. 요청과 응답 제어가 용이합니다
doGet(), doPost() 등으로 HTTP 메서드에 따라 동작을 제어할 수 있습니다.
2. 강력한 확장성과 커스터마이징이 가능합니다.
필터, 인터셉터 등과 함께 쓰면 요청 전후 처리가 가능합니다.
3. 프레임워크의 기반이 됩니다.
Spring MVC의 DispatcherServlet, JSP, JSF 모두 Servlet을 기반으로 합니다.
4. 표준 기반으로 이식성이 높습니다.
Tomcat과 같은 JavaEE 기반의 대부분 서버에서 동일하게 동작합니다.
다음은 단점입니다.
1. 코드가 복잡해집니다.
HTML을 직접 출력하거나, request/response 수작업으로 다뤄야 함
2. 유지보수가 어렵워질 수 있습니다.
MVC 구조가 없으면 로직이 섞여 코드가 비대해짐
3. 라이프사이클 복잡해질 수 있습니다.
init(), service(), destroy() 등의 생명주기 관리가 필요
4. 생산성이 낮아질 수 있습니다.
URL 매핑, 파라미터 바인딩 등을 직접 처리해야 함
마무리
Servlet은 Java 언어를 기반으로 한 웹 프로그래밍 기술로,
클라이언트의 HTTP 요청을 받아 처리하고 그에 대한 응답을 생성하는 서버 측 컴포넌트입니다.
javax.servlet.http.HttpServlet 클래스를 상속하여 구현되며,
Tomcat과 같은 웹 애플리케이션 서버 위에서 동작합니다. Servlet은 요청을 분석하고,
적절한 로직을 실행한 뒤, 결과를 HTML이나 JSON 등의 형태로 응답하는 역할을 합니다.
Spring MVC에서도 이 Servlet 개념을 기반으로 하며,
모든 웹 요청을 처리하는 DispatcherServlet이 대표적인 예입니다.
즉, Servlet은 웹 애플리케이션의 핵심 입구이자,
클라이언트와 서버 간의 통신을 책임지는 중요한 구성 요소입니다.
'Spring' 카테고리의 다른 글
| [Spring] Spring Filter란? (2) | 2025.08.01 |
|---|---|
| [Spring] PSA란? (0) | 2025.07.22 |
| [Spring] IoC란? (0) | 2025.07.17 |
| [Spring] DI란? (0) | 2025.07.16 |
| [Spring] 어노테이션과 import는 무엇일까? (1) | 2025.06.09 |