2025-04-01
Flix 프로젝트: 개발 기록 - 6
FlixSpring Cloud ConfigDockerTomcatMSA
1. 오늘의 진행 상황 & 구현 내용
Spring Cloud Config 중앙 설정 관리 점검
이전에 마이크로서비스의 중앙 설정 관리를 위해 Spring Cloud Config를 구현했지만, Docker 환경에서 config-server와 서비스 간 통신 장애가 발생했습니다.
오늘은 이 문제를 분석하고 해결하는 데 집중했습니다. 해결 과정은 다음과 같습니다:
- config-server 애플리케이션 설정 및 Git 연동 확인
- 서비스가 config-server를 참조할 때 Host 헤더 문제 식별
- Docker 네트워크 내에서 Tomcat이 도메인 이름의 언더스코어를 거부하는 것을 발견
- 서비스 이름을
config_server에서config-server로 변경하여 표준 준수 - 변경 후 모든 마이크로서비스가 설정을 성공적으로 가져오는 것을 확인
2. 문제 있었던 점 & 해결 과정
에러 설명
Tomcat & Host Header 이슈:
"The character [_] is never valid in a domain name."
Spring Boot의 내장 Tomcat이 config_server와 같은 도메인 이름의 언더스코어를 RFC-1035 위반으로 처리하여 400 Bad Request 응답을 반환했습니다.
적용한 해결 방법
Docker Compose 파일을 수정하여 서비스 이름을 config_server에서 config-server로 변경했습니다:
services:
config-server: # 변경됨
container_name: config-server변경 후 내부 curl 요청이 정상적으로 작동했습니다:
curl http://config-server:8058/auth/dev/main근본적인 해결은 표준 도메인 네이밍 규칙을 준수하는 것이었습니다.
3. 앞으로의 계획
- Webhook 또는 Spring Cloud Bus를 통한 Git의 동적 설정 갱신 구현 추진
오늘의 교훈
"서비스 이름도 도메인 네이밍 규칙을 따라야 한다."
사소한 네이밍 결정도 시스템 기능에 큰 영향을 미칠 수 있으므로, 모든 기술적 선택에서 신중한 고려가 중요합니다.