학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 134 · 실전 면접 답변

HTTP의 PUT과 PATCH는 자원 갱신 의미와 멱등성(Idempotency)에서 어떤 차이가 있나요?

이렇게 답해 보세요 (핵심 답변)

PUT은 대상 자원의 상태를 요청한 표현으로 생성하거나 완전히 교체하는 의미여서 여러 번 보내도 결과 상태가 같은 멱등(Idempotent) 메서드입니다. 반면 PATCH는 부분 변경 명령을 적용하므로, 단순 값 대입이면 멱등할 수 있지만 '카운터 1 증가' 같은 연산이면 호출할 때마다 결과가 달라져 비멱등일 수 있습니다. 동시 수정 환경에서는 ETag와 If-Match 조건부 요청을 함께 사용해 다른 사용자의 변경을 덮어쓰는 충돌을 예방합니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 네트워크 오류 후 자동 재시도를 넣을 때 PUT은 같은 본문을 다시 보내기 수월하지만, 비멱등 PATCH는 별도의 멱등성 키(Idempotency-Key)나 버전 확인 계약이 필요합니다.
  2. 멱등성은 여러 번 요청했을 때 서버 자원의 의도된 상태 효과가 같다는 뜻이며, 매번 돌아오는 HTTP 상태 코드나 응답 시각까지 완전히 똑같아야 한다는 뜻은 아닙니다.

면접에서 자주 하는 실수

PUT을 '데이터베이스의 모든 컬럼을 무조건 물리적으로 갈아엎는 구현 방식'으로 외우거나 PATCH는 언제나 멱등하다고 단정하면 안 됩니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 134번을 바탕으로 질문과 답변을 새로 정리했습니다.

← 네트워크