핵심 인사이트 (3줄 요약)

  1. 본질: Service Discovery는 MSA에서 동적으로 변하는 서비스 인스턴스의 위치(IP:Port)를 자동으로 등록·탐색·갱신하는 메커니즘이며, 서비스 레지스트리(Service Registry)가 핵심 컴포넌트이다.
  2. 가치: 컨테이너 환경에서 서비스 인스턴스는 스케일링·재배포 시 IP가 수시로 변경되므로 하드코딩이 불가능하며, Service Discovery가 "주문 서비스 어디 있어?"에 실시간 답변한다.
  3. 판단 포인트: Client-side(클라이언트가 레지스트리 조회) vs **Server-side(로드밸런서가 레지스트리 조회)**를 구분하고, K8s의 DNS 기반 Service Discovery가 사실상 표준이다.

Ⅰ. 개요 및 필요성

┌───────────────────────────────────────────────────────┐
│    Service Discovery 동작                             │
├───────────────────────────────────────────────────────┤
│  1. 서비스 인스턴스 시작 → Registry에 등록           │
│     (Order-Svc: 10.0.1.5:8080)                       │
│  2. 호출자가 "Order-Svc 어디?" → Registry 조회       │
│  3. Registry 응답: 10.0.1.5:8080                     │
│  4. 호출자 → 10.0.1.5:8080 직접 호출                │
│  5. 인스턴스 종료 → Registry에서 제거 (헬스체크)     │
└───────────────────────────────────────────────────────┘
  • 📢 섹션 요약 비유: Service Discovery는 전화번호부이다. 사람(서비스)이 이사(IP 변경)해도 전화번호부(레지스트리)를 보면 현재 주소를 찾을 수 있다.

Ⅱ. 아키텍처 및 핵심 원리

Client-side vs Server-side

방식동작대표
Client-side클라이언트가 레지스트리 조회 + LBEureka
Server-sideLB가 레지스트리 조회K8s Service

K8s Service Discovery

  • Pod 생성 → kube-dns에 자동 등록.

  • order-svc.default.svc.cluster.local로 DNS 조회.

  • 📢 섹션 요약 비유: Client-side는 직접 전화번호부를 찾는 것, Server-side는 안내 데스크(LB)에 물어보는 것이다.


Ⅲ. 비교 및 연결

비교하드코딩Service Discovery
IP 변경코드 수정자동 갱신
스케일링수동동적 등록
장애감지 불가헬스체크 제거

Ⅳ. 실무 적용 및 기술사 판단

대표 도구

  • Consul (HashiCorp): Service Discovery + Config.
  • Eureka (Netflix): Client-side, Spring Cloud.
  • K8s Service: Server-side, DNS 기반.
  • etcd: K8s의 상태 저장소.

Ⅴ. 기대효과 및 결론

Service Discovery는 MSA의 서비스 간 통신의 기본 인프라이며, K8s 환경에서는 DNS 기반으로 투명하게 제공된다.


📌 관련 개념 맵

개념연결 포인트
Service Registry서비스 위치 저장소
헬스체크비정상 인스턴스 자동 제거
ConsulHashiCorp 서비스 디스커버리
EurekaNetflix 클라이언트 사이드
K8s DNS서버 사이드 디스커버리 표준

📈 관련 키워드 및 발전 흐름도

[하드코딩 IP (전통, ~2010s)]
    │
    ▼
[Client-side Discovery (Eureka, 2012~)]
    │
    ▼
[Server-side Discovery (K8s Service, 2015~)]
    │
    ▼
[Service Mesh (Istio/Envoy, 2018~) — 투명한 Discovery]
    │
    ▼
[현재: 멀티 클러스터 Discovery — 클러스터 간 서비스 탐색]

👶 어린이를 위한 3줄 비유 설명

  1. Service Discovery는 전화번호부예요. 친구(서비스)가 이사해도 새 주소를 찾을 수 있어요.
  2. 전화번호부가 없으면 친구가 이사할 때마다 직접 물어봐야 해서 불편해요.
  3. 쿠버네티스(K8s)는 전화번호부를 자동으로 업데이트해줘서 편리하답니다!