[Section 3] 애플리케이션 빌드, 실행, 배포

Kim·2022년 11월 15일
0

Boot Camp

목록 보기
49/64
post-thumbnail

애플리케이션 빌드

IntelliJ IDE를 이용한 빌드

Spring Boot은 Gradle 빌드 툴을 이용해 애플리케이션을 빌드할 수 있는 플러그인을 지원하기 때문에 Gradle task 명령을 통해 애플리케이션을 손쉽게 빌드 할 수 있다.

  1. 우측 상단의 [Gradle] 윈도우 탭을 클릭한다.
  2. 프로젝트 이름 > Tasks > build에서 :bootJar 또는 :build task를 더블 클릭한다.

빌드가 정상적으로 종료되면 build.libs 디렉토리에 Jar 파일이 생성된다.

:build vs :bootJar
:build 태스크를 실행하면 :assemble, :check 같이 Gradle에서 빌드와 관련된 모든 task들을 실행시킨다. 그리고 실행 가능한 Jar 파일 이외에 plain Jar 파일 하나를 더 생성한다.

:bootJar은 애플리케이션의 실행 가능한 Jar(Executable Jar)파일을 생성하기 위한 task만 실행한다.
단순히 Executable Jar 파일만 필요하다면 :bootJar task를 실행하면 된다.

Gradle Task를 이용한 빌드

IDE가 설치되어 있지 않은 상황에서 빌드를 해야될 경우도 생길 수 있다. 이럴땐 Gardle task 명령어를 콘솔에서 바로 입력해서 빌드를 진행할 수 있다.

💡 Windows 기준

  1. 프로젝트가 위치해있는 디렉토리 경로로 이동한다.
  2. Gradle task를 CLI 명령으로 입력할 수 있는 콘솔창을 템플릿 프로젝트 root 경로에서 오픈한다.
    Windows의 cmd나 Windows Power Shell, Git Bash 등 모두 가능하다.
  3. 아래 명령어를 입력해 애플리케이션 빌드를 진행한다. (프로젝트가 위치한 경로를 입력해야 한다.)
    Windows 터미널 : PS D:\sample\project\application-build> .\gradlew bootJar
    Git Bash :
MINGW64 /d/sample\project\application-build (main)
$ ./gradlew build

빌드가 정상적으로 종료되면 IDE에서 빌드를 진행 할 때와 마찬가지로 build.libs 디렉토리에 Jar 파일 하나가 생성된다.


애플리케이션 실행

빌드가 완료되었다면 생성된 Jar(Executable Jar) 파일을 이용해서 애플리케이션을 실행할 수 있다.

  1. 빌드를 통해 생성된 Jar 파일이 있는 디렉토리 경로로 이동한다.
  2. 터미널 창을 열어서 아래 명령어를 입력한다.
java -jar Jar 파일명.jar

애플리케이션 배포

전통적인 배포 방식

Spring Boot 기반의 Executable Jar 파일을 서버에 배포하는 가장 일반적인 방법은 scp나 sftp 같은 표준 유닉스 툴을 이용하여 서버로 간단히 전송하는 것이다.
서버로 전송된 Jar 파일은 JVM이 설치된 환경이라면 손쉽게 실행할 수 있다.

클라우드 서비스를 위한 배포 방식

Executable Jar 파일은 특히 클라우드 환경에 손쉽게 배포할 수 있다.

  • PaaS(Platform as a Service)
    Cloud Foundry, Heroku
    대표적인 PaaS 제공 기업인 Cloud Foundry에서 제공하는 cf command line 툴을 사용하면 Executable Jar 파일을 손쉽게 배포할 수 있다.
    cf push acloudyspringtime -p target/app-0.0.1-SNAPSHOT.jar

  • IaaS(Infrastructure as a Service)
    Executable Jar는 AWS Elastic Beanstalk, AWS Container Registry, AWS Code Deploy 같은 서비스를 이용하면 손쉽게 배포가 가능하다.
    Microsoft의 클라우드 서비스인 Azure도 Azure Spring Cloud, Azure App Service 에서 Spring Boot 기반의 Executable Jar 파일 배포 기능을 제공한다.
    Google Cloud 또한 Executable Jar 파일 배포를 위한 여러가지 옵션을 제공하고 있다.


🔑Key Summary

  • Spring Boot 기반 애플리케이션을 가장 손쉽게 빌드할 수 있는 방법은 IntelliJ 같은 IDE의 기능을 활용하는 것이다.

  • IDE 등의 기능을 활용하기 어려운 상황에서는 Gradle 명령어를 사용해 손쉽게 빌드할 수 있다.

  • Spring에서는 프로파일 기능을 이용해서 빌드 후 생성되는 애플리케이션 실행 파일에 대한 실행 환경을 손쉽게 지정할 수 있다.

  • Spring Boot 기반의 Executable Jar 파일은 전통적인 서버, 클라우드 환경, 가상화 환경에 손쉽게 배포할 수 있다.

0개의 댓글