[Tomcat] 구조 및 파일 역할 정리
Apache Tomcat의 디렉토리 구조와 각 디렉토리 안의 파일들이 어떤 기능을 수행하는지 정리한 자료
1. Tomcat 디렉토리 구조

| /bin | startup, shutdown, 기타 스크립트가 존재한다. sh 파일(유닉스 시스템)과 bat 파일(윈도우 시스템)은 기능적으로 동일하다. |
|---|---|
| /conf | 설정 파일과 DTD와 연관된 파일이 존재한다. 가장 중요한 파일인 server.xml이 있으며 이 파일은 컨테이너의 주요 설정 파일이다. |
| /logs | 기본적으로 이 디렉토리에 로그 파일이 생성된다. |
| /webapps | 기본 webapps가 위치하는 디렉토리이다. |
| /lib | classpath에 추가되는 리소스가 위치한 디렉토리이다. |
| /work | Jsp 파일을 서블릿 형태로 변환한 java 파일과 class 파일이 저장되는 디렉토리이다. |
| /temp | JVM에 사용되는 임시 디렉토리이다. |
2. bin 디렉토리 파일

bat 파일은 윈도우에서 실행하는 batch 파일, sh 파일은 유닉스 계열에서 실행하는 shell script 파일이다.
| bootstrap.jar | Tomcat 서버가 구동될 때 사용되는 main() 메소드가 포함되어 있으며 클래스 로더가 클래스를 구현하는데에 필수적이다. |
|---|---|
| tomcat-juil.jar | 로깅을 구현하는 java.util.logging API를 포함하고 있는 클래스이다. |
| common-daemon.jar | Apache Commons Daemon 프로젝트에 필요한 클래스이다. Catalina.sh 파일에 의해 빌드되지 않으며 bootstrap.jar 파일에 의해 참조된다. |
| catalina.sh | CATALINA 서버의 제어 스크립트이다. |
| ciphers.sh | 지정된 알고리즘을 사용하는 다이제스트 암호를 설정하는 스크립트이다. |
| configtest.sh | CATALINA 서버의 설정 스크립트이다. |
| daemon.sh | Common Daemon에 사용되는 스크립트이다. |
| digest.sh | 지정된 알고리즘을 사용하는 다이제스트 암호를 설정하는 스크립트이다. |
| makebase.sh | Tomcat 실행에 필요한 분산 디렉토리 구조를 생성하는 스크립트이다. |
| setclasspath.sh | JAVA_HOME 또는 JRE_HOME이 세팅되지 않았을 경우 세팅한다. |
| shutdown.sh | CATALINA 서버를 중지하는 스크립트이다. |
| startup.sh | CATALINA 서버를 시작하는 스크립트이다. |
| tool-wrapper.sh | 커맨드 라인 도구에서 사용되는 Wrapper 스크립트이다. |
| version.sh | Tomcat의 정보를 표시해주는 스크립트이다. |
3. conf 디렉토리 파일

| catalina.policy | Tomcat의 보안 정책을 설정하는 파일이다. Catlina가 –security 옵션으로 실행될 때 시행되는 보안 정책을 설정할 수 있다. |
|---|---|
| catalina.properties | 서버를 시작할 때 검색하는 서버, 공유 로더, JAR 등의 정보를 포함한다. |
| context.xml | 세션, 쿠키 저장 경로등을 지정하는 설정 파일이다. |
| jaspic-providers.xml | 사용자 인증 제공 방법에 대해 정의한 파일 |
| logging.properties | Tomcat 인스턴스의 로깅 설정 파일이다. tomcat-juli.jar 라이브러리를 활용하여 로깅 서비스를 제공한다. |
| server.xml | Tomcat 설정에서 가장 중요한 파일이다. Service, Connector, Host 등과 같은 주요 기능을 설정할 수 있다. |
| tomcat-users.xml | Tomcat의 manager 기능을 사용하기 위해 사용자 권한을 설청하는 파일이다. |
| web.xml | Tomcat의 환경설정 파일이며 서블릿, 필터, 인코딩 등을 설정할 수 있다. |
4. lib 디렉토리 파일

| annotations-api.jar | 자바EE 어노테이션 클래스 파일 |
|---|---|
| catalina.jar | Tomcat의 Catalina 서블릿 컨테이너를 구현하는 파일 |
| catalina-ant.jar | Tomcat Catalina Ant 작업 파일 |
| catalina-ha.jar | 고가용성 패키지 파일 |
| catalina-storeconfig.jar | 서버 상태의 흐름을 XML 설정파일로 생성한다. |
| catalina-tribes.jar | 그룹 커뮤니케이션 패키지 파일 |
| ecj-*.jar | 이클립스 JDT 자바 컴파일러 파일 |
| el-api.jar | EL 3.0 API 파일 |
| jasper.jar | Tomcat Jasper JSP 컴파일러와 런타임 파일 |
| jasper-el.jar | Tomcat Jasper EL 구현 파일 |
| jsp-api.jap | JSP 2.3 API 파일 |
| servlet-api.jar | Servlet 4.0 API 파일 |
| tomcat-api.jar | Tomcat에 의해 정의되는 몇몇 인터페이스 파일 |
| tomcat-coyote.jar | Tomcat connector와 유틸리티 클래스 파일 |
| tomcat-dpcp.jar | 데이터베이스 커넥션 풀을 구현하는 파일 |
| tomcat-i18n-**.jar | Tomcat 언어 패키지 파일 |
| tomcat-jdbc.jar | Tomcat JDBC pool로 알려진 대체 데이터베이스 커넥션 풀을 구현하는 파일 |
| tomcat-util.jar | Apache Tomcat의 다양한 컴포넌트에서 사용되는 일반 클래스 파일 |
| tomcat-websocket.jar | WebSocket 1.1 구현 파일 |
| websocket-api.jar | Websocket 1.1 API 파일 |
댓글남기기