정의
리소스를 생성하거나 완전히 대체하는 데 사용되는 메서드
요청 본문에 포함된 데이터로 기존 리소스를 대체하며, 해당 리소스가 존재하지 않으면 생성됩니다.
특징
멱등성을 가지며, 전체 리소스를 덮어씀
전체 덮어쓰기: 지정된 리소스 전체를 새로운 데이터로 대체
멱등성 O: 동일한 PUT 요청을 여러 번 보내도 결과는 동일
본문 포함: JSON, XML 등으로 전체 리소스 상태를 보냄
리소스 생성 가능: 해당 리소스가 없으면 새로 생성됨
캐싱 제한적: 기본적으로 캐시되지 않지만 조건에 따라 허용 가능
사용 예시
리소스를 전체 수정하거나 새로 덮어쓸 때 사용
프로필 수정: 사용자 전체 정보(이름, 이메일 등) 업데이트
게시글 덮어쓰기: 기존 게시글을 새로운 내용으로 대체
설정 전체 변경: 환경 설정을 전체적으로 갱신
코드 예시
지정된 리소스를 전체 대체합니다.
// 사용자 정보 전체 수정 PUT 예시
fetch('/api/users/123', {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
username: 'jangho_updated',
email: 'jangho@updated.com',
age: 30
})
})
.then(res => res.json())
.then(data => console.log(data));
비교
데이터 무결성과 일관성을 고려해 사용해야 합니다.
PUT VS PATCH
정의PATCH는 리소스의 일부를, PUT은 전체를 수정합니다PATCH는 부분 업데이트에 적합하며, PUT은 전체 리소스를 명시적으로 갱신할 때 사용됩니다.무결성, 명확성, 일관성 측면에서 PUT은 안정적이
develop-enchantment.tistory.com