**멱등성(idempotency)**은 연산이 한 번 수행되든 여러 번 수행되든 같은 결과를 낸다는 것을 의미합니다. 분산 시스템에서는 재시도와 중복 메시지가 불가피하므로 결정적으로 중요합니다 — 멱등 연산은 이를 안전하게 만듭니다.
멱등성이란
연산을 여러 번 하는 것이 한 번 하는 것과 같은 효과를 내면 그 연산은 멱등함:
→ "잔액을 100으로 설정" → 멱등 (몇 번 하든 같은 결과)
→ "잔액에 100 더하기" → 멱등 아님 (각 호출이 바꿈 → 중복되면 틀림!)
→ HTTP에서: GET, PUT, DELETE는 멱등; POST는 보통 아님
분산 시스템에서 중요한 이유
분산 시스템에서 재시도와 중복은 불가피:
→ 요청이 타임아웃 → 클라이언트가 재시도 → 그러나 원본이 성공했을 수 있음 →
연산이 두 번 실행 (예: 결제가 두 번 청구! 주문이 두 번 접수!)
→ 메시지 큐는 종종 AT-LEAST-ONCE 전달을 보장 → 중복 발생
→ 네트워크 문제, 장애 → 연산이 재시도됨
→ 연산이 멱등하면 중복/재시도가 안전 (반복해도 해 없음)
→ 이것이 올바름과 안전한 재시도에 필수적.
