반응형

톰캣은 웹 애플리케이션을 어떻게 관리하는가?


톰캣은 한 번에 여러 개의 웹 애플리케이션을 실행할 수 있도록 설계되어 있다.

웹 애플리케이션은 배포 명세서 web.xml을 가진 WAR 파일로 정의되어 있다. 대개 서버는 하나의 톰캣 인스턴스를 실행하며 관련된 WAR 파일이 톰캣 인스턴스의 webapps 디렉터리에 설치된다. 이는 기본 설정이며 위치를 변경할 수 있다.


톰캣의 구성 요소들

톰캣은 몇 가지 구성 요소로 이루어져 있는데, 그중 하나가 서블릿 컨테이너와 JSP를 처리하는 것이다. 서블릿 컨테이너 구성 요소는 카탈리나(Catalina)라고 하며 JSP 구성 요소는 재스퍼(Jasper)라고 한다.


톰캠 사용 문서를 읽다 보면 이 이름들에 대한 참조를 쉽게 볼 수 있다. 예를 들어 결과 로그 파일의 기본 이름은 catalina.out이고, 톰캣 홈 디렉터리의 환경 변수는 $CATALINA_HOME이다.


기본으로 실행 중인 톰캣 인스턴스는 webapps 디렉터리에서 일어난 변화를 감지한다. 새 WAR 파일이 이 디렉터리에 저장되면 톰캣은 WAR 파일 이름에 대응하는 디렉터리에 파일 내용을 풀어놓고 컨텍스트의 애플리케이션을 해당 이름에 대응시킨다.


예를 들어 BookingApplication.war라는 WAR파일을 webapps 디렉터리에 배포하면 그 파일은 BookingApplication 디렉터리에 압축을 푼다. 톰캣은 WEB-INF 하위에 있는 web.xml 파일을 읽고 정의된 대로 애플리케이션을 실행하고 /BookingApplication 경로를 통해 클라이언트에게 제공한다.


이 접근 방법은 개발 방향을 빠르게 전환하는 데 상당히 유용하다. 지속해서 배포 할 수 있는 방법을 갖게 할 뿐만 아니라 접근할 수 있는 서버에 단위 테스트를 완료해 빌드된 WAR 파일을 자동으로 배포할 수 있으며 통합 테스트를 준비할 수 있기 때문이다. 테스트 범위가 충분하고 팀의 개발 프로세스가 가능하다면 실제 환경에도 자동으로 배포되게 할 수 있다.


# Reference - 자바프로그래밍 면접 이렇게 준비한다.

반응형

+ Recent posts