Web

REST API 설계 원칙 중 PUT, PATCH 차이 (멱등성 관련)

hoonylab 2025. 4. 15. 15:29
728x90
반응형

💡 멱등성(Idempotence)이란?

멱등성은 수학과 컴퓨터 과학에서 사용하는 개념으로, 같은 연산을 여러 번 적용해도 결과가 처음 한 번 적용했을 때와 동일한 성질을 말합니다.

REST API에서 멱등성은 다음처럼 이해할 수 있어요:

"같은 요청을 여러 번 보내더라도 서버 상태가 한 번 요청했을 때와 같아야 한다."

🔍 예시로 이해하기

  • DELETE /users/123 요청을 생각해봅시다.
  • 한 번 보내면 사용자 123이 삭제됩니다.
  • 두 번 보내도 이미 삭제되어 있어서 서버 상태엔 변화가 없습니다.

→ 따라서 DELETE멱등한 메서드입니다.

✅ HTTP Method와 멱등성

HTTP Method 멱등성 있음? 설명
GET ✅ O 조회는 서버 상태를 바꾸지 않음
PUT ✅ O 특정 자원을 "정해진 값으로" 덮어쓰기 때문에 여러 번 해도 결과 같음
DELETE ✅ O 삭제는 한 번 이상 요청해도 결과 같음 (이미 없으면 그대로)
POST ❌ X 요청마다 리소스가 새로 생성될 수 있어 멱등하지 않음
PATCH ❌ 보통 X 리소스를 "부분 수정"하므로 여러 번 하면 결과 달라질 수 있음

🔁 PUT vs PATCH - 멱등성 관점에서

항목 PUT PATCH
방식 전체 교체 (Replace) 부분 수정 (Modify)
멱등성 ✅ 있음 ❌ 없음 (보통)
예시 "이름: 홍길동, 나이: 30" 전체 덮어쓰기 "나이만 30으로 바꿔줘"

✍️ 블로그 글 작성 팁

  • 실생활 예시로 설명하면 좋아요 (예: ATM에서 같은 금액을 두 번 송금)
  • curl 예제 같이 넣어주면 실용성 ↑
  • 멱등성 있는 메서드는 재시도(재요청) 상황에 유리하다는 점도 강조!
728x90
반응형