코드스테이츠 백엔드 부트캠프 59일차 - [Spring MVC] 애플리케이션 빌드/실행/배포

wish17·2023년 3월 10일
0
post-thumbnail

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

연습내용 GitHub주소 resource만 보면 됨.

IntelliJ IDE에서는 아래와 같이 Gradle task 명령을 통해 빌드 할 수 있다.

:build

  • :assemble, :check 같이 Gradle에서 빌드와 관련된 모든 task들을 실행
  • 실행 가능한 Jar 파일 이외에 plain Jar 파일 하나를 더 생성

:bootJar

  • 빌드와 관련된 모든 task들을 실행하는 것이 아니라 애플리케이션의 실행 가능한 Jar(Executable Jar)파일을 생성하기 위한 task만 실행
  • Executable Jar 파일'만' 필요하면 사용하면 됨

IntelliJ IDE를 사용하지 않고 빌드하는 방법

cmd, Git Bash, Windows Power Shell, 터미널 등 콘솔에 Gradle task 명령어를 입력하면 된다.

  1. 프로젝트가 위치해 있는 디렉토리 경로로 이동

  2. Gradle task를 CLI 명령으로 입력할 수 있는 콘솔창을 템플릿 프로젝트 root 경로에서 오픈

  3. 명령어 입력

  • Windows 터미널

    • PS D:\codestates\project\section3-week4-build> .\gradlew bootJar
  • Git Bash

    • MINGW64 /d/codestates/project/kdt/for-ese/section3-week4-build (main)
    • $ ./gradlew build

애플리케이션 실행

  1. 빌드를 통해 생성된 Jar 파일이 있는 디렉토리 경로로 이동

  1. 콘솔 오픈 후 java -jar 파일명.jar 입력

프로파일(Profile) 적용

프로파일 기능은 빌드된 실행 파일을 어느 환경에서 실행할 지 여부를 결정할 때 주로 사용

application.yml

  • 일반적으로 애플리케이션 실행 환경에 상관없는 공통 정보들은 application.yml에 설정

application-local.yml

  • 로컬 환경에서 사용하는 정보들은 application-local.yml 파일에 설정

application-server.yml

  • 서버 환경에서 사용하는 정보들은 application-server.yml 파일에 설정

IntelliJ IDE에서 프로파일 적용

구성편집

프로그램 인수 --spring.profiles.active=local와 같이 local로 변경

빌드된 실행 파일에 프로파일 적용

위에서 사용했던 java -jar 파일명.jar--spring.profiles.active=local을 추가하면 된다.

//예시
PS D:\AAWonJong\it\spring\project\be-template-build\build\libs> java -jar section3-week3-template-build-0.0.1-SNAPSHOT.jar --spring.profiles.active=local

간단하게 알아보는 배포 방법

  • 전통적인 배포 방법

    • scp나 sftp 같은 표준 유닉스 툴을 이용해서 서버로 전송
    • 서버로 전송된 Jar 파일은 JVM이 설치된 환경이라면 어디서든 실행 가능
  • 클라우드 서비스를 이용한 배포 방법

    • PaaS(Platform as a Service)
      - 애플리케이션을 개발하고 실행하기 위한 플랫폼을 제공한다.
      - 플랫폼이 서버, 스토리지, 네트워크 및 데이터베이스와 같은 인프라를 관리해 줌.
      - 예시: Heroku, Google App Engine, Microsoft Azure 등이 있다.

    • IaaS(Infrastructure as a Service)
      - 개발자가 직접 인프라를 관리할 수 있는 플랫폼을 제공한다.
      - 서버, 스토리지, 네트워크 및 데이터베이스와 같은 인프라를 개발자가 직접 관리한다.
      - 예시: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform 등이 있다.

    • CI/CD 플랫폼을 사용한 배포
      - 지속적인 통합 및 배포를 제공하는 플랫폼이다.
      - 코드를 버전 관리 시스템에 커밋하면 자동으로 빌드, 테스트, 배포되도록 설정할 수 있다.
      - 대표적인 예시: Jenkins, CircleCI, Travis CI, GitLab CI/CD 등이 있다.


Spring Boot 애플리케이션 Build 및 실행 실습

MySQL 사용법

워크벤치에 스키마 추가

혹은 command line 사용해서 원하는 디비 생성, 접속하고 원하는 요청을 쿼리문으로 날려주면 된다.

인텔리제이 빌드, yml

  • application-server.yml 파일 설정
# 서버 환경에서 사용하는 정보들은 application-server.yml 파일에 설정
# TODO MySQL DB 접속 정보를 아래에 설정하세요
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/orderCoffee?serverTimezone=Asia/Seoul # url설정
    username: root
    password: 비밀번호입력!
    Driver-class-name: com.mysql.cj.jdbc.Driver # 드라이버 설정
  jpa:
    hibernate:
      ddl-auto: create  # 스키마 자동 생성
    show-sql: true      # SQL 쿼리 출력
    properties:
      hibernate:
        format_sql: true  # SQL pretty print

  • build.gladle 설정
    • runtimeOnly 'mysql:mysql-connector-java:8.0.32' 의존성 추가

  • 빌드

  • 빌드 후 구성편집

0개의 댓글