Apache Tomcat 9.0을 설치하면 여러 디렉터리와 파일들이 함께 제공된다.
각 폴더와 파일은 서버 실행, 설정, 로그 관리, 웹 애플리케이션 배포 등 다양한 역할을 담당한다.
이번 글에서는 Tomcat 9.0 기준으로, 실제 운영에서 많이 쓰이는 폴더/파일을 중심으로 전체 구조를 살펴보고자 한다.
Tomcat 9.0 기본 디렉터리 구조

1. bin/ - 실행 관련 스크립트

- 역할: 톰캣 서버 시작/종료 및 실행 환경 제어
- 주요 파일
- startup.sh / startup.bat → 서버 실행
- shutdown.sh / shutdown.bat → 서버 종료
- catalina.sh / catalina.bat → 실행 옵션 제어(톰캣의 핵심 런처)
- setenv.sh / setenv.bat → JVM 옵션, 환경 변수 설정 (사용자가 직접 생성)
- 예: JAVA_OPTS=-Xms512m -Xmx2048m
- 자주 쓰는 이유: 서버 기동/종료, 메모리 옵션 조정, 시스템 프로퍼티 설정 시 필수

2. conf/ — 설정 폴더

- 역할: 톰캣의 동작을 제어하는 주요 설정 저장소
- 주요 파일
- server.xml → 포트, 커넥터, 스레드풀 등 핵심 설정
- web.xml → 전역 설정 (모든 앱에 공통 적용)
- context.xml → 애플리케이션 컨텍스트 설정 (DB 연결 풀, JNDI 등)
- tomcat-users.xml → 관리자 계정/역할 정의 (Manager, Host Manager 로그인 계정)
- logging.properties → 기본 로깅 설정
- 자주 쓰는 이유: 포트 변경, DB 연결 풀 등록, 관리 계정 추가 등 운영에 직결되는 설정
3. lib/ — 공통 라이브러리

- 역할: 톰캣 서버 전체에서 공용으로 사용하는 라이브러리
- 내용
- servlet-api.jar, jsp-api.jar, EL, WebSocket API 등 톰캣 필수 JAR
- JDBC 드라이버를 넣어두면 모든 웹 애플리케이션에서 공유 가능
- 주의:
- 개별 앱에 필요한 라이브러리는 WEB-INF/lib/에 넣는 것이 원칙
- lib/에 넣으면 모든 앱에서 공유되므로 버전 충돌 가능
4. logs/ — 로그 폴더

- 역할: 서버 동작 상태와 에러, 액세스 기록 저장
- 주요 로그
- catalina.out (Linux) / catalina.YYYY-MM-DD.log (Windows)
→ 서버 실행 및 표준 출력 로그 - localhost_access_log.YYYY-MM-DD.txt
→ 클라이언트 접속 로그(Access log) - localhost.log, manager.log, host-manager.log
→ 각 애플리케이션별 로그
- catalina.out (Linux) / catalina.YYYY-MM-DD.log (Windows)
- 자주 쓰는 이유: 에러 트래킹, 성능 분석, 보안 로그 확인
5. temp/ — 임시 파일

- 역할: 실행 중 생성되는 임시 데이터 저장
- 특징
- 서버 재시작 시 초기화됨
- 캐시, 세션 임시 파일 등이 저장됨
6. webapps/ — 웹 애플리케이션 배포 폴더

- 역할: 기본 배포 경로
- 내용
- ROOT/ → 기본 애플리케이션 (http://localhost:8080/)
- 다른 디렉터리 → /myapp 경로로 배포됨
- *.war 파일 배포 시 자동으로 압축 풀림
- 자주 쓰는 이유: 개발자가 직접 만든 war 파일을 올려 서비스 배포
7. work/ — JSP/서블릿 컴파일 결과

- 역할: JSP가 실행될 때 변환된 서블릿 소스/클래스 저장소
- 예시 경로: work/Catalina/localhost/myapp/org/apache/jsp/
- 특징
- JSP를 최초 실행 시 .java → .class 변환 후 여기 저장
- 서버 재시작 시 초기화 가능 (JSP 캐시 삭제 효과)
요약
| 폴더 | 역할 | 자주 쓰는 경우 |
| bin/ | 실행 스크립트 | 서버 기동/종료, JVM 옵션 조정 |
| conf/ | 서버 설정 | 포트 변경, DB 연결 풀 등록, 관리자 계정 설정 |
| lib/ | 공통 라이브러리 | JDBC 드라이버, API JAR 공유 |
| logs/ | 서버 로그 | 에러/접속 로그 확인 |
| temp/ | 임시 파일 | 세션/캐시 저장 |
| webapps/ | 배포 폴더 | war 파일 배포, 애플리케이션 실행 |
| work/ | JSP 컴파일 결과 | JSP 캐시 확인/초기화 |
실무엥서는 bin/, conf/ logs/, webapps/ 네 가지 폴더만 잘 이해해도 운영에 큰 문제 없음.
나머지는 톰캣이 내부적으로 쓰는 폴더라 관리 포인트는 적은 편이다.
728x90
반응형
'Server > Tomcat' 카테고리의 다른 글
| 아파치(Apache)와 톰캣(Tomcat) - 왜 "아파치 톰캣"이라고 부를까? (0) | 2025.10.02 |
|---|