[REST API] PUT과 PATCH, PUT과 POST 차이

최희정·2022년 7월 13일
0
post-custom-banner

먼저 REST란 Representational State Transfer의 약자이다.

  • 자원(Resource) : URI
  • 행위(Verb) : HTTP Method
  • 표현(Representations)

즉 REST는 URI를 통해 자원을 표시하고, HTTP Method를 이용하여 해당 자원의 행위를 규정하여 그 결과를 받는 것

HTTP Method는 크게 GET, POST, PUT, DELETE가 대표적이고,
보통 CRUD에서 조회는 GET, 등록은 POST, 수정은 PUT, 삭제는 DELETE를 이용한다.

GET과 DELETE는 비교적 그 행위가 명확한 편이지만, POST와 PUT을 구분하기 위해 멱등성의 개념을 알 필요가 있다.

✔️ 멱등성(Idempotent)이란

여러번 수행해도 결과가 같음을 의미한다.
HTTP Method로 예를 들자면, GET, POST, DELETE는 같은 경로로 여러번 호출해도 결과가 같다.
그러나 POST는 매 호출마다 새로운 데이터가 추가된다.
따라서, POST 연산은 결과가 달라지지만, PUT은 반복 수행해도 그 결과가 달라지지 않고 Idempotent하다.

✔️ PUT VS PATCH

PATCH와 PUT은 둘 다 데이터 수정을 위한 Method이다.

  • PATCH, which is used to apply partial modifications to a resource
  • PUT method requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload

예를 들어, PUT 요청 시 요청을 일부분만 보낸 경우 나머지는 default 값으로 수정되는 게 원칙이므로, 바뀌지 않는 속성까지 모두 보내야한다.
수정된 값만 보낼 경우, 보내지 않은 데이터는 default값으로 변경되어버린다.

그러나 PATCH를 이용하여 변경할 부분에 대한 요청만 보낸다면, 새롭게 바뀐 부분만 반영되며 나머지는 기존의 데이터가 유지된다.

따라서, 자원의 일부를 수정할 때는 PATCH를, 전체적인 수정이 필요할 때는 PUT을 이용하는 것이 적절하겠다.

출처: https://devuna.tistory.com/77 [튜나 개발일기:티스토리]

profile
차근차근 일상을 기록하는 컴공생 👩🏻‍💻
post-custom-banner

0개의 댓글