..
PUT vs PATCH 차이점 완벽 정리
리소스를 업데이트하는 두 가지 방식
HTTP 메소드 중 리소스를 수정할 때 사용하는 PUT과 PATCH는 목적에 따라 명확히 구분해서 사용해야 합니다.
1. PUT (전체 교체)
“리소스의 ‘전체’를 업데이트할 때 사용합니다.” 기존 리소스가 있다면 통째로 갈아 끼우고, 없다면 새로 생성하는 것이 원칙입니다.
- 특징: 요청 데이터에 누락된 필드가 있다면, 해당 필드는 DB에서
null이나 기본값으로 초기화될 위험이 있습니다.
2. PATCH (부분 수정)
“리소스의 ‘일부’를 업데이트할 때 사용합니다.” 전체 데이터 중 변경이 필요한 특정 필드만 골라서 수정합니다.
예시를 통한 비교
원본 데이터:
{
"name": "홍길동",
"age": 18
}
상황: 나이만 20살로 변경하고 싶을 때
PUT 방식으로 요청할 경우
이름(name)은 변경하지 않더라도 전체 객체를 만들어서 보내야 합니다. 만약 age만 보내면 이름정보가 사라질 수 있습니다.
{
"name": "홍길동",
"age": 20
}
PATCH 방식으로 요청할 경우
변경이 필요한 일부 필드(age)만 전송하면 됩니다.
{
"age": 20
}
데이터의 원형을 유지한 채 특정 부분만 톡 건드리고 싶다면 PATCH를, 해당 위치의 데이터를 완전히 새로운 내용으로 덮어쓰고 싶다면 PUT을 사용하는 것이 RESTful API 설계의 기본입니다.