[스프링] 동적 프로파일링을 위한 프로퍼티 파일 활용

이번 글에서는 스프링 프레임워크에서 동적 프로파일링을 위한 프로퍼티 파일 활용에 대해 알아보겠습니다.

동적 프로파일링이란 무엇인가요?

일반적으로 스프링 애플리케이션은 여러 환경에서 실행될 수 있습니다. 예를 들어 개발, 테스트, 스테이징, 프로덕션 등의 환경에서 동일한 애플리케이션을 실행할 수 있습니다. 동적 프로파일링은 이러한 다양한 환경에 맞추어 스프링 빈을 설정하는 기능을 제공합니다.

프로퍼티 파일을 이용한 동적 프로파일링

프로퍼티 파일 생성

먼저, 각 환경에 맞는 프로퍼티 파일을 생성합니다. 예를 들어 application-dev.properties, application-prod.properties와 같이 각각의 환경에 맞는 프로퍼티 파일을 생성합니다.

활성 프로파일 설정

application.properties 파일에 다음과 같이 활성 프로파일을 설정합니다.

spring.profiles.active=dev

위의 예시에서는 dev 프로파일을 활성화하고 있습니다.

프로퍼티 파일 활용

다음으로 각 빈에 적용될 설정들을 프로퍼티 파일에 입력합니다.

# application-dev.properties
datasource.url=jdbc:mysql://localhost:3306/devdb
datasource.username=dev_user
datasource.password=dev_password
# application-prod.properties
datasource.url=jdbc:mysql://prod-host:3306/proddb
datasource.username=prod_user
datasource.password=prod_password

빈 설정

빈 설정 시 활성 프로파일을 고려하여 프로퍼티 파일을 참조하도록 설정합니다.

@Configuration
@PropertySource("classpath:application.properties")
public class MyConfig {
    @Autowired
    private Environment env;

    @Bean
    public DataSource dataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setUrl(env.getProperty("datasource.url"));
        dataSource.setUsername(env.getProperty("datasource.username"));
        dataSource.setPassword(env.getProperty("datasource.password"));
        return dataSource;
    }
}

위의 코드에서 @PropertySource 어노테이션을 통해 프로퍼티 파일을 불러오고, @Autowired 어노테이션을 통해 Environment 객체를 주입받아 필요한 프로퍼티 값을 참조하고 있습니다.

마무리

이렇게 프로퍼티 파일을 활용하여 스프링 프레임워크에서 동적 프로파일링을 구현할 수 있습니다. 다양한 환경에서의 유연한 애플리케이션 실행을 위해 동적 프로파일링을 적극적으로 활용해보시기 바랍니다.

스프링 공식 문서 참조