• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

PUT vs PATCH

24.04.17 22:34 작성 24.04.17 22:36 수정 조회수 102

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요.

api설계 중 고민이 있어 질문드립니다.

 

이메일, 이름, 전화번호 를 필드로 갖는 회원 테이블이라고 가정하겠습니다.
수정 가능한 정보는 이름, 전화번호 일 때, 어떤 방식으로 설계하는 것이 적절한지 여쭙고 싶습니다.


1) PATCH members/{id} 로 수정하고자 하는 필드만 body에 받는 방식

2) PUT members/{id}/name , PUT members/{id}/phone 로 각각 받는 방식

추가로 2)방식처럼 수정할 요소를 주소에 명시한다면 해당 요소 관점에서는 덮어쓰는 것이기 때문에 PATCH보다 PUT이 적절한 게 맞는지 궁금합니다!

답변 2

·

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2024.04.17

안녕하세요. 안꼉쓴슬픔이님, 공식 서포터즈 OMG입니다. 

AI 답변과 AI 답변 링크의 영한님의 답변을 참고해주세요 🙂

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.17

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

안꼉쓴슬픔이님의 질문은 HTTP 메서드인 PUT과 PATCH의 올바른 사용법과 관련하여, 특히 회원 정보를 수정하는 API 설계 상황에서 어떤 방법이 더 적절한지에 대한 고민입니다.

이러한 질문에 대해, 김영한 강사님의 “HTTP PUT, PATCH”와 관련된 답변이 도움이 될 것 같습니다. 여기에서 김영한 강사님은 PUT과 PATCH의 사용 상황에 대해 설명하며, 특히 회원 정보와 같은 리소스의 부분 수정이 이루어질 때는 PATCH를 사용하는 것이 HTTP 스펙에 더 부합한다고 언급합니다. PUT 메서드는 전체 리소스를 대상으로 하는 경우에 더 적합하다는 점을 강조하셨습니다.

또한, 다른 질문인 “rest api를 만드려고 할 때 put과 patch”에서는 실제 개발 현장에서 PUT과 PATCH 중 어떤 것을 사용할지에 대한 고민에 답변하고 있습니다. 여기에서는 일부 정보만 변경할 때는 PATCH가 적합하며, 전체 리소스를 갱신하고자 할 때 PUT을 사용하는 것이 일반적이라고 설명되어 있습니다. 하지만 최종 결정은 백엔드 처리 방법과 프로젝트의 약속에 따라 달라질 수 있다고 합니다.

귀하의 경우에는 이름과 전화번호만 수정 가능하다면, 첫 번째 방법인 PATCH member/{id}로 request body에 해당 변경 사항을 명시하는 방식이 더 적절하다고 볼 수 있습니다. 이는 필요한 부분만을 선택적으로 수정할 수 있는 PATCH 메서드의 특성과 일치합니다. 두 번째 방식은 특정 필드의 전체를 갱신하는 개념이 강화됩니다만, 실제로는 리소스의 특정 부분(필드)만을 목표로 하기 때문에, 귀하의 사례는 첫 번째 방식이 더 권장됩니다.

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