Spring Boot
AppPaaS가 지원하는 프레임워크 Spring에 대해 설명합니다.
1. 개요
Spring Boot는 새로운 Spring 애플리케이션의 부트스트랩과 개발을 간소화하도록 설계된 Spring 에코시스템의 강력한 프레임워크입니다. Spring Boot 프레임워크는 웹 애플리케이션 개발에 필요한 즉시 사용 가능한 기능을 다양하게 제공하여 코딩 시간을 최소화하고 생산성을 높이는 것을 목표로 합니다.
Spring Boot의 경우 현재 Spring Boot 2와 Spring Boot 3을 지원합니다. Spring Boot 2는 JDK 11과 JDK17 버전을 선택하여 빌드 및 배포가 가능하며 Spring Boot 3은 JDK 17 버전만 가능합니다.
AppPaaS에서는 Gradle Wrapper와 Maven Wrapper를 기반으로 빌드를 하고 있습니다. 즉, 소스 내에 Gradle Wrapper 또는 Maven Wrapper가 없는 경우 빌드가 되지 않고 실패합니다.
Spring Initializr 또는 IDE를 사용하여 소스를 생성하는 경우 대부분 Wrapper가 포함되어 있는 형태로 생성되지만 별도로 추가가 필요한 경우에는 아래 문서를 확인하여 작업합니다.
Gradle Wrapper Doc : https://docs.gradle.org/current/userguide/gradle_wrapper.html Maven Wrapper Doc : https://maven.apache.org/wrapper/
빌드 시 jar 파일은 server.jar로 이름이 변경되며 해당 이름으로 배포되어 실행됩니다.
Spring Boot 사용 시 빌드 및 배포 관련 설정은 각각 다음과 같습니다.
2. 서비스 환경설정
내부 포트 서비스가 배포된 후 리슨(listen)되는 포트를 의미합니다. 일반적으로 Spring 웹 애플리케이션 생성 시 8080 포트가 사용되며 소스 내에서 해당 포트를 변경했을 경우 변경한 값을 입력해 주어야 합니다. AppPaaS 베타에서는 해당 포트를 기반으로 TCP 헬스 체크를 합니다.
외부 포트, 외부 포트 공개 여부 서비스를 퍼블릭으로 오픈할지 여부를 결정하는 설정입니다. 기본으로 443, 오픈으로 설정되어 있으며 오픈 설정 시 외부 도메인이 할당되어 https://{할당된 주소}를 통해 외부에서 접근할 수 있습니다. 비공개로 설정할 경우 외부에서 접근이 불가능하며 내부 도메인 주소로 서비스 간 통신만 지원됩니다.
자동 배포 설정 자동 배포를 설정하면 리포지터리의 선택한 브랜치에 변경이 생길 경우 변경에 대한 훅(hook)을 받아 자동으로 빌드 및 배포가 진행됩니다.
3. 고급 환경 설정
빌드 명령어 리포지터리를 선택하고 빌드 명령어를 오버라이드(override) 하지 않으면 gradlew로 실행됩니다. 이 경우
gradlew clean build
명령이 수행되며 maven 실행을 원하실 경우 빌드 명령어를 오버라이드해서mvnw clean install
를 기재해주세요. 둘 이외의 다른 명령어가 수행되길 원할 경우 해당 값을 직접 기재해서 오버라이드할 수 있습니다.
war 빌드는 지원하지 않습니다.
또한 고급 설정을 활용하여 동일 언어의 다른 프레임워크를 배포하는 것은 권장하지 않습니다.
시작 명령어 앞서 설명한 것처럼 모든 jar 파일은 server.jar로 이름이 변경되기에
java -jar server.jar
명령어를 통해 실행됩니다. 해당 값 역시 오버라이드할 수 있습니다.환경 변수 Key/Value 형태로 입력되며 입력된 값은 컨테이너 OS의 환경 변수로 주입됩니다. 주입된 환경 변수는 코드 내에서 System.getenv() 또는 System.getProperty()를 통해 가져올 수 있습니다. 또한, 시작 명령어에서도 사용할 수 있습니다. 예를 들어 플레인 환경 변수를 KEY : ENV, value : dev라고 정의했다면 아래와 같이 시작 명령어로 사용할 수 있습니다.
java -jar server.jar -Dspring.profiles.active=
$ENV
Last updated