Skip to content

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📂 중앙 설정 저장소 (Project Configs)

이 레포지토리는 MSA 프로젝트의 모든 마이크로서비스 환경 설정(yml)을 중앙 관리하는 저장소입니다.

config-server가 이 레포지토리를 읽어 각 서비스에 설정을 배달합니다.


폴더 및 파일 구조 규칙

모든 설정 파일은 아래의 계층 구조를 따릅니다.

project-configs/
└── configs/                  # 모든 설정은 이 폴더 내에 위치합니다.
    ├── common/               # 모든 서비스 공통 설정 (DB, Eureka 등)
    │   ├── application.yml
    │   └── application-dev.yml
    └── {service-name}/       # 서비스 전용 폴더 (예: user-service)
        ├── {service-name}.yml (local)
        └── {service-name}-dev.yml

🛠️ 설정 추가/수정 가이드

본인의 서비스를 연결하려면 아래 규칙을 지켜주세요.

1. 신규 서비스 등록 시

  1. 루트 경로에 본인의 spring.application.name과 동일한 이름으로 폴더를 생성합니다. (예: order-service/)

  2. 폴더 안에 {service-name}.yml 파일을 만듭니다.

  3. 서비스 전용 포트나 커스텀 설정을 작성합니다.

2. 설정 파일 우선순위

설정은 아래 순서로 읽히며, 아래쪽일수록 우선순위가 높습니다 (덮어쓰기).

  1. common/application.yml

  2. common/application-{profile}.yml

  3. {service-name}/{service-name}.yml

  4. {service-name}/{service-name}-{profile}.yml (최우선)

3. 변경사항 반영하기

Git에 Push 한다고 해서 즉시 실행 중인 서비스에 반영되지 않습니다.

반영을 원하시면 해당 서비스의 Actuator Refresh 엔드포인트를 호출해야 합니다.

curl -X POST http://localhost:{서비스포트}/actuator/refresh

🧪 설정 반영 확인 (Test)

설정을 수정하거나 새로 추가한 후, config-server가 해당 파일을 정상적으로 읽어오는지 아래 URL을 통해 미리 확인할 수 있습니다.

1. 사전 준비

  1. infra-repo에서 docker-compose up -d
  2. docker ps 로 실행 확인
  3. config-server 실행

2. 브라우저에서 확인하기

  • 기본 형식: http://localhost:8888/{service-name}/{profile}/{label}
  • 예시 (user-service의 dev 브랜치 설정 확인):
http://localhost:8888/user-service/default/dev

주의!!!! project-configs에 push한 branch가 dev인 경우 위와 같이 합니다. 만약 다른 브랜치에서 작업하고 아직 merge 하기 전이라면 아래와 같이 합니다.

http://localhost:8888/user-service/default/{브랜치명}

Config Priority Diagram

3. 결과 체크리스트

출력된 JSON 데이터에서 아래 항목을 확인하세요.

  • propertySources: 이 배열 안에 본인이 작성한 파일 경로와 설정값들이 포함되어 있어야 합니다.
  • version: GitHub의 최신 커밋 해시값이 찍혀 있는지 확인하세요. 만약 옛날 값이 나온다면 config-server를 재시작하거나 캐시를 확인해야 합니다.
  • 우선순위: 배열의 앞쪽에 올수록 우선순위가 높은 설정입니다. (서비스 전용 설정 > 공통 설정 순서인지 확인)

🔐 보안 및 로컬 환경 설정 (.env)

본 레포지토리의 설정 파일(yml)에는 보안을 위해 실제 비밀번호 대신 ${DB_PASSWORD}와 같은 환경 변수 플레이스홀더를 사용합니다.

서비스 실행 시, 본인의 로컬 환경(infra-repo.env 파일 등)에 설정된 실제 환경 변수값이 주입됩니다. 실제 비밀번호를 절대 이 레포지토리에 직접 기입하여 Push 하지 마세요.


⚠️ 주의사항

  1. 파일명 일치: 파일명이 서비스의 spring.application.name과 다르면 config-server가 파일을 찾지 못합니다.

  2. YAML 문법: 공백(Space) 2칸 들여쓰기를 엄격히 준수하세요. 문법 에러 시 전체 서비스의 설정 로딩이 실패할 수 있습니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors