✅ 개요

마이크로서비스 아키텍처(MSA)에서는 각 서비스마다 별도의 설정 파일이 존재합니다. 서비스가 많아질수록 설정 파일의 수와 복잡도도 증가하게 됩니다. 이를 해결하기 위한 방법으로 Spring Cloud Config Server를 도입하면, 중앙에서 설정 파일을 통합적으로 관리할 수 있습니다.


🎯 Config Server 도입 목적

문제점 설명
설정 파일 중복 관리 각 서비스마다 설정을 별도로 관리해야 함
설정 변경 반영 어려움 수동 배포 또는 각 서비스 재시작 필요
배포 실수 가능성 증가 환경별 설정 누락이나 오타 발생 가능
복잡한 운영 관리 서비스 수가 많을수록 설정 파일도 많아짐

Config Server 도입을 통해 이러한 문제를 중앙에서 일괄 관리하며 해결할 수 있습니다.


🧱 구성 요소 설명

구성 요소 설명
Config Server Git 저장소에서 설정 파일을 가져와 각 마이크로서비스에 전달
Config Repository 실제 설정 정보가 저장되는 저장소 (보통 Git 사용)
Config Client 설정 정보를 전달받는 마이크로서비스들

🔄 설정 동작 흐름

  1. Config Client(Spring Boot 기반 마이크로서비스)는 시작 시 Config Server에 설정 정보를 요청합니다.
  2. Config Server는 Git 저장소 등에서 해당 설정 정보를 조회합니다.
  3. Config Server는 설정 정보를 각 마이크로서비스에 전달합니다.

📦 예시 디렉터리 구조 (Git 저장소)

config-repo/
├── user-service-dev.yml
├── user-service-stage.yml
├── user-service-prod.yml
├── product-service-dev.yml
├── product-service-stage.yml
├── product-service-prod.yml
├── order-service-dev.yml
├── order-service-stage.yml
└── order-service-prod.yml

✅ 서비스 및 환경별로 명확하게 분리하여 설정 파일을 저장합니다.