SPRING/Spring Boot

[SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전)

IT록흐 2023. 4. 2. 09:45
반응형

 

 

SpringBoot는 내장톰캣을 사용한다. 

 

SpringBoot가 내장톰캣을 사용하면서

간편해진 점을 알아보기 위해

 

우선,

SpringBoot 이전에 사용했던

외장톰캣 방식에 대해서 알아보겠다.

 

외장톰캣 방식이란?

 

 

개발자가 작성한 코드는 war파일로 WAS의 webapps 영역에 배포되어 풀린다. WAS가 외부에 있어 war파일로 압축한 뒤, 배포를 하는 방식이 외장톰캣 방식이다. 

 

외장톰캣으로 WAS 띄우기(IntelliJ 무료버전)

 

- explodedWar

 

War파일은 explodedWar 방식을 사용한다. explodedWar는 압축된 War가 아닌 압축이 풀린 디렉토리 형태이다. 압축이 아니므로 변화에 대응한 성능이 좋지만 용량 문제가 있을 수 있다.

 

build.gradle을 살펴보자. 

//war 풀기, 인텔리J 무료버전 필요
task explodedWar(type: Copy) {
into "$buildDir/exploded"
with war
}

 

위 groovy 소스는 war파일을  "$buildDir/exploded"에 Copy 한다는 의미다. 전체 build.gradle 소스는 아래와 같다.  

 

plugins {
    id 'java'
    id 'war'
}

group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

repositories {
    mavenCentral()
}

dependencies {
    //서블릿
    implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0'
    //스프링 MVC 추가
    implementation 'org.springframework:spring-webmvc:6.0.4'
}

//war 풀기, 인텔리J 무료버전 필요
task explodedWar(type: Copy) {
into "$buildDir/exploded"
with war
}

tasks.named('test') {
                  useJUnitPlatform()
}

 

 

- 톰캣 설치하기

 

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the

tomcat.apache.org

 

위 링크에서 아파치 톰캣을 설치한다. 

 

 

 

 

Core 목록에 zip파일로 설치한다. 

 

 

- Smart Tomcat 

( Settings > Plugins > 'Smart Tomcat' 검색 )

 

 

IntelliJ에서 톰캣을 띄우기 위해 플러그인 하나를 설치한다. 

 

 

 

Run > Run > Edit Configuration > + 클릭

 

 

 

이제 Smart Tomcat을 활용하여, IntelliJ에서 톰캣WAS를 띄어보자. 

 

사진과 같이 설정한다.

 

Smart Tomcat은 배포되는 디렉토리를 설정할 수 있다.( webapps 영역 ) Deployment directory에 explodedWar가 Copy된 경로를 등록한다. 톰캣은 해당경로를 webapps 영역으로 인식한다.

 

그러므로 톰캣이 실행되기 전에, exploded 폴더에 war 파일 압축을 풀어 디렉토리 형태로 Copy 해놓아야 한다. Before Launch 영역에서 아래 Groovy 소스의 task가 실행되도록 설정해놓아야 한다. 

//war 풀기, 인텔리J 무료버전 필요
task explodedWar(type: Copy) {
    into "$buildDir/exploded"
    with war
}

 

 

+ 클릭

 

Run Gradle task를 설정해보자.

 

 

 

 

현재 프로젝트 이름과 Task 이름을 넣어주고 OK 해준다.

 

설정이 완료되면 Apply를 누르고 Run 한다. 웹브라우저에 localhost:8080을 조회한다. 

 

 

 

 

참고로 webapp 아래에 index.html을 수정하면 루트경로 화면을 변경할 수 있다. 

 

이와같이,

개발된 소스를 WAS서버에 배포 및 실행 해보았다.

 

다음 포스팅에서는 외장톰캣 환경에서 SpringMVC 개발을 진행해보겠다. 

 

 

 


 

 

참고자료

 

스프링 부트 - 핵심 원리와 활용 - 인프런 | 강의

실무에 필요한 스프링 부트는 이 강의 하나로 모두 정리해드립니다., - 강의 소개 | 인프런

www.inflearn.com

 

반응형