반응형
서블릿 컨테이너란?
서블릿(Servlet)은 자바로 작성된 서버 측 프로그램으로, 주로 HTTP 요청과 응답을 처리하는 데 사용된다. 클라이언트가 보낸 요청을 받아 서버에서 필요한 로직을 수행하고, 그 결과를 다시 클라이언트에게 응답하는 역할을 한다.
이러한 서블릿을 실행하고 관리하는 환경을 제공하는 것이 바로 서블릿 컨테이너(Servlet Container)다. 서블릿 컨테이너는 서블릿의 생명 주기를 관리하며, 클라이언트의 요청을 적절한 서블릿에 전달하고, 서블릿이 생성한 응답을 다시 클라이언트에게 전달하는 중심적인 역할을 수행한다.
서블릿 컨테이너의 주요 역할
- 서블릿 객체의 생성과 소멸 관리
서블릿 컨테이너는 요청이 처음 들어올 때 서블릿 객체를 생성하고, 더 이상 필요하지 않을 경우 이를 메모리에서 해제하는 방식으로 자원을 효율적으로 관리한다. - HTTP 요청과 서블릿 매핑
클라이언트로부터 들어온 요청의 URL을 분석하여 어떤 서블릿이 이 요청을 처리할지 결정하고, 해당 서블릿의 service 메서드를 호출한다. - 요청 및 응답 객체 생성
요청 정보를 담은 HttpServletRequest 객체와, 응답 작성을 위한 HttpServletResponse 객체를 생성하여 서블릿에 전달한다. - 멀티쓰레딩 지원
각 클라이언트 요청마다 별도의 쓰레드를 생성해 서블릿을 실행함으로써 여러 사용자의 요청을 동시에 처리할 수 있도록 한다. - 보안 및 세션 관리
인증, 권한 검사, HTTPS 처리, 세션 유지 등 웹 애플리케이션에 필요한 다양한 기능을 제공한다.
대표적인 서블릿 컨테이너
서블릿 컨테이너는 별도의 서버로 운영되거나 애플리케이션에 내장될 수 있다. 대표적인 서블릿 컨테이너는 다음과 같다.
- Tomcat
- Jetty
- Undertow
- WildFly
Spring Boot는 기본적으로 Tomcat을 내장 서버로 사용하며, 실행 시 자동으로 서블릿 컨테이너가 함께 구동된다.
Spring Boot와의 관계
Spring Boot 애플리케이션도 내부적으로는 DispatcherServlet이라는 서블릿을 기반으로 동작한다. 이 DispatcherServlet은 서블릿 컨테이너에 의해 관리되며, 클라이언트의 요청을 받아 적절한 컨트롤러로 분기하고, 그 결과를 응답으로 구성해 반환한다.
결국 Spring Boot 애플리케이션도 서블릿 컨테이너 위에서 동작한다고 볼 수 있으며, Spring의 많은 기능들은 이 서블릿 기반 구조를 바탕으로 구현된다.
반응형
'SpringBoot' 카테고리의 다른 글
[Spring boot]Resolver란? (0) | 2025.05.03 |
---|---|
스프링 표준 코딩 작성 방법 (0) | 2023.07.05 |
[error]Spring-docs + WebSecurityConfig (0) | 2023.06.11 |
[error]Sequence "MEMBER_SEQ" not found; SQL statement: (0) | 2023.06.04 |