해피 패스를 넘어서는 엔지니어링: 네트워크
코드에서 네트워크 호출은 한 줄이지만, 실제로는 독립적으로 실패하는 두 시스템 사이의 경계다. 요청이 느릴 수 있고, 응답이 사라질 수 있으며, 응답은 없어도 원격 작업은 완료될 수 있다. 이 경계를 성공과 실패 두 값으로만 다루면 운영 장애가 주문 중복, 대기열 증가, 재시도 폭주로 확산된다. 3줄 핵심 정리 timeout은 대기 예산이다: 호출자가 더 기다리지 않겠다는 뜻이지, 원격 시스템이 작업을 취소했다는 뜻은 아니다. 재시도에는 요청의 정체성이 필요하다: 결제·주문처럼 부작용이 있는 작업은 idempotency key로 중복 실행을 안전하게 처리해야 한다. 실패를 상태와 운영 신호로 만든다: pending·unknown 같은 상태, bounded retry, circuit breaker, load shedding, tail latency 지표가 필요하다. 원문: Beyond Happy Path Engineering: the Network ...