Server/Tomcat

Tomcat 9.0 디렉터리 구조와 주요 구성요소

범데이 2025. 10. 2. 08:31

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
      → 각 애플리케이션별 로그
  • 자주 쓰는 이유: 에러 트래킹, 성능 분석, 보안 로그 확인

 

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
반응형