Spring MVC Application build/배포

이상수·2022년 7월 30일
0

TIL_Spring MVC

목록 보기
11/11
post-thumbnail
  1. 시작하게 된 계기 및 다짐 😮
  • 이번 코드스테이츠의 백엔드 엔지니어링 개발자 부트캠프에 참여하게 되면서 현직개발자 분들의 빠른 성장을 위한 조언 중 자신만의 블로그를 이용하여 배운 것 들을 정리하는게 많은 도움이 된다 하여 시작하게 되었다.

    • 그 날 배웠던 것을 길지 않아도 좋으니 정리하며 복습하는 습관 기르기
    • 주말에 다음주에 배울 내용들을 예습
    • 코딩 문제와 java코드들은 꾸준히 학습
    • 자료구조를 이용한 알고리즘 문제 해결 학습
  1. 학습 목표 😮
목표결과
Gradle 기반의 애플리케이션 실행 파일을 빌드O
빌드로 생성된 애플리케이션 실행 파일을 로컬 PC에서 실행O
애플리케이션 빌드 시, 프로파일(Profile)을 적용O
Spring Boot 기반 애플리케이션의 기본적인 배포 방법을 이해O
  1. 정리 😮

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


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

0. 용어 정리

  • :build : :assemble, :check과 같인 Gradle에서 빌드와 관련된 모든 task실행
    싱행가능한 plain Jar파일 하나를 더 생성
  • :booJar : 애플리케이션의 실행 가능한 (Jar)파일을 생성하기 위한 task만 실행


1. Gradle Task를 이용한 빌드(X IntelliJ)

1). Window : .\gradlew bootJar

2). GIt bash : ./gradlew build


2. jar파일 실행 방법

  1. Git bash : 해당 jar파일 내부에서

    • [java -jar Jar 파일명.jar]
  2. 해당 jar 파일을 언 ㅡ환경에서 실행할 지 여부를 따로 결정할 수 있음

    • [java -jar Jar 파일명.jar --spring.profiles.active=local(지정)]
  3. 프로파일(Profile) 적용

    • 애플리케이션 환경에서는 인메모리 DB 사용시 재시작시마다 데이터가 초기화되어 DB정보를 수정필요
    • 매번 수정이 힘들어, Spring에서 프로파일(Profile)을 사용

    1). application.yml

    • 애플리케이션 실행환경에 상관없이 공통적으로 적용할 수 있는 프로퍼티 설정
    • 항상 실행이 된다.

    2). application-local.yml

    3). application-server.yml

    • 서버 환경에 필요한 정보들로, 실제 서버나 AWS 같은 클라우드에서 실행시 파일 설정

    [Edit Configuration] -> --spring.profiles.active=local 적용

    • application.local.yml 에서 local과 같은 부분을 사용


4. 애플리케이션 배포

  1. 전통적인 배포 방법

    • Spring기반의 Excuatable Jar파일을 서버에 배포하는 방식은 일반적으로 scp나 stfp 같은 유닉스 툴을 이용
      하여 서버로 간단히 전송, 해당 파일은 JVM 환경이면 어디든 실행 가능
  2. 클라우드 서비스를 위한 배포 방법

    (1) PaaS(Platform as a Service)_CloudFoundry, heroku

    • Paas 기업인 Cloud Foundry에서 제공하는 cf command line 툴을 사용하여 배포
      [Ex. cf push acloudyspringtime -p target/app-0.0.1-SNAPSHOT.jar]

    (2) IaaS(Infrastructure as a Service)

    • (AWS)AWS Elastic Beanstalk, AWS Container Registry, AWS Code Deploy 같은 서비스를 이용해서 손쉽게 배포
    • (AZURE)Microsoft의 클라우드 서비스인 Azure 역시 Azure Spring Cloud, Azure App Service 에서 Spring Boot 기반의 Executable Jar 파일 배포 기능을 제공
    • (Google Cloud)Google Cloud 역시 Executable Jar 파일 배포를 위한 여러가지 옵션을 제공

    (3) CI / CD 플랫폼을 사용한 배포

    • 여러분들이 실무에서 Executable Jar 파일에 대한 배포 자동화를 이루고 싶다면 Github Actions나 Circle CI 같은 CI / CD 플랫폼을 이용해 AWS나 Azure 같은 클라우드 서비스에 Executable Jar 파일을 자동 배포하도록 구성



Extra

  1. Spring Boot 기반의 애플리케이션을 실행하는 방법
  1. Spring의 Profile 기능
  1. scp



  1. 피드백 😮
  • Gradle 기반으로 애플리케이션 실행파일(.jar)을 생성하는 방법을 학습하였다.

  • Spring에서는 Profile이란걸 제공해주는데 이 Profile만 설정해두면 원하는 데이터를 원하는 환경에 맞게 배포할수 있게 해준다

  1. 앞으로 해야 될 것 😮
  • 매일 꾸준히 할 것
    • 꾸준히 velog 작성
    • Java 언어 및 Algorithm 공부(Coding-Test)
    • 틈틈히 운동 하기

  • 내일 해야 할 것
    • 새로운 Section4. Spring Security 학습
profile
Will be great Backend-developer

0개의 댓글