[스프링] 프로파일에 따라 다른 스프링 데이터베이스 설정
스프링 프레임워크를 사용하여 개발을 할 때, 프로파일에 따른 다른 데이터베이스 설정을 구성할 수 있습니다. 이를 통해 개발, 테스트, 운영 등 환경에 따라 다른 데이터베이스를 사용할 수 있고, 코드의 재사용성을 높일 수 있습니다.
1. 프로파일 지정
먼저, 각 프로파일에 따른 데이터베이스 설정을 정의하기 전에 프로파일을 지정해야 합니다. 이를 위해 application.properties
나 application.yml
파일에 다음과 같이 프로파일을 설정합니다.
# application.yml
spring:
profiles:
active: dev # 또는 test, prod 등 환경에 따라 설정
2. 데이터베이스 설정
다음으로, 각 프로파일에 따라 데이터베이스 설정을 구성합니다.
2.1 개발 환경 설정
# application-dev.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/devdb
username: devuser
password: devpass
2.2 테스트 환경 설정
# application-test.yml
spring:
datasource:
url: jdbc:h2:mem:testdb
username: sa
password:
2.3 운영 환경 설정
# application-prod.yml
spring:
datasource:
url: jdbc:mysql://production-server:3306/proddb
username: produser
password: prodpass
3. 프로파일에 따른 설정 사용
마지막으로, 프로파일에 따른 데이터베이스 설정을 사용하는 방법은 아래와 같습니다.
@Component
@Profile("dev") // 또는 @Profile("test"), @Profile("prod")
public class MyRepositoryConfig {
// ...
}
위와 같이 @Profile
어노테이션을 이용하여 각 환경에 따라 다른 데이터베이스 설정을 사용할 수 있습니다.
프로파일에 따라 다른 데이터베이스 설정을 구성하면, 각 환경에 맞게 데이터베이스를 유연하게 관리할 수 있고, 코드의 수정 없이 다양한 환경에서 테스트할 수 있어 개발 및 유지보수의 효율성을 높일 수 있습니다.
참고문헌: Spring Framework Documentation