Day 81 · 1/5
🌳 고급 마이크로서비스

분산 추적이 뭔가요?

쉽게 이해하기

택배를 보냈는데 배송이 늦어졌다고 생각해보세요. 택배사 앱을 열면 '집화 완료 → 터미널 도착 → 간선 상차 → 배송 출발' 같은 단계별 기록이 나옵니다. 분산 추적도 마찬가지예요. 하나의 요청이 여러 서버를 거칠 때, 각 구간에서 얼마나 시간이 걸렸는지, 어디서 문제가 생겼는지 추적하는 거죠.

핵심 정리

여러 서비스를 거치는 요청의 전체 흐름을 추적하는 기술입니다.

자세히 알아보기

마이크로서비스 환경에서는 하나의 API 호출이 여러 서비스를 거칩니다. 예를 들어 주문 요청이 들어오면 '주문 서비스 → 결제 서비스 → 재고 서비스 → 배송 서비스'를 순차적으로 호출하죠. 이때 응답이 느리거나 에러가 나면 어느 구간에서 문제가 생긴 건지 알기 어렵습니다. 분산 추적은 각 요청에 고유한 추적 ID를 부여하고, 서비스를 거칠 때마다 시작 시간, 종료 시간, 에러 여부 등을 기록합니다. Jaeger, Zipkin 같은 도구를 쓰면 이 정보를 시각화해서 볼 수 있어요. '주문 서비스는 50ms 걸렸는데 결제 서비스에서 2초 걸렸네? 여기가 병목이구나!' 하고 바로 파악할 수 있습니다. 실무에서는 OpenTelemetry라는 표준을 많이 사용합니다. 각 서비스에 라이브러리를 추가하면 자동으로 추적 정보를 수집해주죠. 특히 장애 대응할 때 필수예요. 사용자가 '결제가 안 돼요'라고 하면, 추적 ID로 전체 호출 흐름을 보고 정확히 어느 서비스에서 실패했는지 찾을 수 있습니다. 분산 추적 없이 마이크로서비스를 운영하는 건 지도 없이 여행하는 것과 같습니다. 서비스가 많아질수록 문제 원인을 찾기 어려워지니, 초기부터 도입하는 게 좋습니다.