[java] Spring Cloud Config를 사용한 분산 설정 관리 방법

Spring Cloud Config는 분산 시스템에서 설정 관리를 편리하게 할 수 있는 도구입니다. 이를 사용하면 설정 파일을 중앙 집중식으로 관리하고, 여러 마이크로서비스 간에 설정을 공유할 수 있습니다.

1. Spring Cloud Config 서버 설정하기

먼저, Spring Cloud Config 서버를 설정해야 합니다. 이를 위해서는 @EnableConfigServer 어노테이션을 사용하여 Config 서버를 실행할 수 있습니다.

@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

위의 예제는 Spring Boot 애플리케이션을 생성하고 @EnableConfigServer 어노테이션을 사용하여 Config 서버를 활성화하고 있는 예시입니다.

2. 설정 파일 저장소 구성하기

Spring Cloud Config에서는 설정 파일을 Git, Subversion 등의 저장소에 저장할 수 있습니다. 예를 들어, Git을 사용하여 설정 파일을 저장하고자 한다면, spring.cloud.config.server.git.uri 프로퍼티를 설정하여 Git 저장소의 URL을 지정해야 합니다.

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/my-repo.git

위의 예제는 Config 서버에서 Git 저장소의 URL을 https://github.com/my-repo.git로 설정하고 있습니다.

3. 마이크로서비스에서 설정 가져오기

마이크로서비스는 Config 서버에서 설정을 가져와야 합니다. 이를 위해서는 bootstrap.properties 파일을 사용하여 Config 서버의 URL을 지정해야 합니다.

spring.cloud.config.uri=http://localhost:8888

위의 예제는 Config 서버의 URL을 http://localhost:8888로 설정하고 있습니다.

4. 설정 사용하기

마이크로서비스에서는 @Value 어노테이션을 사용하여 Config 서버에서 가져온 설정을 사용할 수 있습니다.

@RestController
public class MyController {
    
    @Value("${my.property}")
    private String myProperty;
    
    // ...
}

위의 예제는 Config 서버에서 가져온 my.property 설정을 myProperty 변수에 주입하는 예시입니다.

결론

위의 방법을 통해 Spring Cloud Config를 사용하여 분산 시스템의 설정을 효과적으로 관리할 수 있습니다. Config 서버를 설정하고 마이크로서비스에서 설정을 가져와 사용하는 과정을 숙지하면, 팀의 개발 생산성과 유지보수 편의성을 높일 수 있을 것입니다.

참고 자료