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

  1. 본질: Circuit Breaker는 원격 서비스 호출 실패가 임계치를 초과하면 자동으로 회로를 열어(Open) 호출을 차단하고, 일정 시간 후 반 열림(Half-Open)으로 복구를 시도하는 MSA 복원력(Resilience) 패턴이다.
  2. 가치: Circuit Breaker 없이 서비스 B가 장애이면 서비스 A가 **타임아웃까지 대기→스레드 고갈→A도 장애(Cascading Failure)**가 발생하지만, Circuit Breaker가 즉시 폴백(Fallback) 응답을 반환하여 장애 전파를 차단한다.
  3. 판단 포인트: Closed(정상)→Open(차단)→Half-Open(복구 시도)의 3가지 상태를 이해하고, Hystrix(Netflix, 레거시)→Resilience4j(Java 표준)→Istio(서비스 메시)의 구현 진화를 파악해야 한다.

Ⅰ. 개요 및 필요성

┌───────────────────────────────────────────────────────┐
│    Circuit Breaker 상태 전이                          │
├───────────────────────────────────────────────────────┤
│  [Closed — 정상]                                      │
│   모든 요청 통과, 실패 카운트                        │
│   실패 > 임계치 → Open                               │
│                                                       │
│  [Open — 차단]                                        │
│   모든 요청 즉시 거부, Fallback 반환                 │
│   타이머 만료 → Half-Open                            │
│                                                       │
│  [Half-Open — 복구 시도]                              │
│   일부 요청 통과하여 테스트                           │
│   성공 → Closed / 실패 → Open                       │
└───────────────────────────────────────────────────────┘
  • 📢 섹션 요약 비유: Circuit Breaker는 전기의 **차단기(브레이커)**이다. 과전류(장애)가 흐르면 자동으로 차단하여 화재(Cascading Failure)를 방지한다.

Ⅱ. 아키텍처 및 핵심 원리

Fallback 전략

전략설명
캐시 반환이전 성공 응답 반환
기본값정적 기본값 제공
대체 서비스다른 서비스 호출
에러 반환사용자에게 에러 안내
  • 📢 섹션 요약 비유: Fallback은 비상구이다. 정문(서비스)이 막히면 비상구(대체)로 나간다.

Ⅲ. 비교 및 연결

비교CB 없음CB 있음
장애 전파Cascading차단
응답 시간타임아웃까지 대기즉시 Fallback
복구수동자동 (Half-Open)

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

Circuit Breaker 구현

도구특징
Resilience4jJava 표준, 경량
Istio서비스 메시, 코드 무관
Envoy프록시 레벨 CB

Ⅴ. 기대효과 및 결론

Circuit Breaker는 MSA 복원력의 가장 기본적이고 중요한 패턴이며, Retry·Timeout·Bulkhead와 함께 복합 적용한다.


📌 관련 개념 맵

개념연결 포인트
Circuit Breaker장애 전파 차단
Fallback대체 응답 전략
Cascading FailureCB가 방지하는 연쇄 장애
Bulkhead격벽 패턴 (리소스 격리)
Retry재시도 (CB와 함께 사용)

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

[직접 호출 (장애 전파, ~2010s)]
    │
    ▼
[Hystrix (Netflix, 2012~) — 최초 CB 라이브러리]
    │
    ▼
[Resilience4j (2018~) — Hystrix 대체, Java 표준]
    │
    ▼
[서비스 메시 CB (Istio/Envoy, 2018~) — 코드 무관]
    │
    ▼
[현재: 자동 CB 튜닝 — AI가 임계치 자동 조정]

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

  1. Circuit Breaker는 전기의 **차단기(브레이커)**예요.
  2. 과전류(장애)가 흐르면 자동으로 끊어서 화재(연쇄 장애)를 막아요.
  3. 잠시 기다렸다가 살짝 켜보고(Half-Open), 안전하면 다시 정상으로 돌아가요!