HTTP프로토콜에서는 리소스를 업데이트하기위해 'PUT'과 'PATCH' 메서드를 사용한다.
이 두가지 메서드는 리소스를 업데이트하는데 사용된다는 공통점이 있지만 그 목적과
동작 방식에서 중요한 차이점이 있다.
전체 업데이트 (Full Update)
'PUT' 메서드는 리소스의 전체를 업데이트합니다. 요청 시 제공된 데이터가 기존 리소스의 모든 데이터를 대체한다.
예를 들어, 클라이언트가 사용자 정보를 업데이트할때 'PUT' 요청을 보내면, 제공된 사용자 정보로 기존 정보가 완전히 대체된다..
멱등성(Idempotency)
'PUT' 메서드는 멱등성을 가집니다. 즉, 동일한 'PUT' 요청을 여러번 보내더라도 결과는 항상 동일하다.
이로인해 네트워크 오류 등으로 인해 동일한 요청이 여러 번 전송되더라도 일관성을 유지할 수 있다.
PUT /users/123
Content-Type: application/json
{
"name": "John Doe",
"email": "john.doe@example.com"
}
위 코드를 보면 ID가 123인 사용자의 정보를 새로운 데이터로 완전히 대체합니다.
부분 업데이트(Partial Update)
'PATCH'메서드는 리소스의 일부만 업데이트합니다. 요청시 제공된 데이터만 변경되며, 나머지 데이터는 그대로 유지됩니다.
예를 들어, 클라이언트가 사용자 이메일을 업데이트할 때 'PATCH' 요청을 보내면, 제공된 이메일 정보만 변경되고 나머지 사용자 정보는 변경되지 않습니다.
멱등성(Idempotency)
'PATCH' 메서드도 멱등성을 가질 수 있지만, 구현에 따라 다를 수 있다.
동일한 'PATCH' 요청을 여러 번 보내도 결과가 동일해야 하는것이 일반적이다.
PATCH /users/123
Content-Type: application/json
{
"email": "john.doe.new@example.com"
}
위 코드를 보면 ID가 123인 사용자의 이메일 정보만 업데이트한다.