PATCH와 PUT은 모두 HTTP 메서드 중 하나로, 리소스를 업데이트하기 위해 사용됩니다. 그러나 두 메서드의 작동 방식과 사용 사례에는 몇 가지 중요한 차이점이 있습니다.
PUT
완전한 리소스 교체: PUT 메서드는 지정된 URI에 있는 리소스의 전체를 새로운 내용으로 대체합니다. 만약 해당 URI에 리소스가 없다면 새로 생성될 수 있습니다.
항등성 (Idempotent): 동일한 PUT 요청을 여러 번 수행하더라도 결과가 항상 동일합니다.
완전성 요구: 요청 본문에 리소스의 모든 필드값을 포함해야 합니다.
PATCH
부분적 리소스 수정: PATCH 메서드는 리소스의 일부만을 수정합니다.
항등성이 없을 수 있음: PATCH는 상황에 따라 항등성을 보장하지 않을 수 있습니다. 즉, 동일한 PATCH 요청을 여러 번 수행하면 결과가 달라질 수 있습니다.
부분적 업데이트: 요청 본문에는 변경하려는 필드만 포함됩니다. 그렇기 때문에 더 효율적인 네트워크 사용이 가능합니다.
예시
PUT: 사용자의 모든 정보 (이름, 이메일, 주소 등)를 업데이트할 때 사용
http
Copy code
PUT /users/123
{
"name": "John",
"email": "john@example.com",
"address": "123 Main St"
}
PATCH: 사용자의 이메일만 업데이트할 때 사용
http
Copy code
PATCH /users/123
{
"email": "new-email@example.com"
}
PATCH는 보통 작은 업데이트나 변경이 필요할 때, PUT은 리소스의 전체를 교체하거나 새 리소스를 생성할 때 사용됩니다.