TIL - PUT 과 PATCH 멱등성 (10.14)
2025. 10. 14. 17:31

📚 오늘 공부한 내용

HTTP 메서드 - PUT vs PATCH와 멱등성

오늘은 RESTful API 설계에서 PUT과 PATCH의 차이점, 그리고 멱등성의 원리에 대해 지도를 받았다.

멱등성(Idempotency)이란?

같은 요청을 여러 번 수행해도 결과가 동일한 성질을 말한다. 쉽게 말해, 한 번 요청하나 열 번 요청하나 서버의 상태가 같다는 것이다.

PUT - 전체 리소스 교체

  • 멱등성 O: 같은 PUT 요청을 여러 번 보내도 결과가 동일
  • 리소스 전체를 새로운 데이터로 교체
  • 요청에 포함되지 않은 필드는 null이나 기본값으로 초기화될 수 있음
PUT /users/1
{ "name": "홍길동", "email": "hong@example.com" }
→ 기존 데이터를 통째로 덮어씀

PATCH - 부분 수정

  • 멱등성 X (일반적으로): 같은 요청을 여러 번 보내면 결과가 달라질 수 있음
  • 리소스의 일부분만 수정
  • 명시된 필드만 변경하고 나머지는 유지
PATCH /users/1
{ "email": "newemail@example.com" }
→ email만 변경, name 등 다른 필드는 그대로

언제 무엇을 쓸까?

PUT 사용

  • 전체 데이터를 알고 있고, 완전히 교체하고 싶을 때
  • 멱등성이 보장되어야 하는 상황

PATCH 사용

  • 일부 필드만 수정하고 싶을 때
  • 클라이언트가 전체 데이터를 모르는 상황

💡 느낀 점

API 설계할 때 단순히 "PATCH로 그냥 한 값만 바꿔서 보낼 수 있는데 굳이 PUT을 사용해야할까" 이렇게 생각했는데, 멱등성의 원리를 고려해서 선택해야 한다는 걸 배웠다. 작은 차이 같지만 API 안정성과 예측 가능성에 큰 영향을 미치는 중요한 개념이었다.