[스프링] 프로파일에 따라 다른 스프링 데이터베이스 설정

스프링 프레임워크를 사용하여 개발을 할 때, 프로파일에 따른 다른 데이터베이스 설정을 구성할 수 있습니다. 이를 통해 개발, 테스트, 운영 등 환경에 따라 다른 데이터베이스를 사용할 수 있고, 코드의 재사용성을 높일 수 있습니다.

1. 프로파일 지정

먼저, 각 프로파일에 따른 데이터베이스 설정을 정의하기 전에 프로파일을 지정해야 합니다. 이를 위해 application.propertiesapplication.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