Embeded Tomcat과 Tomcat

과녁스·2022년 3월 10일
0

Java

목록 보기
7/11

개요


내장 톰캣과 일반 톰캣에 대한 내용을 학습하고 정리해보았습니다.

톰캣

톰캣이란?

톰캣(아파치 톰캣)은 서블릿 컨테이나만 있는 웹 애플리케이션 서버이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하며 JSP와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. 톰캣은 관리 툴을 이용하여 설정할 수도 있지만, XML파일을 편집하여 설정할 수도 있다. 또한 톰캣은 HTTP 서버도 자체 내장하기도 한다.

웹 서버 연동

아파치는 톰캣에 내장된 웹 서버로만 웹 시스템을 구성할 수 있지만, 대규모의 사용자가 사용하는 시스템을 구축하려면 웹 서버와 연동하는 시스템을 구축하는 것이 좋다. 이때 웹 서버인 아파치 서버와는 연동모듈을 사용하여 연동하고, 연동모듈로는 mod_jk를 이용하고, 2.2버전 이후에는 mod_proxy_ajp 모듈을 사용한다.

작동 방식

자바 서블릿을 이용하여 데이터 요청에 대한 응답을 자바 코드로 처리하고, 해당 내용을 클라이언트에 리턴해주는 구조입니다. 이때 서블릿을 사용하는데 자바 웹 어플리케이션의 구성 요소 중 JAVA 언어를 사용하여 동적인 처리를 하는 역할을 담당합니다. 서블릿은 WAS에 동작하는 JAVA 클래스이며, HttpServlet을 상속받아야 합니다.

내장 톰캣

임베디드 톰캣(Embedded Tomcat)은 다음과 같은 특징을 가지고 있습니다

  1. 독립 실행형 애플리케이션:
    임베디드 톰캣을 사용하면 별도의 웹 서버 설치 없이 자바 애플리케이션에 내장된 형태로 톰캣을 실행할 수 있습니다 이는 애플리케이션 배포와 관리를 단순화합니다.
  2. 스프링 부트와의 통합:
    스프링 부트는 기본적으로 임베디드 톰캣을 사용합니다. 이를 통해 개발자는 복잡한 설정 없이도 웹 애플리케이션을 쉽게 개발하고 실행할 수 있습니다15.
  3. 간편한 설정:
    임베디드 톰캣은 설정이 간소화되어 있어 개발자가 애플리케이션 로직에 더 집중할 수 있습니다.
  4. 빠른 시작 및 개발:
    애플리케이션과 서버가 하나의 프로세스로 실행되어 시작 시간이 빠르고, 개발 및 테스트 과정이 간편해집니다
  5. 자원 효율성:
    단일 JVM 내에서 애플리케이션과 서버가 함께 실행되므로 자원 사용이 효율적입니다.
  6. 마이크로서비스 아키텍처 지원:
    각 서비스가 자체 서버를 포함하고 있어 마이크로서비스 아키텍처에 적합합니다.
  7. 제한사항:
    일부 고급 기능(예: 가상 호스트)을 사용하기 어려울 수 있으며, 여러 애플리케이션을 하나의 서버에서 실행하기 어렵다는 제한이 있습니다.

어플리케이선 실행 방법


내장 톰캣에서 어플리케이션 실행

  • build 된 어플리케이션 jar 또는 war를 java 명령어로 실행합니다.

외장 톰캣에서 어플리케이션 실행

  • tomcat을 설치합니다.
  • tomcat 설정 파일을 구성하고 webapp 디렉토리에 build된 어플리케이션 파일을 포함합니다.
  • tomcat을 실행합니다.

내장톰캣과 톰캣의 다른점


두 톰캣의 가장 다른 부분으로는 외장 톰캣에는 Virtual Host 기능이 있습니다.

Virtual Host

host에 따라 각각 다른 루트 컨텍스트를 갖게하여 하나의 웹 어플리케이션 배포만으로 여러 어플리케이션을 운영하는 것처럼 할 수 있습니다. 위 설정을 위해서는 server.xml을 수정하면 사용할 수 있습니다.

<Host name="a.abc.com" appBase="/webapps/abc" unpackWars="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
<Host name="www.ppp.com" appBase="/webapps/ppp" unpackWars="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>

내장 톰캣도 가능은 하지만, 구성하기 매우 까다로운 것으로 확인됩니다.(조금 더 확인 후 정리 예정😅)

출처


profile
ㅎㅅㅎ

0개의 댓글