본문 바로가기
SI 업무/spring boot

4. profile 로 다른 설정 관리

by 새로운걸 배우는게 너무 싫은 IT 복붙러 2024. 11. 29.
728x90

실제 현장에서 DB는 리얼 DB와 개발 DB 로 나누어 진다.

 

개발 DB 에서 개발하고 TEST 하고 

문제가 없을시

리얼 DB에 적용을 하고 사용을 한다.

 

하여 

개발 환경과 리얼 환경의 설정이 각각 존재 해야 한다.

실제로는 리얼에 직접 붙은 일은 없지만

혹시 아주 영세한 회사의 프로젝트를 할때는 

LOCAL PC 에서 리얼DB 에 직접 붙어서 TRACE 를 할때도 있다.

 

이렇게 개발 붙었다 리얼에 붙었다 할때 아래 설정 하나만  바꾸면 아주 편하게 환경을 왔다 갔다 할수 있다.

 

개념을 이미지로 표현 하면 아래와 같다.

최초에 application.properties 파일을 spring boot 가 읽고

spring.profiles.active   속성에 어떤 값이 있는냐에 따라 

어쩔때는 applcation-dev-properties 어쩔때는 application-ops.properties 을 읽는 것이다.


예)

application.properties 

spring.application.name=MyApp
spring.profiles.active=dev

 

application-dev.propfiles

# 개발 환경 데이터베이스 설정 (MySQL)
spring.datasource.url=jdbc:mysql://localhost:3306/devdb
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=devuser
spring.datasource.password=devpass

logging.level.org.springframework=DEBUG
# 리얼 데이터베이스 설정 (MySQL)
spring.datasource.url=jdbc:mysql://11.12.13.14:3306/realdb
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=realuser
spring.datasource.password=realpass

logging.level.org.springframework=WARN

 

근데 갑자기 드는 생각

꼭 파일의 이름을  application-dev. properties 와  application-ops.properties 로 해야 하나?

 

application-test.properties 로 해도 된다.

단 그렇게 할려면
spring.profiles.active=test 로 해야 한다.

 

그리고 파일은 꼭 이런 형식으로 만들어야 한다.

application-<profile>.properties

 

그건 그냥 규칙이다.

따라라..

 

 

오늘도 읽어 주셔서 감사합니다.

 

 

728x90