애플리케이션 빌드(Gradle 이용)
Intellij IDE(통합 개발 환경 도구)를 이용한 애플리케이션 빌드 방법은 다음과 같다.
:bootJar task 실행(더블 클릭)
애플리케이션의 실행 가능한 Jar 파일을 생성하기 위한 task만 실행
:build task 실행(더블 클릭)
Gradle에서 빌드와 관련된 모든 task들을 실행, 실행 가능한 Jar 파일 이외에 plain Jar 파일 하나를 더 생성
콘솔에서 Gradle task 명령어를 이용해 빌드
1. 프로젝트가 있는 디렉토리 경로 이동 및 확인
2. 콘솔창(cmd, Git Bash, Windows Power Shell, ...)에서 해당 디렉토리로 이동
다음 명령어를 통해, 프로젝트가 있는 폴더로 이동
cd 폴더명 // '폴더명'으로 이동
3. 다음 명령어로 애플리케이션 빌드 진행
해당 폴더로 이동한 후, 다음 명령어를 통해 애플리케이션 빌드를 진행
.\gradlew bootJar // Windows 터미널
.\gradlew build // Git Bash
빌드가 정상적으로 완료되면, 해당 프로젝트가 있는 디렉토리 안의 build → libs 폴더 안에 Jar 파일 하나가 생성됨
애플리케이션 실행
1. 콘솔창에서 Jar 파일이 있는 디렉토리로 이동
.../build/libs
2. 다음 명령어를 통해, 실행
java -jar 파일명.jar
종료하기 위해서는, 콘솔창에서 ctrl + c 를 누르면 된다.
- Intellij IDE 이외의 방법으로 Spring Boot 기반의 애플리케이션을 실행하는 방법에 대해
프로파일(Profile) 적용
개발을 진행할 때, H2 DB를 사용했고, application.yml 파일에 인메모리 DB(H2 DB)를 사용하기 위한 설정을 했었다.
서버용 Jar 파일을 빌드할 경우에는, 인메모리 DB를 사용하면 안되기 때문에, 다른 DB를 설정해주어야 한다.
1. yml 파일 추가 생성
기존 application.yml 파일 이외에 application-server.yml 파일을 하나 더 생성해주었다.
이 yml 파일은 개발 진행 상황에서가 아닌, 서버에서의 빌드를 위한 파일이다.
2. 프로파일 적용
(--spring....를 입력할 칸이 보이지 않는다면, Modify options에서 Program arguments를 체크해주자)
active=server에서 'server'는 application-server.yml 파일명에서 'server'를 가리킨다.
yml 파일명은 '- (대시)'를 기준으로 프로파일명을 포함한다.
이제 애플리케이션을 실행시키면, 프로파일이 정상적으로 적용된 것을 확인할 수 있다.
콘솔창에서 프로파일 적용하고 실행
java -jar 파일명.jar --spring.profiles.active=server
- Spring의 Profile 기능에 대해
애플리케이션 배포
전통적인 배포 방법
scp나 sftp 같은 표준 유닉스 툴을 이용해서 서버로 간단히 전송
(서버로 전송된 Jar 파일은 JVM이 설치된 환경이라면 어디서든 손쉽게 실행이 가능)
클라우드 서비스를 위한 배포 방법
- Paas(Platform as a Service)
- Cloud Foundry, Heroku
대표적인 Paas 제공 기업인 Cloud Foundry에서 제공하는 cf command line 툴을 이용해 배포
$ cf push acloudyspringtime -p target/app-0.0.1-SNAPSHOT.jar
- IaaS(Infrastructure as a Service)
- AWS Elastic Beanstalk, AWS Container Registry, AWS Code Deploy 서비스 이용해 배포
- Azure Spring Cloud, Azure App Service 기능을 이용해 배포 (Microsoft의 클라우드 서비스인 Azure)
- Google Cloud를 이용해 배포
- ***CI / CD 플랫폼을 사용한 배포***
'Develop > DevOps' 카테고리의 다른 글
Cloud 운영 전략 (0) | 2022.12.09 |
---|---|
리눅스 명령어 - 프로세스 Kill (1) | 2022.12.08 |
Cloud 개요 및 AWS 서비스 - 수동 배포 (0) | 2022.12.08 |
Cloud 배포 자동화 (0) | 2022.12.08 |
Docker (0) | 2022.12.06 |