에러 핸들링은 기능을 다 만든 뒤 붙이는 장식이 아니라 설계 그 자체다. 실패의 종류를 분류하고, 예외와 에러 값 중 무엇을 쓸지 정하고, 경계에서 검증하고 코어를 신뢰하며, 모든 원격 호출에 타임아웃을 걸고, 재시도에 지터를 넣고, 멱등성으로 안전하게 재시도하고, 서킷 브레이커로 장애를 격리하고, 우아하게 성능을 낮추는 — 코드 레벨에서 잘 실패하는 소프트웨어를 설계하는 법.
Circuit Breaker 패턴의 상태 머신 원리, Resilience4j의 CircuitBreaker·Retry·Bulkhead·RateLimiter 모듈 통합 설정, Spring Boot 3 환경에서의 실전 구현과 Grafana 모니터링, 장애 시나리오별 복구 전략을 다룬다.