..

PUT vs PATCH 차이점 완벽 정리

리소스를 업데이트하는 두 가지 방식

HTTP 메소드 중 리소스를 수정할 때 사용하는 PUTPATCH는 목적에 따라 명확히 구분해서 사용해야 합니다.

1. PUT (전체 교체)

“리소스의 ‘전체’를 업데이트할 때 사용합니다.” 기존 리소스가 있다면 통째로 갈아 끼우고, 없다면 새로 생성하는 것이 원칙입니다.

  • 특징: 요청 데이터에 누락된 필드가 있다면, 해당 필드는 DB에서 null이나 기본값으로 초기화될 위험이 있습니다.

2. PATCH (부분 수정)

“리소스의 ‘일부’를 업데이트할 때 사용합니다.” 전체 데이터 중 변경이 필요한 특정 필드만 골라서 수정합니다.


예시를 통한 비교

원본 데이터:

{
  "name": "홍길동",
  "age": 18
}

상황: 나이만 20살로 변경하고 싶을 때

PUT 방식으로 요청할 경우

이름(name)은 변경하지 않더라도 전체 객체를 만들어서 보내야 합니다. 만약 age만 보내면 이름정보가 사라질 수 있습니다.

{
  "name": "홍길동",
  "age": 20
}

PATCH 방식으로 요청할 경우

변경이 필요한 일부 필드(age)만 전송하면 됩니다.

{
  "age": 20
}

데이터의 원형을 유지한 채 특정 부분만 톡 건드리고 싶다면 PATCH를, 해당 위치의 데이터를 완전히 새로운 내용으로 덮어쓰고 싶다면 PUT을 사용하는 것이 RESTful API 설계의 기본입니다.