11/4

졸용·2025년 11월 4일

TIL

목록 보기
107/144

🔹 멱등성이란?

멱등성(Idempotence)은 연산을 여러 번 반복해서 실행하더라도, 그 결과가 한 번 실행했을 때와 동일한 성질을 말한다.

즉, 같은 요청을 여러 번 보내도 시스템 상태가 변하지 않거나, 결과가 바뀌지 않는 연산을 "멱등하다"고 부른다.


🔸예시

1. 수학에서의 멱등성

  • 함수 f(x) = min(x, 100)
    → 이 함수에 어떤 숫자를 넣고 여러 번 적용해도 결과는 같다. (f(f(f(150))) = 100)

2. HTTP Method에서의 멱등성

HTTP에서는 멱등성이 중요한 의미를 가진다:

HTTP 메서드멱등성 여부설명
GET여러 번 호출해도 동일한 리소스를 조회할 뿐, 상태 변화 없음
PUT서버에 특정 리소스를 같은 내용으로 덮어쓰기 → 여러 번 실행해도 결과 동일
DELETE같은 리소스를 여러 번 삭제 요청해도, 첫 번째 이후는 변화 없음
POST보통 매번 새로운 리소스를 생성하므로, 여러 번 호출 시 결과가 달라질 수 있음
PATCH❌ (대부분)부분 수정은 반복 시 다른 결과를 만들 수 있음

3. 실무에서의 멱등성 적용 예시

1) 주문 생성 API

  • POST /orders → 멱등성이 없음: 두 번 호출하면 주문 2개가 생성됨

2) 주문 상태 변경 API

  • PUT /orders/{id}/status (예: 상태를 CANCELLED로 변경)
    → 여러 번 요청해도 결과는 "취소됨" 상태로 고정됨 → 멱등함

3) 결제 시스템에서 멱등 키 사용

  • 같은 결제 요청이 중복으로 들어도, idempotency key를 사용해 중복 결제를 방지할 수 있음


🔹 왜 중요한가?

  • 네트워크 환경에서의 안전성: 같은 요청이 네트워크 문제로 재시도되는 경우가 많음
  • 이때 서비스가 멱등하면 중복 처리로 인한 오류를 방지할 수 있다.
profile
꾸준한 공부만이 답이다

0개의 댓글