AI 보이는 추론 실험실 · 재시도와 멱등성

AI가 응답을 못 받았다고 다시 실행하면 주문이 두 번 생길까?

첫 요청이 처리됐지만 응답만 사라진 경우를 살펴봅니다. 같은 작업 키를 쓰는 재시도와 새 요청으로 처리하는 재시도의 결과를 비교합니다.

심화게시 2026-09-27읽기·실험 약 12분확인 문제 2개교육용 계산한국논리학협회 자체 제작제작·검수 LTCT 편집부

운영실에서 직원들이 주문 재시도 기록을 대조하고 작은 갈색 안경 LTCT 올빼미가 곁에서 중복 방지 키 카드를 확인하는 장면
주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작
오늘의 질문

AI가 주문 생성 도구를 호출한 뒤 시간 초과를 만났습니다. 실패했다고 단정하고 새 주문을 만들면 어떤 일이 생길 수 있을까요?

첫 주문 요청의 결과를 받지 못한 뒤 같은 작업 키로 재시도하면 기존 결과를 찾고, 새 키로 재시도하면 중복 주문 가능성이 생기는 관계 그림입니다.
첫 주문 요청의 결과를 받지 못한 뒤 같은 작업 키로 재시도하면 기존 결과를 찾고, 새 키로 재시도하면 중복 주문 가능성이 생기는 관계 그림입니다. · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

시간 초과는 서버가 아무 일도 하지 않았다는 뜻이 아닙니다

클라이언트가 응답을 받지 못한 이유는 여러 가지입니다. 요청이 서버에 닿기 전에 끊겼을 수도 있고, 서버가 주문을 만든 뒤 응답이 돌아오는 길에 사라졌을 수도 있습니다. 클라이언트만 보면 두 상태가 모두 ‘응답 없음’으로 보일 수 있습니다.

두 번째 상태에서 새 주문 요청을 보내면 같은 주문이 두 번 만들어질 수 있습니다. 따라서 부작용이 있는 작업은 재시도 전에 원래 처리 상태를 확인할 방법이 필요합니다.

02

멱등성은 같은 논리 작업의 반복 효과를 한 번으로 묶습니다

RFC 9110은 멱등하지 않은 요청을 자동으로 재시도하려면 원래 요청이 적용되지 않았음을 알거나 요청 의미를 멱등하게 만드는 수단이 필요하다고 설명합니다.

이 활동에서는 논리 주문마다 고유한 작업 키를 붙입니다. 재시도에서 같은 키와 같은 요청을 보내면 서버가 이미 만든 결과를 찾아 반환하고 새 주문을 만들지 않는다고 가정합니다. 다른 주문에는 새 키를 써야 합니다.

참고 · R. Fielding, M. Nottingham, J. Reschke · RFC Editor (2022-06) — 멱등한 요청과 재시도 ↗

03

키만 같다고 모든 문제가 해결되지는 않습니다

같은 키에 서로 다른 요청 본문을 붙이면 충돌로 다뤄야 합니다. 서버가 키를 얼마나 오래 보관하는지, 처리 중 요청과 완료 요청을 어떻게 구분하는지, 외부 결제와 재고가 같은 거래 경계에 있는지도 설계해야 합니다.

응답을 못 받았다는 이유로 무조건 재시도하거나, 재시도를 금지하는 것 모두 충분하지 않습니다. 조회 가능한 작업 상태, 안정적인 작업 키, 사후 확인 기록을 함께 두어야 합니다.

직접 확인하기 · 교육용 계산

처리 상태·응답·작업 키를 바꾸며 가능한 주문 수 보기

첫 요청의 서버 처리 여부와 응답 수신 여부, 재시도 때 같은 작업 키를 쓰는지를 바꾸는 교육용 모형입니다. 같은 키와 같은 요청 본문을 서버가 기억해 기존 결과를 돌려준다고 가정합니다. 실제 결제·주문 시스템을 호출하지 않습니다.

첫 요청의 주문1건
재시도가 만든 새 주문0건
가능한 총 주문1건
클라이언트가 첫 결과를 앎아니요
한 건의 주문만 남는 가상 경로입니다.

서버가 같은 키와 같은 요청을 기존 작업으로 식별한다고 가정합니다. 응답 수신과 서버 처리는 서로 다른 상태입니다.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1첫 주문이 서버에서 만들어졌지만 응답만 사라졌습니다. 재시도에서 새 작업 키를 쓰면 어떤 위험이 있나요?
2같은 작업 키를 안전하게 다시 쓰기 위한 조건으로 가장 알맞은 것은 무엇인가요?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

0 / 4,000자

메모는 현재 기기의 브라우저에만 보관됩니다. 계정이나 다른 기기에는 동기화되지 않습니다.

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. 멱등한 요청과 재시도 ↗R. Fielding, M. Nottingham, J. Reschke · RFC Editor (2022-06)RFC 9110 — HTTP Semantics, Section 9.2.2 Idempotent Methods

    응답을 받기 전에 연결이 끊겼을 때 멱등한 요청은 재시도할 수 있지만, 멱등하지 않은 요청은 원래 요청이 적용되지 않았음을 알거나 의미를 멱등하게 만드는 수단이 없으면 자동 재시도하지 말아야 한다는 범위를 확인했습니다. 주문 사례는 자체 모형이며 결제 지침이 아닙니다.