반응형
💡 “수정인데… PUT? PATCH? 그냥 아무거나 써도 되나?”
API 설계할 때, 많이 헷갈리는 부분!
"수정할 땐 PUT? PATCH? 둘 다 되는 거 아냐?"
실제로는 둘 다 수정용 메서드지만
역할이 다릅니다.
오늘은 그 차이를 확실하게 알려드릴게요! 😊
🛠️ PUT이란?
PUT은
"리소스 전체를 새로 덮어쓰기(교체) 하는 메서드"입니다.
📦 특징:
- 전체 업데이트 (Replace)
- 없는 경우 새로 생성도 가능
- 보통 완전한 데이터를 보내야 함
예시:
PUT /users/1
Body: {
"name": "John",
"age": 30
}
→ id가 1번인 사용자의 이름과 나이를 둘 다 새로 세팅
→ 만약 email 같은 다른 속성도 있었다면, 이 요청에는 포함해야 함
→ 안 보내면 그 필드는 사라질 수도 있음!
🔧 PATCH란?
PATCH는
"리소스의 일부분만 수정하는 메서드"입니다.
📦 특징:
- 부분 업데이트 (Partial Update)
- 수정할 필드만 보내면 됨
- 다른 필드는 그대로 유지
예시:
PATCH /users/1
Body: {
"age": 31
}
→ id 1번 사용자의 나이만 31로 수정,
→ 나머지 name, email 같은 값은 그대로 유지.
🆚 PUT vs PATCH 비교표
항목 | PUT | PATCH |
목적 | 전체 수정 (교체) | 부분 수정 (변경) |
없는 경우 | 새로 생성 가능 | 기존이 없으면 에러 |
요청 데이터 | 모든 필드 필요 | 수정할 필드만 필요 |
예시 | 회원 정보 전체 수정 | 회원 나이만 수정 |
⚠️ 실무에서 헷갈리는 예시
상황 | 올바른 선택 |
회원가입 시 정보 전체 업데이트 | PUT |
닉네임만 수정 | PATCH |
상품 정보 전체 교체 | PUT |
상품 설명만 수정 | PATCH |
🧠 실무에서 이 원칙만 기억하세요!
“전체 수정 = PUT, 부분 수정 = PATCH”
“없으면 PUT은 새로 만들 수도 있음, PATCH는 기존이 없으면 에러”
✅ 코드 예시 (Node.js, Express):
app.put('/users/:id', updateUserAllFields);
app.patch('/users/:id', updateUserSomeFields);
🧩 왜 PUT/PATCH를 구분할까?
- API가 의도를 명확하게 전달 → 협업 시 실수 방지
- 데이터 손실 위험 줄이기 (PATCH로 일부만 건드림)
- RESTful 설계 원칙에 맞춰서 깔끔하게 API 구성
📌 다음 예고: "세션, 쿠키, JWT? 로그인 상태 유지 방식 깔끔 정리!"
- 세션이랑 쿠키가 뭐가 다른 거야?
- JWT는 왜 요즘 많이 쓰일까?
- 실무에서 상황별로 뭘 써야 할지 알려드릴게요!
반응형
'개발 공부 > 서버' 카테고리의 다른 글
[서버 기초] Proxy와 Reverse Proxy, 헷갈리는 프록시 개념 쉽게 이해하기! (0) | 2025.05.02 |
---|---|
[서버 기초] 세션, 쿠키, JWT? 로그인 상태 유지 방식 깔끔 정리! (0) | 2025.05.01 |
[서버 기초] HTTP 상태 코드 200, 404, 500… 에러코드 총정리! (0) | 2025.04.29 |
[서버 기초] GET과 POST 비교, 도대체 뭐가 다른 거야? (0) | 2025.04.28 |
[서버 기초] 포트(Port)란? IP랑 뭐가 다른데? 포트랑 IP의 차이점 (0) | 2025.04.25 |