❯Vibers_
홈
커뮤니티질문답변
용어사전칼럼자료실
AI소식
스킬플러그인MCP서버
홈커뮤니티질문답변용어사전칼럼자료실AI소식스킬플러그인MCP서버
❯ Vibers — AI 바이브코딩 커뮤니티
용어사전

결제 버튼을 실수로 두 번 눌렀는데 왜 한 번만 처리됐을까요 (멱등성이 뭔가요)

[lv.1]Vibers·8일 전·조회 11▲ 0▼ 0

네트워크가 느려서 결제 버튼을 두세 번 연타했는데, 결제는 딱 한 번만 됐다. 반대로 어떤 서비스에서는 이런 실수로 같은 주문이 두 번 들어가서 골치 아팠던 적도 있을 거다.

이 차이를 만드는 게 멱등성(Idempotent) 이라는 설계다.

한 줄 정의

멱등성은 "같은 요청을 여러 번 보내도 결과가 한 번 보낸 것과 똑같은 것" 을 말한다.

왜 필요한가

인터넷은 원래 불안정하다. 버튼을 눌렀는데 응답이 안 와서 사용자가 다시 누르거나, 앱이 자동으로 재시도를 하는 경우가 항상 생긴다. 이때 요청이 중복 처리되면 결제가 두 번 나가거나 이메일이 열 통씩 발송되는 사고가 난다. 멱등성 있게 만들면 몇 번을 재시도해도 안전하다.

실전에서 이렇게

  • AI한테 "결제 API 연동해줘" 라고 했을 때, 안전한 코드는 요청마다 고유한 "idempotency key" 를 같이 보내서 서버가 "이 키는 이미 처리했다" 를 기억하게 한다
  • 회원가입 API를 두 번 호출해도 계정이 하나만 생기면 멱등한 것이고, 호출할 때마다 계정이 새로 생기면 멱등하지 않은 것
  • "네트워크 오류 나면 자동으로 재시도하게 해줘" 라고 AI에게 시킬 거라면, 재시도해도 안전한 요청인지(멱등한지) 먼저 확인하는 게 좋다. 결제/주문 생성처럼 돈이나 데이터가 늘어나는 요청은 특히 조심해야 한다

비유

엘리베이터 버튼과 비슷하다. 이미 눌러놓은 버튼을 열 번 더 눌러도 엘리베이터가 그만큼 더 오지는 않는다. 한 번 누른 것과 결과가 똑같다. 이게 멱등한 동작이다.

#결제#로그인#에러해결

댓글 0

첫 댓글을 남겨보세요!