-
Idempotent Key프로그래밍/기록, 개념, 용어 2020. 6. 14. 11:56반응형
Idempotent(멱등): 여러 번 연산 해도 결과가 달라지지 않는.
Idempotent key, Idempotentcy key, Idem... 등의 이름
네트워크 환경 위에서 구동되는 소프트웨어의 경우, 우연치 않게 같은 작업이 2번 이상 요청되는 것을 막기 위해 사용하는 키, 또는 값에 이 이름을 사용하기도 함.
for safely retrying requests without accidentally performing the same operation twice.
이 개념을 활용하면 다음 상황을 어느정도 예방할 수 있음
0. 유저는 출금 요청을 보냄. 그러나 유저는 네트워크 환경이 안 좋아서 응답을 못 받음.
1. 유저는 요청이 처리 안 된줄 알고 한번 더 출금 요청을 보냄
2. 그러나 실제로는 유저의 2번 요청이 모두 서버로 갔기 때문에 2번 출금이 됨
0. 유저는 NPC에게 물약을 구매 함. 그 순간 컴퓨터에 렉이 발생해 유저는 한번 더 구매를 누름.
1. 그러나 실제로는 유저의 2번 요청이 모두 서버로 갔기 때문에 물약이 2개 구매 됨
구현 시 주의 사항
1번의 리퀘스트 마다 Idempotent key를 변경하는 건 의미가 없다. 같은 버튼이 2번 눌려 2번의 요청이 갈 경우 경우, 각 요청들은 다른 Idempotent key를 가지게 되어, 2번의 요청 모두 정상 처리가 될 것이므로.
https://stripe.com/docs/api/idempotent_requests
https://ko.wikipedia.org/wiki/%EB%A9%B1%EB%93%B1%EB%B2%95%EC%B9%99
반응형'프로그래밍 > 기록, 개념, 용어' 카테고리의 다른 글
코드 스멜(CODE SMELL) (0) 2020.10.29 비교문 최적화에 도움 되는 개념. 드 모르간 법칙(De Morgan's laws) (1) 2020.07.03 컴퓨터에서의 문자 표현 (0) 2020.05.28 verbose 모드 (0) 2018.12.08 poll api 이벤트들 (0) 2018.04.18