> CGI를 둘러싼 문제
규모가 커지면서 펄로 개발하기 어려워졌으며 요청때마다 프로세스가 기동되어 성능이 안 좋았다.
> 자바/서블릿의 탄생
제임스 고슬링이 개발한 자바가 등장하면서 상황이 달라졌다.
자바는 객체지향을 완벽히 지원하여 대규모 시스템에 용이했다. (그밖에 보안,네트워크통신, 멀티스레드 지원도 매력적)
원래 자바는 웹 애플리케이션 개발하기 위해 나온것이 아니었다.
그러나 워낙 웹 애플리케이션이 주류였기 때문에 JavaEE의 일부로서 서블릿이라는 기능을 웹 애플리케이션 개발을 지원하기 위해 제공했다.
> 서블릿
서블릿은 자바로 만들어진 HTML등의 웹 콘텐츠를 생성하기 위한 프로그램이다.
웹서버와 프로그램이 별개의 프로세스로 도는 CGI 방식에서는 요청 받을때 마다 새로운 프로세스를 작동하지만 서블릿은 웹서버와 같은 프로세스 속에서 프로그램이 작동하기 때문에 매번 기동할 필요가 없어 속도가 빠르다.
다만, 웹컨테이너를 설치하기가 웹서버만 설치 했을때 보다 어려웠고 객체지향 지식이 필요해서 대규모 시스템에서만 이용됐다.
> 자바로 개발할 때의 이점
자바는 플랫폼에 독립적이라서 서로 다른 플랫폼에서 같은 프로그램을 실행할 수 있다.
기존에는 웹 서버의 플랫폼과 동일한 플랫폼에서 개발하는 것이 원칙이었지만 자바로 개발하면 상관이 없었다.