Idempotency란?
요청을 몇 번 재시도해도 결과가 같다는 보장이다. 네트워크 장애·타임아웃 재시도 시 중복 처리를 막는다.
HTTP 메서드 기본
- GET, PUT, DELETE — 멱등 (기본)
- POST — 비멱등 (조심 필요)
POST 멱등 구현법
클라이언트가 Idempotency-Key 헤더에 고유 키를 보내고, 서버가 이 키를 DB/Redis에 저장해 중복 체크. Stripe·PayPal 등이 이 방식.
POST /charges
Idempotency-Key: 8a2b-9c1d-4f3e
{ "amount": 10000 }
같은 키로 재요청 오면 첫 결과를 그대로 반환.