만든 어플리케이션을 실행 가능한 (.Jar)확장자로 빌드하자
1. IntelliJ IDE에서 빌드
build > bootJar or build task 실행
:build - 실행 가능한 Jar 파일 이외에 plain Jar 도 생성
:bootJar - 실행 가능한 Jar만 생성
2. Gradle Task로 빌드
Git Bash
만든 프로젝트 파일로 이동 >./gradlew build(or bootJar)입력하여 실행Windows 터미널
만든 프로젝트 파일로 이동 >.\gradlew bootJar(or bootJar)입력하여 실행
빌드된 jar 파일을 CUI로 실행해 보자
java -jar 파일명.jar
application.yml
Spring Boot 애플리케이션의 설정하며 동작방식, 환경등을 정의하는 파일
기본적으로 앱 설정파일은 앱 프로파일(특정 환경에서 실행 시 사용되는 설정)을 포함한다
이를 로컬 전용의 application-local.yml 와
서버 전용의 application-server.yml
실행 환경과 상관없이 공통 사용되는 application.yml로 분리한다
파일명을 제목과 같이 설정시 프로파일명은 'local'이 된다
spring: h2: //local에서 인메모리 사용을 위한 H2 설정 console: enabled: true path: /h2 datasource: url: jdbc:h2:mem:test jpa: //jpa 설정 hibernate: //자바 기반의 객체-관계 매핑 프레임워크 ddl-auto: create //매핑된 엔티티를 확인하여 스키마 자동 생성 show-sql: true //Hibernate 실행중 생성되는 SQL 쿼리를 콘솔에 출력 properties: hibernate: format_sql: true //SQL pretty print(가독성을 올려줌) sql: init: data-locations: classpath*:db/h2/data.sql //초기값 스크립트 경로 지정 logging: //로그 관련 설정 level: org: springframework: orm: jpa: DEBUG server: servlet: encoding: force-response: true //서블릿 응답을 UTF-8 형식으로 강제 인코팅(한글)
spring: jpa: hibernate: ddl-auto: update //외부저장소 설정을 통해 update show-sql: true properties: hibernate: format_sql: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/coffee_application?serverTimezone=Asia/Seoul username: root password: wjsq*****추가되는 datasource 정보를 입력한다
- url:
- mysql port: DB mySQL server 설치시 설정,
- Database: mySQL에서 Database를 먼저 생성해야 한다
- serverTimezone: 선택사항, createAt에 영향을 준다
설정 파일을 다 작성했다면 프로파일 적용하여 실행하자
인텔리제이에서 적용하여 실행
- 셀렉트 박스나 클래스파일 좌클릭을 통해 실행 구성 편집(Edit Configurations)에 들어간다.
- 실행 위치를 로컬머신으로 설정하고
- 프로그램 인수(Program arguments)에
--spring.profiles.active=[프로파일명]을 입력하여 활성화할 프로파일을 설정한다.
(또는 인텔리제이 Ultimate 사용시 활성 프로파일에[프로파일명]을 적어준다)- 실행 직후 로그에
The following 1 profile is active: [프로파일명]라는 문구를 볼 수 있다
CUI에서 적용하여 실행
빌드된 jar 파일 실행시 뒤에 --spring.profiles.active=[프로파일명]를 추가해 주면 된다
$ java -jar section3-week4-build-0.0.1-SNAPSHOT.jar --spring.profiles.active=local
Git Bash 실행 결과
서버 종료 후에도 남아있는 databate
표준 유닉스 툴
scp나 sftp로 수동 배포
클라우드 서비스
PaaS(Platform as a Service),
IaaS(Infrastructure as a Service),
CI/CD 플랫폼을 통한 배포 자동화