728x90
반응형
1. 서론
- 프로젝트를 진행하던 도중, AWS에서 운용되기 위한 환경과, Local에서 돌리는 환경을 다르게 구성하는 방법이 있다는 것을 알게 되었습니다.
- 이 글을 읽게되면 DEV, PROD 설정을 다르게 구성할 수 있게 됩니다.
2. 본론
- 강의로 보거나, 책으로 프로젝트를 만들게 되면, 대체로 application.yml 파일 하나만 사용하게 되는 경우가 많습니다.
하지만 어느정도 팀을 이루고, 함께 배포하자는 목표를 가지고 나아가다 보면, 환경 설정을 다르게 적용해야 하는 경우가 있습니다. 하지만 DB 구성도 다르고, 민감한 키값들을 Git에 바로 올리기에는 부담이 크다고 느꼈습니다.
- 이를 해결하기 위해 설정 파일을 구분하여 공개해도 되는 파일만 git에 올리는 방식을 공부해보았습니다.
먼저 아래 사진과 같은 방식으로 설정을 나누어 줍니다.
application-dev.yml
spring:
profiles: dev
h2:
console:
enabled: true
datasource:
url: jdbc:h2:tcp://localhost/~/test
username: sa
password:
driver-class-name: org.h2.Driver
devtools:
livereload:
enabled: true # 이 옵션은 정적 파일 변동 시 자동 반영될 수 있도록 돕는다.
jpa:
hibernate:
ddl-auto: update # 이 옵션은 애플리케이션 실행 시점에 테이블을 drop 하고, 다시 생성한다
properties:
hibernate:
# show_sql: true
format_sql: true
thymeleaf:
prefix: classpath:/templates/
suffix: .html
logging:
level:
org.hibernate.SQL: debug
org.hibernate.type: trace # sql query 에 들어오는 파라메타 값 추적
application-prod.yml
spring:
profiles: prod
jackson:
serialization:
fail-on-empty-beans: false
h2:
console:
enabled: false
jwt:
secret: ...
jpa:
show-sql: true
hibernate:
ddl-auto: none
datasource:
url: ...
username: ...
password: ...
driver-class-name: org.mariadb.jdbc.Driver
cloud:
aws:
credentials:
access-key: ...
secret-key: ...
s3:
bucket: ...
region:
static: ap-northeast-2
stack:
auto: false
민감한 정보는 이렇게 설정파일을 분리해서 작성해 줍니다.
그 다음에 다음과 같이 설정해 줍니다.
spring.profiles.active=?
prov와 dev 별로 다르게 실행해서 테스트해볼 수 있습니다.
3. 결론
- 환경 설정을 구분해서 실행하는 방법을 알아보았습니다.
728x90
반응형
'Dev > SpringBoot' 카테고리의 다른 글
29. [springboot] DevTools를 이용해 LiveReload해보자 (0) | 2020.11.29 |
---|---|
28. [springboot] 프로젝트 초기에 구성하면 좋을 것들 (0) | 2020.11.28 |
26. [springboot] Thymeleaf 값 전달방법 기초(짱쉬움) (0) | 2020.11.04 |
25. [springboot] Thymeleaf select option에 관하여 (0) | 2020.11.02 |
24. [SpringBoot] RESTFul한 로그인 구현 예제 - 2 (0) | 2020.10.06 |