카테고리 없음

TIL(2025-04-09)

dydwo6018 2025. 4. 9. 19:47

🔧 오늘 한 일

  • 프로젝트 개발 중 DB 연결 오류 발생
  • 원인은 config 서버에서 DB 연결 설정이 빠져 있었던 것
  • config 서버를 따로 두는 구조의 프로젝트를 처음 진행하다 보니, 오류 원인을 제대로 인지하지 못함
  • 기존에는 로컬에서 Docker를 실행한 DB에 직접 연결하는 방식만 사용했기 때문에, 이번처럼 config 서버를 통한 설정 전달 구조에 익숙하지 않았음

❗ 문제 상황

  • 어플리케이션 실행 시 DB 연결 실패 (connection refused, could not connect to database 등 오류 발생)
  • 계속 Docker 컨테이너의 DB 문제라고 생각해서 Docker 설정이나 DB 포트를 여러 번 확인함
  • 하지만 실제 원인은 config 서버가 DB 설정 정보를 내려주지 않아서 발생한 문제였음

🔍 원인 분석

  • 평소에는 각 서비스에서 직접 application.yml을 관리하며 Docker로 실행한 DB에 연결했음
  • 하지만 이번에는 config 서버를 통해 설정을 통합 관리해야 했는데, 해당 구조를 잘 이해하지 못함
  • DB 연결 정보가 config 서버에 존재하지 않거나, 해당 설정이 서비스에 정상적으로 반영되지 않아서 연결 실패

💡 오늘의 배움

  • Config Server를 사용하는 구조에서는 각 마이크로서비스가 직접 DB 설정을 갖고 있는 것이 아니라, config 서버를 통해 설정을 전달받는다는 점을 명확히 인식해야 함
  • 설정이 누락되었을 때 Docker나 DB 자체 문제로 오해할 수 있으니, 먼저 config 서버 설정부터 점검하는 습관이 필요함
  • MSA + Config Server 구조는 아직 익숙하지 않지만, 이번 경험을 통해 설정 흐름에 대한 감을 조금 익힐 수 있었음

📝 회고

  • 구조에 대한 이해가 부족하면 디버깅도 어려워진다는 걸 체감함
  • 처음엔 Docker 문제라고 착각했지만, 실제로는 설정 흐름의 문제였다는 걸 깨닫는 데 시간이 걸렸음
  • 앞으로는 낯선 구조일수록 먼저 전체 아키텍처를 파악하고, 설정이 어디서 어떻게 내려오는지 확인하는 습관을 들이자