인프런 커뮤니티 질문&답변

최학준님의 프로필 이미지
최학준

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice에서 Spring Cloud Config 연동 ➁

Config Client의 설정정보 업데이트 원리

작성

·

552

0

안녕하세요. 강의 잘 듣고 있습니다.

강의를 듣던 중 아래 몇 가지 이해가 부족한 부분과 조언이 필요한 부분이 있어 이렇게 질문 남깁니다.

 

제가 이해하기로, Spring Cloud Config는 애플리케이션의 환경정보(이하 env)를 외부로부터 받아오기 위한 의존성이며, Spring Actuator의 /refresh는 단지 env를 업데이트 하기 위해 사용하는것 뿐이다. 둘 사이의 종속적인 부분은 없어보인다. 식으로 이해를 했습니다.

제가 생각한 것이 맞는지 궁금합니다. 혹은 참고해서 공부할 수 있는 키워드가 있다면 참고하여 학습하도록 하겠습니다.

 

@Component 어노테이션으로 Spring Bean이 등록이 될 때, @Value 어노테이션을 통해 환경정보를 주입받을 수 있는 것을 알고 있습니다. 직접 확인을 해보니 /refresh는 Environment의 값은 바꾸지만, @Value를 통해 주입된 필드값은 수정되지 않음을 볼 수 있었습니다.

Spring Cloud Config를 도입한다고 하면 @Value를 통해 주입받던 모든 곳을 Environment를 통해 가져오는 것으로 수정을 해야하는지 혹은 다른 해결방안이 있는지 궁금합니다.

 

감사합니다.

 

 

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

말씀하신대로 Actuator와 Configruation 간에 직접적인 의존성은 없지만, 서로 간에 연계되어 사용하실 수 있습니다. Actuator에는 서버에 대한 관리 및 각종 지표에 대한 정보를 쉽게 얻을 수 있으며, Configuration은 말씀하신 대로 설정 정보에 대한 외부 관리를 위해 사용됩니다. 다만, 외부에서 변경 된 설정에 대해 각 마이크로서비스에 반영하거나 서버에 대해 refresh 작업을 위해 Actuator와 연계하여 사용하시면 쉽게 적용하실 수 있을 것 같습니다.

두번째 질문은, /actuator/refresh 를 실행 후 Environment로 가져온 정보는 갱신이 되고, @Value로 설정한 Bean에는 갱신 된 정보로 반영이 안되신다고 하신 부분은 @Value을 설정 한 Bean의 클래스 선언부에 @RefreshScope 설정이 되어 있는지 확인해 보시기 바랍니다. 정상적으로 @RefreshScope가 선언 되어 있다면, Environment와 @Value는 동일하게 설정 데이터를 업데이트 하게 됩니다.

감사합니다.

최학준님의 프로필 이미지
최학준

작성한 질문수

질문하기