HTTP 메서드에서 멱등성이란 무엇인가요?

2024. 12. 17. 10:27·백엔드 면접

동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다. 대표적으로 멱등한 메서드는 GET, HEAD, PUT, DELETE, OPTIONS가 있습니다.

 

멱득성은 오직 사용자 요청에 의한 리소스만을 고려합니다. 구현에 따른 부작용은 고려하지 않습니다. 또한, 재요청 중간에 리소스가 변경된 것도 고려하지 않습니다.


PATCH 메서드가 멱등하지 않은 이유는 무엇인가요?

 

PATCH 메서드는 대상 리소스를 대체해버리는 PUT 메서드와 달리 대상 리소스의 일부만 변경할 때 사용되는 메서드입니다. PATCH 메서드는 꽤 범용적으로 사용됩니다. 기존 리소스에 응답을 추가하는 경우에도 PATCH가 사용될 수 있습니다. 이때 호출 결과가 달라질 수 있기 때문에 항상 멱등하다고 볼 수 없습니다.


멱등성은 어떻게 활용될 수 있나요?

모종의 이유로 전송 커넥션이 끊어졌을 때 멱등성은 클라이언트가 다시 같은 요청을 해도 되는가에 대한 판단 근거가 될 수 있습니다. 멱등하다면 요청을 재시도할 때 같은 서버의 상태를 보장하기 때문에 문제가 없습니다.

하지만 멱등하지 않다면 재시도 요청 시 중복 요청을 보내 문제가 발생할 수 있습니다. 예를 들어 사용자가 결제하는 시점에 타임아웃으로 인해 정상 응답을 못 받는 상황인 경우 멱등하지 않은 결제 API일 경우에는 결제가 성공했는지 수동으로 확인하고 재요청해야 합니다. 반면 멱등한 결제 API의 경우에는 안심하고 여러 번 요청할 수 있으며 중복 요청으로 발생하는 문제(중복 결제)를 방지할 수 있습니다.

'백엔드 면접' 카테고리의 다른 글

갭락과 넥스트키 락은 무엇이며, 어떻게 팬텀 리드를 방지하나요?  (0) 2024.12.19
데이터베이스 시스템에서 동시성을 제어하는 방법에 대해서 설명해주세요.  (0) 2024.12.18
웹사이트에 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요.  (0) 2024.12.16
스레드, 프로세스, 코어는 많을수록 좋을까요?  (0) 2024.12.14
단위 테스트와 통합 테스트의 차이점은 무엇인가요?  (0) 2024.12.12
'백엔드 면접' 카테고리의 다른 글
  • 갭락과 넥스트키 락은 무엇이며, 어떻게 팬텀 리드를 방지하나요?
  • 데이터베이스 시스템에서 동시성을 제어하는 방법에 대해서 설명해주세요.
  • 웹사이트에 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요.
  • 스레드, 프로세스, 코어는 많을수록 좋을까요?
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링
    raid
    오블완
    백엔드 면접
    토스 페이먼츠
    JPA
    티스토리챌린지
    자바
    데브코스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
HTTP 메서드에서 멱등성이란 무엇인가요?
상단으로

티스토리툴바