Skip to Content
Suffering builds character

2.서블릿 컨테이너

서블릿은 서블릿 컨테이너에 의해 관리되어 동작함

1. 서블릿 컨테이너

서블릿 컨테이너(Servlet Container)란 Java 기반 웹 프로그램에서 사용되는 Servlet 객체를 관리하는 공간(컨테이너)
→ ex. FirstServlet.java는 곧 서블릿 객체 인스턴스를 뜻함

서블릿 컨테이너는 웹 컨테이너, Tomcat 컨테이너라고 표현하기도 함

현재 서버 실행으로 사용 중인 Apache Tomcat이 대표적인 서블릿 컨테이너로 동작하고 있음

사용자의 요청에 의해 생성된 서블릿 객체는 서블릿 컨테이너 내부에 보관되고,
이후 동일한 경로로 요청이 올 경우, 보관하고 있던 서블릿을 재사용함
매 요청이 발생할 때마다 새로운 서블릿 객체를 생성하지 않음

정리하면, 서블릿 컨테이너는 작성된 서블릿 객체를 생성하고, 서블릿 컨테이너 내부에서 보관, 관리하고 있다가
요청에 따라 해당 서블릿 객체를 실행시켜주는 역할을 함
→ 더 정확하게는 EJB Conatiner에서 Bean의 형태로 관리된다고 함

Java 진영에서 대표적으로 사용하는 서블릿 컨테이너가 Apache Tomcat

container

Note

제어의 역전, Inversion of Control(IoC)

1. Java SE 기반의 콘솔(Console) 프로그램
Java SE 기반의 콘솔 프로그램을 실행할 때는 개발자가 직접 인스턴스를 작성 및 관리하는 방식으로, 작성한 코드는 main() 내부에서 수행되었음
→ 프로그램에 대한 제어권이 개발자한테 있음

2. Java EE 기반의 컨테이너 방식으로 동작하는 웹 서버 프로그램, Servlet/JSP

프로그램을 실행하던 main()가 사라지고,
프로그램, 보다 정확하게는 서버를 실행하면 서버의 동작에 필요한 모든 인스턴스들은 개발자가 아닌 컨테이너가 생성, 관리하는 방식
프로그램의 처리 흐름과 동작에 대한 제어권이 개발자에서 컨테이너로 변경됨

Last updated on