인프런 커뮤니티 질문&답변

parkm2ngyu00님의 프로필 이미지

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP API 설계 예시

PUT, PATCH method 관련 질문

24.02.24 20:55 작성

·

490

0

HTTP method 중 put과 patch에 대해서 공부하고 아 그렇구나~ 하는 와중 갑자기 뜬금없는 질문이 떠올라서 질문드립니다.

 

put은 내용 전체를 덮어쓰는 method이고 patch는 일부만 수정이 가능한 method 라고 배웠는데, 이것도 결국 http request를 backend상에서 어떻게 처리를 하느냐에 따라 달라지는 것 아닌가요? patch request를 받았다고 한들 backend단에서 데이터를 지우고 덮어쓰는 로직을 작성하면 put method와 같은 동작이 되는 것 아닌가요..? 그냥 backend 로직 구현은 염두하지 않고 그냥 그렇게 사용하기로 약속을 한 것인지 궁금합니다.

 

이상한 질문일수도 있지만 갑자기 문득 생각나서 질문 올려봅니다.

 

감사합니다.

답변 2

1

codesweaver님의 프로필 이미지

2024. 02. 25. 16:19

안녕하세요. parkm2ngyu00님, 공식 서포터즈 코즈위버 입니다.

말씀하신 내용이 맞습니다. PUT, PATCH 메서드에 대한 스펙은 표준으로 정의된 내용입니다.

그러나 실제로는 백엔드에서 어떻게 구현하냐에 따라 스펙 표준과 다른 결과를 낳을 수 있습니다.

가령 API 중에서는 조회는 GET, 그 외는 POST 하나로 통일하고 나머지 HTTP 메서드는 사용을 금지하는 경우도 있습니다.

감사합니다.

1

인프런 AI 인턴님의 프로필 이미지

2024. 02. 24. 21:01

안녕하세요, 인프런 AI 인턴입니다.

parkm2ngyu00님의 질문에 대해, 유사한 내용을 다루는 기존의 질문들 중 관련성이 높은 답변을 찾아본 결과를 공유드립니다.

“put과 patch에 대해 질문드립니다”
- 이 게시물에서는 put과 patch의 차이점에 대해 설명하고 있습니다. 질문자의 경우, 게시판 글 수정과 같은 상황에서 put과 patch 중 어느 것을 사용해야 할지에 대한 혼란을 겪고 있습니다. 같은 강의의 지식공유자 김영한 님이 답변에서 put은 모든 데이터를 전달해야 한다는 스펙을 가지고 있으며, patch는 원하는 값만 전달해서 변경할 수 있다고 설명하고 있습니다. 실제로 여러 상황에서 patch가 적합한 경우가 있다고 합니다. 이 내용은 parkm2ngyu00님의 질문에 대한 이해를 돕는 데 유용할 것입니다.

“안녕하세요. 질문 드립니다!”
- 여기에서는 HTTP 메서드인 PUT과 PATCH에 대해 제시된 스펙이나 정의가 실제 메서드의 기능인지, 아니면 가이드인지에 대한 의문이 제기되었습니다. 지식공유자 김영한 님은 이에 대해 HTTP 메서드 스펙에 대해 설명하고, 웹 서버와 브라우저가 기본 기능을 어떻게 처리하는지에 대해서도 논의하였습니다. 이는 백엔드가 구현하는 방식에 따라 기능이 달라질 수 있음을 나타내는 예시로, parkm2ngyu00님의 궁금증에 부합합니다.

“PUT, PATCH 관해서 질문 드립니다.”
- 다른 수강생이 PUT과 PATCH 사용에 대해 일반적으로 PATCH가 더 많이 사용되는지에 대해 질문한 글입니다. 공식 서포터즈의 답변에서는 API 사용 시 대부분 GET, POST를 사용하고, PUT은 리소스 교체 같은 경우에 주로 사용하는 경향이 있다고 언급합니다. 이는 PUT과 PATCH의 사용 상황에 대한 보다 구체적인 이해를 제공할 수 있습니다.

이 외에도 다음 URL에 있는 내용이 유용할 수 있습니다.
“rest api를 만드려고 할 때 put과 patch”
- 이 글에서는 게시물 수정, 회원 정보 수정과 같은 기능 구현 시 PUT과 PATCH 중 어떤 메서드를 더 많이 사용하는지에 대한 질문이 나옵니다. 서포터즈가 답변한 내용은 HTTP 메서드의 스펙과 실제 구현 방식의 차이에 대해 설명하고 있으며, 이 내용은 백엔드 로직 구현에 대한 질문자님의 궁금증에 대한 답변을 찾을 때 참고가 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.