WebApplication
‘하위에 WEB-INF 디렉토리를 갖고 최상위 디렉토리는 해당 웹 컨텍스트의 최상위 문서 루트가 된다.’ 와 ‘WEB-INF 디렉토리 밑에 web.xml에 서블릿 설정이 포함된다’가 일반적인 답변이라고 한다.
서블릿 명세에서 웹 어플리케이션을 정의할 때 디렉토리 구조를 위와 같은 내용으로 결정하고 WAR포맷로 정의한 것은 하나의 독립적인 어플리케이션으로 취급하려는 의도입니다.
서블릿명세는 서블릿컨테이너와 서블릿의 기능이 모두 정의되어 있고 각 각의 서블릿컨테이너(예를들면 톰캣과 같은…또한 여러종류의 톰캣과 같은 서블릿컨테이너가 존재합니다.)의 성능 차이가 있을 뿐 기능적인것은 모두 동일하게 동작하게 된다.
서블릿컨테이너가 웹 어플리케이션을 내부로 끌어들이는 과정을 배치라고 하고 서블릿 컨테이너는 웹 어플리케이션마다 독자적인 클래스로더를 유지해서 우연히도 같은 클래스를 사용하는 서로다른 웹 어플리케이션이 있는 경우에도 간섭이 발생하지 않게 유지합니다.
조금 부족한것 같지만.. 일반적인 답변과 웹어플리케이션과 서블릿컨테이너와의 서블릿명세에 의한 관계를 정리해보았습니다. 제 생각이지만 서블릿컨테이너는 우리가 흔히 아는 운영체제(OS)라고 생각하면 될 것이고 웹 어플리케이션은 운영체제에서 동작하는 일반적인 어플리케이션같이 생각하면 편할 것 같습니다. 이 글은 서블릿 컨테이너의 이해라는 책을 공부하며 정리해 보았습니다. 부족한것은 피드백 주시면 감사하겠습니다.