본 설명에 앞서 서버에 대해 먼저 말해야 할 것 같다.
Q1. 서버란
클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 프로그램 혹은 장치를 의미한다.
우리가 접하는 모든 웹 페이지들은 각자의 서버에서 관리되고 있다.
웹을 실행시키기 위해 사용되는 서버에는 또한 두 가지로 나뉘어 존재한다.
웹 서버 WEB Server :
HTML, CSS, JS, 단순이미지와 같은 리소스 파일 (:=정적) 데이터만을 처리하는 서버.
(ex. NIGNX, Apache, LiteSpeed, IIS 등)
웹 서버 WEB Application Server (WAS) :
JAVA, Servlet, JDBC를 통한 데이터 통신, 구동 환경 관리 등 (:=동적) 데이터도 같이 처리하는 서버.
(ex. Tomcat, Jeus, WebLogic, jBoss 등)
(참고로, WAS Server는 WEB Server와 같은 데이터도 처리할 수 있다)
상활에 따라 사용 용도가 다를 수 있는데, 편리성을 목적으로 WAS Server만 사용할 수도 있고
각자의 역할 분담으로 최적화하여 사용하려면 WEB Server와 WAS Server를 같이 사용할 수도 있다고 알고 있다.
정리하자면 여기서 Tomcat은 WAS Server라는 웹 컨테이너라고 보면 된다.
Apache는 이 컨테이너 기능(웹서버에 Servlet까지 가능)이 없다는 점이 큰 차이점이라고 보면 된다.
Q2. Tomcat이란
아파치 소프트웨어 재단 (ASF)에서 만든 오픈 소스 자바 서블릿 컨테이너 (WAS) 라고 한다.
와스 (WAS)는 서버가 실행될 때, 서버 구동에 필요한 내용을 위해 web.xml를 가장 먼저 읽는다고 한다.
본격적으로 Tomcat의 주요 2가지를 알아보자.
- 톰캣 카탈리나 Tomcat Catalina
톰캣을 구성하는 여러 개의 항목 중에 가장 큰 비중을 차지하는 Catalina는 톰캣의 핵심이다.
톰캣의 서블릿 스펙의 실질적인 구동을 제어하며, 톰캣 서버를 구동시킨다면 Catalina를 구동시킨다 보면 된다.
이러한 Catalina의 동작을 제어하는 톰캣의 7가지 Config파일은 아래와 같다.
참고로 위 파일들은 이클립스 > Project Explorer > Server에서 web.xml을 제외하고는 위 나머지 파일들이 동일하게 존재.
서버가 실행되는 시점에 읽어 들여서 동작을 준비하는 xml 그리고 properties이다.
- 톰캣 기본 폴더 구조 Tomcat Directory
아래와 같이 Tomcat을 설치할 때, 기본적으로 제공되는 폴더 구조에 대해 아래와 같이 레벨 별로 정리를 하였다.
참고로, Tomcat의 work 폴더는 maven의 target 폴더와 동일하다고 한다.
때문에, webapps는 웹 어플리케이션에 접근할 때 컴파일한 결과물이 모두 work에 생성된다고 한다.
Q3. 잠깐? maven/target 폴더란
maven으로 빌드시 생기는 jar를 저장하는 용도인데, 실배포시 해당 폴더의 jar 혹은 war를 배포할 때 사용할 뿐, 개발중에는 해당 폴더의 파일들을 배포할 필요도 없고, 삭제해도 재빌드시 생성되는 점도 알아두자.
Q4. 결론적으로
톰캣의 폴더 구조는 정해져 있으며, 자주 사용되는 파일들이 존재하기 때문에 기본적인 구조와 역할에 대해서 알고 있으면 된다.
'WEB 심화 > Server' 카테고리의 다른 글
[Tomcat] 주요 xml 정리 (Server, Context, Web) (0) | 2023.11.24 |
---|