로컬 환경에서 개발 편의성을 위해 인메모리 DB인 H2를 사용할 수 있다. 하지만 서버 환경에서 개발할 경우 인메모리 DB를 사용할 경우 서버 재시작 시 매번 메모리가 초기화되어 데이터가 제거된다.
이를 해결하기 위해 local 환경에서 개발할 경우와 server 환경에서 개발할 경우 사용할 DB를 선택해 사용할 수 있도록 application.yml 파일을 추가하고 실행할 profile을 설정해 사용할 수 있다.
* 여기서는 server 환경에서 사용할 DB로 mysql을 선택해 적용했다.
application.yml 파일 설정하기
build.gradle에 dependencies 추가하기
dependencies {
.
.
.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'com.h2database:h2'
runtimeOnly 'mysql:mysql-connector-java'
}
- h2와 mysql을 사용하는 경우이다
application.yml 작성
# 공통으로 적용할 부분이 있을 경우 여기에 작성한다
application-local.yml 작성
spring:
h2:
console:
enabled: true
path: /h2
datasource:
url: jdbc:h2:mem:test
jpa:
hibernate:
ddl-auto: create
show-sql: true
properties:
hibernate:
format_sql: true
sql:
init:
data-locations: classpath*:db/h2/data.sql
logging:
level:
org:
springframework:
orm:
jpa: DEBUG
server:
servlet:
encoding:
force-response: true
application-server.yml 작성
spring:
jpa:
hibernate:
ddl-auto: 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: stayalive
ddl-auto: update
로 주어 서버 시작이나 종료 시 DB에 저장된 데이터를 유지하도록 설정하였다
url
localhost:3306
: mysql의 port 번호를 입력한다coffee_applilcation
: mysql에서 사용할 database 명을 입력한다serverTimezone
(optional)
username
- mysql의 username을 입력한다
password
- 해당 username의 password를 입력한다
빌드
intellij를 통해 .jar 파일 생성하기
1. 우측의 Gradle 탭을 눌러 build 경로의 build 또는 bootJar를 통해 실행 파일을 생성한다.
- buld: 빌드와 관련된 모든 task들을 실행하고,
.jar
파일과-plain.jar
파일 두 개를 생성 - bootJar: 애플리케이션 실행 파일
.jar
파일만 단독 생성
2. project 탭에서 build/libs 경로에 .jar 파일이 생성되었는지 확인한다.
CLI 명령어를 통해 .jar 파일 생성하기
1. 프로젝트가 위치한 경로로 이동해 .\gradlew build
또는 .\gradlew bootJar
를 입력한다
2. ~프로젝트 경로\build\libs
경로에 .jar
파일이 잘 생성되었는지 확인한다
실행
현재 application.yml 파일에는 아무것도 작성이 되지 않은 상태이므로 profile 설정을 하지 않고 서버를 시작할 경우 어떠한 DB도 할당되지 않는다. mysql DB를 사용하기 위해 profile을 설정하고, 실행해보자.
intellij를 통해 profile 적용 후 실행하기
1. 애플리케이션 실행 경로(@SpringBootApplication)에서 Edit Configurations...를 선택한다
2. Active profiles에 application- 뒤에 작성된 이름을 입력한다. (ultimate version 기준)
- community version일 경우 --spring.profiles.active=local를 Program arguments 필드에 입력
3. 로그를 통해 profile이 잘 적용된 것을 확인
4. 애플리케이션을 실행한다
CLI 명령어를 통해 profile 적용해 실행하기
1. 프로젝트 경로\build\libs 경로에서 실행할 .jar 파일의 이름을 확인한다
2. java -jar [.jar파일] --spring.profiles.active=[profile_name] 명령어를 통해 실행한다
3. 로그를 통해 profile이 잘 적용된 것을 확인
'diary > codestates (be39)' 카테고리의 다른 글
07/19/22 intellij로 mysql을 연결하고 postman을 통해 작동 확인하기 (0) | 2022.07.19 |
---|---|
06/13/22 데이터베이스 + SQL 회고 (0) | 2022.06.14 |
06/03/22 Data Structure + Algorithm 회고 (0) | 2022.06.03 |
05/26/22 daily 회고 (stack+queue) (0) | 2022.05.27 |
05/24/22 재귀 함수 너무 어렵고 어렵네요 어렵습니다 (0) | 2022.05.25 |