새로운 질서 위키

멱등성

멱등성(Idempotence)은 같은 연산을 여러 번 적용해도 한 번 적용한 뒤의 결과가 더 변하지 않는 성질이다. HTTP에서는 동일한 요청을 반복했을 때 서버에 의도한 효과가 한 번의 요청과 같은지를 따진다. 응답을 받기 전에 연결이 끊겼을 때 요청을 다시 보내도 되는지 판단하는 데 쓰인다. (RFC 9110의 멱등성 정의)

  • 예를 들어 편집기의 너비 값을 800으로 설정하는 연산은 같은 설정을 반복해도 800이다. 현재 너비에 10을 더하는 연산은 반복할 때마다 달라진다. 여기서는 파일을 실제로 다시 압축하는 과정이 아니라 너비라는 값의 설정만 비교한다.
  • 자료를 가져오는 기능에서도 같은 레코드를 재전송할 때 새 항목을 계속 만드는지, 같은 식별자의 항목을 갱신하는지에 따라 결과가 달라진다. 지속 식별자와 중복 처리 규칙은 이러한 재시도를 설계할 때 함께 검토할 수 있다.
  • 반복해도 효과가 같다는 것과 실행 전으로 되돌릴 수 있다는 것은 다르다. 삭제를 여러 번 요청해도 삭제 상태는 같지만, 복구에는 백업 같은 별도의 수단이 필요하다. 가역성과 멱등성은 서로 다른 질문이다.

기타 등등

  • HTTP의 DELETE는 규격상 멱등 메서드다. 첫 요청과 뒤의 요청이 서로 다른 응답을 보내더라도 서버에 의도한 효과가 같다면 이 성질에 어긋나지 않는다. 출처
  • 규격은 멱등 요청마다 접속 로그나 수정 이력을 따로 남기는 것을 허용한다. 요청이 요구한 효과와 서버가 부수적으로 남기는 기록을 구분하기 때문이다. 출처

#개념 #프로그래밍 #웹

검색