🔁 멱등성이란?

정의

멱등성은 같은 요청을 여러 번 보내도 결과가 같게 유지되는 성질이다. 요청을 한 번 보내든 여러 번 보내든 최종 상태가 동일하면 멱등하다고 본다.

🧭 왜 중요한가?

  • 네트워크는 실패할 수 있어서 같은 요청이 재시도될 수 있다.
  • 재시도 시 데이터가 중복 생성되면 문제가 생긴다.
  • 멱등성을 이해하면 API 설계를 더 안전하게 할 수 있다.

📌 HTTP 메서드와 멱등성

Method 멱등성 설명
GET O 조회 요청은 여러 번 보내도 결과가 동일해야 한다
PUT O 같은 내용으로 다시 보내면 최종 상태가 같아야 한다
DELETE O 이미 삭제된 상태라면 결과가 같게 유지된다
POST X 보통 여러 번 보내면 여러 개가 생성될 수 있다
PATCH 경우에 따라 다름 구현 방식에 따라 멱등성이 달라질 수 있다

포인트

멱등성은 “응답이 똑같다”가 아니라 “최종 상태가 같다”는 의미에 가깝다.

🛠️ 예시

GET

GET /users/1

같은 요청을 여러 번 보내도 사용자 조회 결과는 같아야 한다.

PUT

PUT /users/1

같은 데이터를 반복해서 보내면 최종적으로 같은 상태가 유지된다.

POST

POST /users

같은 요청을 여러 번 보내면 사용자 데이터가 중복 생성될 수 있다.

⚠️ 주의할 점

  • 멱등하다고 해서 반드시 안전한 것은 아니다.
  • GET은 보통 멱등하지만, 서버 내부에서 부수 효과가 있으면 설계가 잘못된 것이다.
  • PATCH는 부분 수정 방식에 따라 멱등성이 달라질 수 있다.

✅ 실무에서의 활용

  • API 재시도 로직 설계
  • 중복 요청 방지
  • 결제, 주문, 저장 API 설계
  • 분산 시스템에서의 안전한 재처리

[!important] 정리 멱등성은 재시도 가능한 API를 설계할 때 꼭 확인해야 하는 성질이다. 특히 네트워크 장애가 있는 환경에서는 더 중요하다.


연결문서

댓글남기기