RESTful API를 설계할 때, 많은 개발자가 PUT과 POST의 차이에 대해 혼란을 겪습니다.
두 메서드는 모두 리소스를 생성하거나 업데이트하는 데 사용되지만, 사용 목적과 동작 방식에서 중요한 차이점이 있습니다.
이번 포스팅에서는 PUT과 POST의 차이를 살펴보겠습니다.
PUT 메서드는 리소스를 생성(Create)하거나 수정(Update)하는 데 사용됩니다.
클라이언트가 명확한 URL을 지정하여 리소스를 저장합니다.
요청이 여러 번 반복되더라도 결과가 변하지 않는 멱등성(Idempotency)을 가집니다.
기존 리소스가 존재하면 업데이트, 존재하지 않으면 새로 생성합니다.
POST 메서드는 주로 새로운 리소스를 생성하는 데 사용됩니다.
클라이언트는 리소스를 저장할 위치를 직접 지정하지 않고, 서버가 결정합니다.
요청을 여러 번 보낼 경우, 매번 새로운 리소스가 생성될 수 있습니다. (멱등성이 없음)
기존 리소스를 수정하는 용도로는 사용되지 않음.
리소스의 ID가 이미 정해져 있고, 같은 요청을 여러 번 보내더라도 동일한 결과를 원할 때
ex) 사용자 프로필 업데이트, 특정 상품 정보 수정
새로운 리소스를 생성하고, ID를 서버에서 자동으로 생성하도록 할 때
ex) 새로운 게시글 작성, 회원 가입 요청