서블릿 프로그래밍
*CGI(Common Gateway Interface)
웹서버와 프로그램사이에서 주고 받는 규칙
*CGI 프로그램
웹서버에 의해 실행되며 CGI규칙에 따라 웹서버와 데이터를 주고 받도록 작성된 프로그램. 보통 웹 애플리케이션을 의미하는데 컴파일 언어(C, C++, java)또는 스크립트 언어(Perl, PHP, Python)으로 작성이 가능하다.
컴파일 방식은 기계어로 번역된 코드를 바로 실행하기 때문에 실행 속도가 매우 빠르지만, 변경사항이 발생할 때마다 다시 컴파일하고 재배포해야 하는 문제가 있다. 반면 스크립트 방식은 실행할 때마다 소스코드의 문법을 검증하고 해석해야하기때문에 실행속도가 느리다. 변경사항이 발생하면 단지 소스코드를 수정하고 저장만 하면 되기 때문에 비교적 편리하다.
서블릿(Servlet)
자바로 만든 CGI프로그램을 서블릿이라고 한다. 서블릿이 다른 CGI프로그램과 다른 점은 웹 서버와 직접 데이터를 주고 받지 않고, 전문 프로그램에 의해 관리된다는 점이다.
서블릿 컨테이너(Servlet Container)
서블릿의 생성, 실행, 소멸 등 생명주기를 관리하는 프로그램
클라이언트로부터 요청이 들어오면, 서블릿 컨테이너는 호출 규칙에 따라 서블릿의 메서드를 호출한다. 서블릿 호출 규칙은 javax.servlet.Servlet 인터페이스에 정의되어 있는데 서블릿을 만들 때는 반드시 Servlet 인터페이스를 구현해야한다. Java EE 기술 중에서 서블릿, JSP 등 웹 관련 부분만 구현한 서버도 있는데 이런 서버를 '서블릿 컨테이너', '웹 컨테이너'라고 부른다.
WAS(Web Application Server)
애플리케이션 서버(Application Server)는 클라이언트 서버 시스템 구조에서 서버 쪽 애플리케이션 생성과 실행, 소멸을 관리하는 프로그램이라 하는데 서블릿과 서블릿 컨테이너와 같이 웹 기술을 기반으로 동작되는 애플리케이션 서버를 WAS라고 부른다.
상용 제품으로는 티맥스의 제우스(JEUS), 오라클의 웹로직(WebLogic), IBM의 웹스피어(WebSphere), 레드햇의 제이보스 엔터프라이즈(JBoss Enterprise) 등이 있다. 무료 제품으로는 레드햇의 제이보스 AS, 오라클의 GlassFish, 아파치 재단의 Geronimo 등이 있다.
출처: 자바 웹개발 워크북 103p~110p