Spring
서블릿 컨테이너와 Spring 컨텍스트
테니드2
2025. 4. 15. 11:41
1. 서블릿 컨테이너(웹 어플리케이션) - 예: Tomcat
- 정의:
웹 서버에서 자바 웹 애플리케이션(웹사이트)을 실행할 수 있게 해주는 프로그램입니다. - 주요 역할:
- 웹 브라우저에서 들어오는 요청을 받아서, 서블릿(자바로 만든 웹 프로그램)에게 전달합니다.
- 서블릿, 필터, 리스너 등 웹 관련 자바 객체의 생성과 생명주기를 관리합니다.
- 예시: Tomcat, Jetty, Undertow 1. 서블릿 컨테이너(예: Tomcat)
- 정의:
웹 서버에서 자바 웹 애플리케이션(웹사이트)을 실행할 수 있게 해주는 프로그램입니다. - 주요 역할:
- 웹 브라우저에서 들어오는 요청을 받아서, 서블릿(자바로 만든 웹 프로그램)에게 전달합니다.
- 서블릿, 필터, 리스너 등 웹 관련 자바 객체의 생성과 생명주기를 관리합니다.
- 예시: Tomcat, Jetty, Undertow
- 정의:
2. Spring 컨텍스트(스프링 IoC 컨테이너)
- 정의:
Spring 프레임워크가 제공하는 "객체 관리 시스템"입니다.
쉽게 말해, 프로그램에서 사용할 여러 객체(Bean)를 만들고, 서로 연결해주고, 필요할 때 꺼내 쓸 수 있게 관리해줍니다. - 주요 역할:
- 개발자가 직접 객체를 만들고 연결하지 않아도, 설정에 따라 자동으로 객체를 생성하고 주입(Dependency Injection)합니다.
- 객체의 생명주기(생성~소멸)도 관리합니다.
- 예시: 회원 서비스, 주문 서비스 등 비즈니스 로직 객체들을 관리
- 실생활 예시
서블릿 컨테이너
- 비유:
"건물 관리자"- 한 건물(=웹 애플리케이션)을 짓고, 그 안에 여러 방(=서블릿, 필터 등)을 만들어줍니다.
- 외부 손님(=웹 요청)이 오면, 건물 입구에서 안내해 각 방으로 보내줍니다.
- 방의 청소, 유지보수(=생명주기 관리)도 담당합니다.
Spring 컨텍스트
- 비유:
"방 안의 집사"- 각 방(=서블릿, 컨트롤러 등) 안에서 필요한 가구(=객체, Bean)를 알아서 준비하고, 필요한 곳에 배치해줍니다.
- 가구가 고장나면 교체하고, 필요 없으면 치웁니다.
- 즉, 방(서블릿)이 제대로 일할 수 있도록 내부를 관리합니다.
그림 설명
[외부 요청]
│
▼
┌─────────────────────────────┐
│ 서블릿 컨테이너 │ ← 건물 관리자 (Tomcat 등)
│ ┌───────────────────────┐ │
│ │ Spring 컨텍스트 │ │ ← 방 안의 집사 (ApplicationContext)
│ │ (ApplicationContext) │ │
│ │ ┌───────────────┐ │ │
│ │ │ Bean1 │ │ │
│ │ │ Bean2 │ │ │
│ │ │ ... │ │ │
│ │ └───────────────┘ │ │
│ └───────────────────────┘ │
└─────────────────────────────┘