본문 바로가기
개발 공부/서버

[서버 기초] PUT과 PATCH 차이, 수정인데 뭐가 다르지?

by 악마의 개발자 2025. 4. 30.
반응형

PUT과 PATCH 차이


💡 “수정인데… 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는 왜 요즘 많이 쓰일까?
  • 실무에서 상황별로 뭘 써야 할지 알려드릴게요!
반응형