티스토리 뷰

Skill/spring

@EnableConfigServer

진열사랑 2025. 5. 5. 21:51

@EnableConfigServer는 Spring Cloud Config 프로젝트에서 사용하는 애노테이션으로, 이 애플리케이션을 Config Server로 동작하게 만든다는 의미입니다.


✅ @EnableConfigServer의 역할

이 애노테이션을 붙이면, 이 애플리케이션이 Spring Cloud Config Server가 되어:

  • Git, 파일 시스템, Vault, JDBC 등에 저장된 설정 파일을 읽어와서,
  • 다른 마이크로서비스들에게 중앙 집중 방식으로 설정 값을 제공할 수 있게 됩니다.

즉, 이 앱이 중앙 설정 서버 역할을 합니다.


🧩 작동 방식 요약

  1. Config Server는 Git 또는 다른 저장소에서 설정 파일을 로드합니다.
  2. 클라이언트 애플리케이션(예: user-service, order-service 등)은 이 Config Server에 application.yml, application-{profile}.yml을 요청합니다.
  3. Config Server는 요청에 맞는 설정 파일 내용을 JSON 형태로 반환합니다.

🗂️ 예시 디렉토리 구조 (Git 저장소 기준)

 
config-repo/
├── application.yml
├── user-service.yml
├── order-service-dev.yml
├── order-service-prod.yml

🔧 기본 설정 예시 (application.yml in Config Server)

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/my-org/config-repo
          clone-on-start: true
  application:
    name: config-server
server:
  port: 8888

위 설정은 Config Server가 GitHub의 설정 파일을 읽어오며, 기본 포트는 8888입니다.


🖥️ 클라이언트 서비스에서의 설정 예시

클라이언트 마이크로서비스는 이렇게 설정합니다:

spring:
  application:
    name: user-service
  cloud:
    config:
      uri: http://localhost:8888

그러면 user-service는 config-server에게 user-service.yml을 요청해서 설정을 가져옵니다.


📦 의존성 (Gradle 기준)

dependencies {
    implementation 'org.springframework.cloud:spring-cloud-config-server'
}

Spring Boot 버전에 맞는 Spring Cloud BOM(Bill of Materials)도 같이 설정해야 합니다.


🔄 요약

항목설명
@EnableConfigServer 이 앱을 Spring Cloud Config Server로 지정
주요 기능 설정 중앙화, Git/파일 시스템/Vault에서 설정 로드
일반 사용 포트 8888
클라이언트 연동 방식 spring.cloud.config.uri로 설정 서버를 지정
장점 마이크로서비스 설정 통합 관리, 버전 관리(Git 연동)

'Skill > spring' 카테고리의 다른 글

RabbitMQ  (1) 2025.05.06
Spring Cloud란?  (0) 2025.05.05
@Lazy(false)  (0) 2025.05.05
@EnableDiscoveryClient  (0) 2025.05.05
HSTS 관련 설정  (0) 2025.04.07
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함