74.8 [Cloud]운영전략 Jetty

2022. 8. 10. 09:38카테고리 없음

Jetty

 

Spring Boot에는 Tomcat이 내장 되어있어 별다른 설치 과정 없이 Tomcat을 통해 실행됨을 확인했습니다. 그렇다면 Tomcat이 아닌 다른 서버를 통해 프로젝트를 실행할 수 있을까요? 가능합니다. 지금부터 Jetty를 학습하고, 이 Repository의 프로젝트를 Jetty를 통해 실행시켜봅시다.

Jetty?

Jetty는 이클립스 재단HTTP 서버이자 자바 서블릿 컨테이너 입니다. Jetty도 Tomcat과 같이 자바 서블릿 컨테이너이자 서버로 사용할 수 있기 때문에 개발자는 원하는 서버를 선택하여 프로젝트를 구성할 수 있습니다. Jetty의 특징은 다음과 같습니다.

  • 2009년 이클립스 재단으로 이전하며 오픈소스 프로젝트로 개발되었습니다.
  • Jetty는 타 웹 애플리케이션 대비 적은 메모리를 사용하여 가볍고 빠릅니다.
  • 애플리케이션에 내장 가능합니다.
  • 경량 웹 애플리케이션으로 소형 장비, 소규모 프로그램에 더 적합합니다.

Spring Boot 서버 Jetty로 변경하기

아무런 설정을 해주지 않는다면 Spring Boot의 기본 내장 서버인 Tomcat으로 실행됩니다.

build.gradle 파일에서 spring-boot-starter-web 의존성이 추가되어있는 부분을 확인합니다. 이 의존성 모듈 내에 포함되어있는 Tomcat을 제외시킵니다. 제외 시킨 후 프로젝트를 재 빌드하면 의존성이 제거 되었음을 확인할 수 있습니다.

1
2
3
implementation ('org.springframework.boot:spring-boot-starter-web') {
		exclude module: 'spring-boot-starter-tomcat'
	}

Tomcat을 제외했다면 대체할 서버로 Jetty 의존성을 추가합니다. 추가한 후 프로젝트를 재 빌드하면 Jetty에 대한 의존성이 추가되었음을 확인할 수 있습니다.

1
implementation ('org.springframework.boot:spring-boot-starter-jetty')

연결이 잘 되었는지 확인하기 위해 Spring Boot를 실행합니다. Tomcat으로 실행되었던 Spring Boot가 Jetty를 통해 실행되었음을 확인할 수 있습니다.

Spring Boot의 내장 서버인 Tomcat에서 Jetty로 변경하여 실행했습니다. 서버의 종류는 Tomcat, Jetty를 제외하고도 Netty, Undertow등 다양합니다. 다른 서버 역시 변경하고 싶다면 Tomcat 의존성을 제외하고, 원하는 서버의 의존성을 추가하여 연결할 수 있습니다.