멱등성
🔁 멱등성이란?
정의
멱등성은 같은 요청을 여러 번 보내도 결과가 같게 유지되는 성질이다. 요청을 한 번 보내든 여러 번 보내든 최종 상태가 동일하면 멱등하다고 본다.
🧭 왜 중요한가?
- 네트워크는 실패할 수 있어서 같은 요청이 재시도될 수 있다.
- 재시도 시 데이터가 중복 생성되면 문제가 생긴다.
- 멱등성을 이해하면 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를 설계할 때 꼭 확인해야 하는 성질이다. 특히 네트워크 장애가 있는 환경에서는 더 중요하다.
댓글남기기