다음 이전 차례

2. Tomcat 3.1 Getting Started

자바 기반인 tomcat 은 아파치 진영의 또 다른 산물이다. JSDK(servlet)의 설치 없이 tomcat만의 설치로 servlet과 jsp를 바로 사용할 수 가 있다.

Tomcat은 JSP 환경을 지원하는 Servlet Container 이다. Servlet Container는 사용자를 대신하여 Servlet 을 관리하고 Invoke 하는 실시간 쉘(Runtime Shell)이다.

이는 기존의 Servlet 을 지원하는 Jserv 와는 다르며 Tomcat 과 대표적인 차이는 JSDK 가 필요없다는 것이며 Jserv는 Servlet 2.0 까지만을 지원하나 Tomcat은 Servlet 2.2와 JSP 1.1을 지원한다는 것이다.

Servlet Container은 크게 세가지로 분류되며 다음과 같다.

1.Stand-alone Servlet Container : Tomcat 자체가 자바 기반의 Web Server로 사용된다. 이는 Tomcat 에서 Default mode 이다.

2.In-process Servlet Container : Web Server Plugin과 Java Container를 조합한 구현 형태이며 Apache 등의 Web Server 에 추가하여 사용하는 형태이다. 하나의 프로세스내에 멀티 쓰레드를 구현한 형태이며 이는 좋은 퍼포먼스(performance)를 가지나 하나의 프로세스내에서 각 서블릿이 멀티 쓰레드화되어 구현되므로 쓰레드의 동시 실행 개수가 제한된다( limited Scalability). 구현 형태는 Web Server Plugin이 JVM을 Web Server의 주소(Address) 영역내에 open 한 후 그 주소 영역내에서 JVM 이 실행될 수 있도록 하게 한다. 서블릿을 실행하려는 어떤 요청이 오면 Plugin은 제어권을 받아 Java Container에게 건네준다.

3.Out-of-process Servlet Container : In-process Servlet Container 와 비슷하나 JVM 은 Web Server 주소영역의 외부에서 실행된다. Web Server Plugin 과 Java Container(JVM) 은 IPC 메커니즘(대개 TCP/IP 소켓)을 사용하여 통신한다. 서블릿을 실행하려는 어떤 요청이 들어오면 plugin 은 제어권을 받아 IPC 메카니즘을 사용하여 Java Container(JVM) 에게 건네준다. Out-of-process 에서는 요청에 대한 응답시간(response time) 이 In-process보다는 좋지 않지만 scalability 나 stability 등에서 좋다.

기타 servlet 의 경우 매번 컴파일할때마다 아파치의 재기동없이 바로 실행 결과를 볼 수 있어 개발자에게는 더없이 즐겁다. (하지만 대체로 재컴파일된 서블릿 은 바로 로딩이 안되고 브라우져를 죽였다가 다시 시작하면 되는데 이게 왜이런지 아시는 분은 메일이나 제 홈에 글좀 남겨주세요)

기타 이 문서는 Tomcat에 대한 최소한의 문서이므로 Tomcat 에 대한 다른 문서들도 참조하기 바란다. 가장 적절한 참고 사이트는 Jakarta 의 홈페이지이며 기타 http://kldp.org 에서 "Tomcat" 으로 검색을 하여 김상수님의 Tip문서를 찾거나 http://webdox.co.kr 에서 김민식님과 김세곤님이 함께 쓴 문서를 찾아 참조하기 바란다.

(필자의 홈페이지는 http://user.chollian.net/~nogadax 이고 메일을 통한 질문은 될수 있으면 삼가해주세요. 제 홈의 질문 게시판을 이용해주시기 바랍니다.)


다음 이전 차례