배운 내용
**애플리케이션 빌드**
**IntelliJ IDE를 이용한 빌드**
- Gradle task 명령을 통해 애플리케이션을 손쉽게 빌드가능
- [Gradle] 윈도우 탭을 클릭
- 프로젝트 이름 > Tasks > build에서
:bootJar
또는 :build
task를 더블 클릭
- 빌드가 정상적으로 종료되면
build/libs
디렉토리에 Jar 파일 하나가 생성된다.
:build
태스크를 실행하면 Gradle에서 빌드와 관련된 모든 task들을 실행킨다. 그리고 실행 가능한 Jar 파일 이외에 plain Jar 파일 하나를 더 생성
:bootJar
는 애플리케이션의 실행 가능한 Jar(Executable Jar)파일을 생성하기 위한 task만 실행
**Gradle Task를 이용한 빌드**
- Gradle task 명령어를 콘솔에서 바로 입력하여 빌드를 진행
- 템플릿 프로젝트가 위치해 있는 디렉토리 경로로 이동
- 콘솔창을 템플릿 프로젝트 root 경로에서 오픈
- 콘솔창에
$ ./gradlew build
입력하여 빌드 진행
build/libs
디렉토리에 Jar 파일 하나가 생성됨
**애플리케이션 실행**
- 빌드를 통해 생성된 Jar 파일이 있는 디렉토리 경로로 이동
- 터미널 창을 오픈 한 후
java -jar Jar 파일명.jar
입력
프로파일(Profile) 적용
- Spring에서 제공 하는 프로파일(Profile) 기능을 통해,
애플리케이션이 빌드 될 때, 로컬 환경에서는 로컬 환경의 DB 설정 정보를 실행 파일에 포함하고, 서버 환경일 경우에는 서버 환경의 DB 설정 정보를 실행 파일에 포함시킬 수 있다.
application.yml
파일 외에 application-local.yml
파일과 application-server.yml
파일을 추가
IntelliJ IDE에서 프로파일 적용
- [Edit Run/Debug Configuration] : [Program arguments] 필드에
-spring.profiles.active=local
을 입력해서 활성화 할 프로파일을 ‘local
’로 지정 ‘local
’은 application-local
.yml 파일명에서의 ‘local
을 가리킨다.
빌드된 실행 파일에 프로파일 적용
java -jar Jar 파일명.jar
에 --spring.profiles.active=local
설정을 추가해주면 된다.
**애플리케이션 배포**
전통적인 배포 방법
- scp나 sftp같은 표준 유닉스 툴을 이용해서 서버로 전송하는 것
클라우드 서비스를 위한 배포
- PaaS(Platform as a Service)
- IaaS(Infrastructure as a Service)
- AWS Elastic Beanstalk, AWS Container Registry, AWS Code Deploy같은 서비스를 이용
- Azure Spring Cloud, Azure App Service
- Google Cloud
- CI / CD 플랫폼을 사용한 배포
- Github Actions나 Circle CI 같은 CI / CD 플랫폼을 이용해 AWS나 Azure 같은 클라우드 서비스에 Executable Jar 파일을 자동 배포하도록 구성가능