TIL/BackEnd

멱등성 API?

JoJobum 2023. 10. 15.

멱등(Idempontent)성, 멱등성 API란?

첫 번째 수행한 결과와 그 후 여러 차례 반복하여 수행한 결과가 동일한 작업 또는 그 속성을 의미함

⇒ 즉 멱등한 API라면 2번 이상 요청해도 결과가 처음 요청과 똑같이 돌아와야 한다.

    단순히 돌아온 값만 같을 뿐만 아니라 DB에도 영향 없어야 함.

⇒ 의도하지 않은 문제 발생시키지 않고 요청을 재시도할 수 있음

 

예를 들어 이미 HTTP 메소드들 중에서

GET, PUT 같이 여러번 호출해도 매번 같은 리소스로 대체되거나 조회되는 경우 멱등성이 보장된 메소드라고 볼 수 있음

반면, 서버 데이터를 변경하는 POST, PATCH 의 경우 호출할 때마다 응답이 달라지기에 멱등하지 않음

 

API 통신에 멱등성을 보장하고자 한다면?

 

멱등키를 API 요청에 포함하자

이전 요청과 동일한 멱등키를 가진 요청을 받으면 서버에서 이러한 요청을 중복으로 판단하고,

실제로 처리하지 않고 첫 번째 요청과 동일한 응답을 반환하는 방식

 

Flow 

1. API 서버는 요청의 헤더에 멱등키 여부 확인

2. 멱등키 DB 조회 후 멱등키와 매칭되는 요청 기록 있는지 확인하고

  • 3.1 있다면 저장해둔 응답 데이터 반환
  • 3.2 없다면 실제 로직 수행하고, (멱등키, 응답 데이터) 저장하고 응답 데이터 반환

 

references

MSA 환경에서 네트워크 예외를 잘 다루는 방법 | 카카오페이 기술 블로그 (kakaopay.com)

멱등성이 뭔가요? (tossbusiness.com)

반응형

댓글