애플리케이션 빌드 / 실행 / 배포

InSeok·2022년 9월 22일
0

TIL

목록 보기
38/51

배운 내용


**애플리케이션 빌드**

**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 명령어를 콘솔에서 바로 입력하여 빌드를 진행
  1. 템플릿 프로젝트가 위치해 있는 디렉토리 경로로 이동
  2. 콘솔창을 템플릿 프로젝트 root 경로에서 오픈
  3. 콘솔창에 $ ./gradlew build 입력하여 빌드 진행
  4. 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 설정을 추가해주면 된다.

**애플리케이션 배포**

전통적인 배포 방법

  • scpsftp같은 표준 유닉스 툴을 이용해서 서버로 전송하는 것

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

  • PaaS(Platform as a Service)
    • Cloud Foundry, Heroku
  • 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 파일을 자동 배포하도록 구성가능
profile
백엔드 개발자

0개의 댓글