Tomcat
title: 2026-04-08 author: 강병호 (이름) date: 2026-04-08 (날짜) category: TIL/강병호/2026/04 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —
Tomcat과 Servlet의 동작 원리
1. Tomcat (WAS: Web Application Server)
Tomcat은 웹 서버와 웹 컨테이너가 결합된 형태의 가장 대표적인 WAS입니다. 서블릿 컨테이너라고도 불리며 다음과 같은 핵심 역할을 수행합니다.
- 서블릿 수명 주기 관리: 서블릿의 생성, 실행, 소멸을 관리합니다.
- 매핑 및 라우팅: 요청 URL을 적절한 서블릿 코드로 연결합니다.
- 통신 지원: HTTP 요청을 수신하고 응답을 보낼 수 있는 소켓을 생성하여 관리합니다.
- 필터 체인 관리: 요청과 응답 사이에서 보안이나 인코딩 등의 필터링 처리를 담당합니다.
2. 서블릿(Servlet)이란?
서블릿은 자바를 기반으로 동적인 웹 콘텐츠를 생성하기 위한 기술 표준(Spec)입니다. 클라이언트의 요청에 대해 특정 로직을 수행한 후 그 결과를 다시 응답해주는 역할을 합니다.
서블릿의 주요 동작 과정
- 요청 수신: 사용자가 URL을 입력하면 HTTP 요청이 서블릿 컨테이너(Tomcat)로 전달됩니다.
- 객체 생성: 컨테이너는 요청 정보를 담은
HttpServletRequest와 응답을 위한HttpServletResponse객체를 생성합니다. - 서블릿 매핑: 설정 정보를 바탕으로 해당 요청 경로를 처리할 서블릿을 찾습니다.
- 메서드 실행: 서블릿의
service()메서드를 호출하며, HTTP 메서드(GET, POST 등)에 따라doGet(),doPost()등이 실행됩니다. - 응답 처리: 요청 처리가 끝나면
HttpServletResponse객체를 통해 클라이언트에게 결과를 전송합니다.
3. 서블릿의 생명주기 (Life Cycle)
서블릿은 컨테이너에 의해 철저하게 관리되며 다음 세 단계를 거칩니다.
| 단계 | 메서드 | 설명 |
|---|---|---|
| 초기화 | init() |
서블릿이 처음 호출되었을 때, 메모리에 로드되어 있지 않으면 생성 후 1회 호출됩니다. |
| 서비스 실행 | service() |
클라이언트 요청이 올 때마다 호출됩니다. 이후 GET/POST 등 방식에 따라 doXxx()를 호출합니다. |
| 소멸 | destroy() |
서블릿이 더 이상 필요하지 않거나 컨테이너가 종료될 때 호출되어 자원을 정리합니다. |