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의 동적 설정 갱신 구현 추진

오늘의 교훈

"서비스 이름도 도메인 네이밍 규칙을 따라야 한다."

사소한 네이밍 결정도 시스템 기능에 큰 영향을 미칠 수 있으므로, 모든 기술적 선택에서 신중한 고려가 중요합니다.