티스토리 뷰
스프링/스프링부트 RestAPI 프로젝트
spring boot REST API Web 프로젝트 (13) - 환경별 설정을 위해서profile 분리하기
구름뭉치 2021. 9. 3. 18:58스프링 부트 REST API WEB 프로젝트
깃헙 링크
https://github.com/choiwoonsik/springboot_RestApi_App_Project/tree/main/restApiSpringBootApp
수행 목록
- 환경구성 및 helloworld 출력
- H2 DB 연동
- Swagger API 문서 연동
- REST API 설계
- RestControllerAdvice를 이용한 통합 예외 처리
- Entity - DTO 분리
- MessageSource를 이용해 예외 메시지 다국화
- JPA Aduting을 이용해 객체 생성시간/수정시간 적용
- 스프링 시큐리티 + Jwt를 이용해서 인증 및 권한 체크
- 스프링 시큐리티 AuthenticationEntryPoint, AccessDenied로 인증 및 인가 예외처리
- Jwt AccessToken + RefreshToken으로 보안성과 사용자 편의성 고도화하기
- JUnit Test (단위 테스트)
- JUnit Test (통합 테스트)
- OAuth 2.0 정리
- OAuth 2.0 카카오 로그인 part.1 Authorization code + Token 발급
- OAuth 2.0 카카오 로그인 part.2 토큰으로 회원 가입 / 로그인
- OAuth 2.0 카카오 로그인 테스트 검증
- 환경별 설정을 위해서profile 분리하기
application-yml 파일은 환경구성을 위해 필요한 파일이다. 하지만 local에서 구현을 위해 사용하는 환경구성과 실제 배포를 위한 환경을 다를 수밖에 없다. 따라서 배포용 환경과 로컬 개발용 환경 두개를 분리해서 만들어본다.
application-dev.yml과 application-local.yml 두개로 분리
application.yml에는 공통으로 들어가는 설정을 넣고, dev와 local에는 환경에 따라 달라지는 내용을 넣는다.
공통 설정 application.yml
spring:
profiles:
include: private, local
freemarker:
template-loader-path: classpath:/templates
suffix: .ftl
messages:
basename: i18n/exception
encoding: UTF-8
application-private.yml에는 JWT을 위한 SECRET_KEY, KAKAO OAUTH를 위한 REST_API_KEY 등 프라이빗한 내용들이 들어있다.
local용 설정파일 application-local.yml
logging:
level:
root: warn
com.restApi.restApiSpringBootApp: debug #debug info warn error fatal off
server:
port: 8080
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/restApi
driver-class-name: org.h2.Driver
username: sa
messages:
basename: i18n/exception
encoding: UTF-8
jpa:
database-platform: org.hibernate.dialect.H2Dialect
properties.hibernate:
hbm2ddl.auto : update
format_sql: true
show-sql: true
generate-ddl: true
open-in-view: false
url:
base: http://localhost:8080
config:
activate:
on-profile: local
배포용 설정파일 application-dev.yml
logging:
level:
root: warn
com.restApi.restApiSpringBootApp: info
file:
path: /home/ec2-user/api/log
logback:
rollingpolicy:
max-history: 7
server:
port: 8080
spring:
profiles: dev
include: private
datasource:
url:
driver-class-name:
username:
password:
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
properties.hibernate:
format_sql: true
hibernate:
ddl-auto: update
generate-ddl: false
show-sql: true
open-in-view: false
url:
base: "deploy server ip"
배포때와 로컬에서 구동 시 application.yml에서 사용할 설정파일 이름만 바꿔주면 된다.
반응형
'스프링 > 스프링부트 RestAPI 프로젝트' 카테고리의 다른 글
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday