HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
👩‍👩‍👦‍👦
[팀01] 김팽박이
/
🌝
What we learn
/
🪢
Profile 을 그룹으로 관리
🪢

Profile 을 그룹으로 관리

PERSON
STATUS
완료

로컬, 테스트, 운영서버 등 배포 환경에따라 설정 값이 모두 다르다. 스프링의 프로파일은 이러한 설정을 배포 환경에 따라 적용시킬 수 있도록 도와준다.

 

프로파일을 설정하는 것은 간단하다. 스프링을 설정하기 위한 yaml 파일을 만들 때 이름을 application-${프로파일}.yaml 로 지으면 해당 변수 자리에 위치하는 변수가 프로파일이 된다.

 

총 test, local, prod 로 나누어 보았다. dev 상의 후 결정

 

application.yml

spring: profiles: active: local group: local: local, common prod: prod, common
  • 스프링에서는 그룹으로 프로파일을 설정하는 것도 지원한다.
  • 공통으로 사용하는 설정들은 common 프로파일로 두었다.
 

application-common.yml

spring: application: name: hoon jpa: open-in-view: false properties: hibernate: default_batch_fetch_size: 500 format_sql: true
  • open-in-view 를 끄거나 배치사이즈와 같이 공통으로 사용하는 설정들을 두었다.
  • 아직 프로젝트 시작 전이기 때문에 이것밖에 없지만 공통으로 사용되는 시큐리티 관련된 설정들이나 다른 설정들이 더 추가되면 좋을 것 같다.
 

application-local.yml

spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: url username: username password: password jpa: database: mysql hibernate: ddl-auto: create-drop properties: hibernate: dialect: org.hibernate.dialect.MySQL8Dialect flyway: enabled: false server: port: 8080 cors: allowed: api: /api/** url: - http://localhost:3000 # 리액트 주소 method: - GET - POST - PATCH - DELETE
  • 로컬 환경에서 개발을 하기위해 필요한 설정들이다.
 

application-prod.yml

spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: url username: username password: password jpa: database: mysql hibernate: ddl-auto: none properties: hibernate: dialect: org.hibernate.dialect.MySQL8Dialect flyway: enabled: true baseline-on-migrate: true cors: allowed: api: /api/** url: - url method: - GET - POST - PATCH - DELETE
  • 실제 운영 환경에서 사용하기 위한 프로파일이다.
  • 실제 운영 환경에서는 ddl-auto 옵션이 설정되어 있다면 큰일날 수 있기 때문에 none 으로 설정해두었다.
 

application.yml

spring: profiles: active: test include: common datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:test username: sa password: h2: console: enabled: true jpa: database: h2 hibernate: ddl-auto: create-drop properties: hibernate: dialect: org.hibernate.dialect.H2Dialect flyway: enabled: false
  • 테스트 환경에서 사용되는 프로파일이다.
  • test 디렉터리 하위의 resources 디렉터리에 추가하였다.
  • common 프로파일에서 사용되는 공통된 기능을 사용하기 위해 include 를 해주었다.
  • 테스트 환경에서는 mysql 이 아닌 h2 를 사용하여 테스트를 진행한다.