자동화가 중간에 멈췄을 때: 재시도와 중복 처리 막기
주문·정산 자동화에서 처리 장부와 업무 키를 사용해 부분 성공, 응답 유실, 중복 실행에 대응하는 방법을 설명합니다.
자동화가 멈췄다면 전체 작업을 다시 돌리기 전에 무엇이 이미 처리됐는지 확인하세요. 주문번호 같은 업무 키와 처리 장부를 두면 완료된 건은 건너뛰고, 결과가 불확실한 건은 대상 시스템을 조회한 뒤 남은 작업을 재개할 수 있습니다.
이 방식은 주문 등록, 발주, 정산 파일 반영, 고객 알림처럼 같은 작업이 두 번 실행될 때 문제가 생기는 업무에 적합합니다. 단순 조회는 재시도가 비교적 쉽지만, 발주나 발송은 상대방 시스템에 이미 반영됐는지부터 살펴야 합니다.
실패 메시지와 실제 결과는 다를 수 있습니다
가상 예시로 쇼핑몰 주문 세 건을 공급처에 보내는 자동화를 생각해 보겠습니다. 첫 주문은 등록되고 두 번째 주문을 보내는 동안 응답이 끊겼습니다. 담당자 화면에는 ‘실패’가 표시됐지만 공급처가 두 번째 주문을 이미 저장했을 수도 있습니다. 이때 세 건을 통째로 다시 보내면 두 번째 주문이 중복 발주될 수 있습니다.
- 일단 중지
새 발주와 자동 재시도를 멈추고 실행 ID와 업무 키를 찾습니다.
- 대상 조회
공급처에 해당 주문이 등록됐는지 주문번호와 결과 ID로 확인합니다.
- 상태 정리
이미 등록된 건은 완료로, 결과를 모르는 건은 확인 대기로 둡니다.
- 남은 건 재개
미처리로 확인된 건만 다시 보내고 결과를 장부에 기록합니다.
결과 조회가 불가능하고 공급처가 중복 방지 키도 지원하지 않는다면 불확실한 발주는 담당자가 공급처에 확인한 뒤 처리합니다. 전송 요청의 성공과 실제 업무 완료는 별개의 상태로 둡니다. 알림을 받았다는 사실이 곧 배송 완료라는 뜻은 아닌 것처럼, API 응답도 그 시스템의 정의에 맞게 해석해야 합니다.
같은 일을 식별하는 키를 정합니다
업무 키는 어떤 거래에 대해 어떤 행동을 처리하는지 구분합니다. 주문번호만 쓰면 하나의 주문에서 최초 발주와 변경 발주가 구분되지 않을 수 있습니다. 주문번호에 작업 종류와 변경 버전을 붙이는 등 업무 규칙에 맞게 구성합니다.
| 식별 대상 | 키의 예 | 주의할 점 |
|---|---|---|
| 원본 파일 | 파일 해시 | 같은 내용을 다시 스캔한 파일은 해시가 다를 수 있음 |
| 주문 행 | 판매 채널 + 주문번호 + 품목 행 | 여러 품목이 한 주문에 들어갈 수 있음 |
| 발주 행동 | 주문 행 + 발주 종류 + 변경 버전 | 정정 발주는 최초 발주와 구분 |
| 외부 요청 | 지원되는 경우 공급처에 전달한 중복 방지 키 | 키의 유효 기간과 재사용 규칙을 상대 시스템과 확인 |
파일 전체가 중복이 아니어도 내부의 주문 행은 이미 처리됐을 수 있습니다. 반대로 같은 주문의 변경분은 새 파일에 들어올 수 있습니다. 파일 접수 중복과 개별 업무 행의 중복을 따로 검사해야 하는 이유입니다. 어떤 항목의 변경을 새 행동으로 인정할지도 업무 담당자와 정합니다.
처리 장부에 남길 상태
자동화의 실행 로그만으로는 각 주문이 어디까지 처리됐는지 찾기 어려울 수 있습니다. 업무 키별 처리 장부를 별도 저장소에 두고 실행마다 갱신하면 담당자가 남은 건을 찾기 쉽습니다.
| 업무 키 | 상태 | 외부 결과 | 담당자 행동 |
|---|---|---|---|
| 주문 A · 최초 발주 | 완료 | 공급처 접수 ID 기록 | 재발송하지 않음 |
| 주문 B · 최초 발주 | 확인 대기 | 응답 유실 | 공급처 조회 후 완료 또는 재처리 |
| 주문 C · 최초 발주 | 접수 | 아직 보내지 않음 | 앞선 불확실 건 정리 후 처리 |
상태는 접수, 처리 중, 완료, 실패, 확인 대기 정도로 시작할 수 있습니다. 처리 중인 항목이 오래 남으면 담당자가 실행 기록과 대상 시스템을 확인하도록 알립니다. 동시에 같은 키를 처리하려는 실행이 들어올 때는 저장소에서 선점이나 고유 제약 등으로 경쟁을 제어해야 합니다. 화면 표시와 함께 저장소의 동시 처리 제어를 적용합니다.
n8n의 오류 처리 문서는 실패 실행과 오류 워크플로를 설명합니다. 이 알림 기능은 실패를 발견하는 데 도움이 되지만, 업무 키의 유일성이나 상대방의 중복 발주 방지까지 대신 설계해 주지는 않습니다. 별도 저장소와 대상 시스템의 조회·중복 방지 기능을 함께 검토합니다.
재시도를 어디에 넣을까
목록 조회처럼 결과를 바꾸지 않는 요청은 일시적인 통신 오류나 요청 제한에서 간격을 두고 재시도할 수 있습니다. 문서 처리처럼 비동기로 접수되는 작업은 새 요청을 반복하기 전에 기존 작업의 상태와 결과를 조회합니다. 업스테이지 대용량 문서 처리 안내는 작업 상태 조회와 요청 제한 대응 예시를 제공합니다.
반면 메일 발송, 발주, 결제 요청처럼 외부 상태를 바꾸는 작업은 같은 키로 중복 방지를 지원하는지 먼저 확인합니다. 지원하지 않으면 결과 조회 또는 사람 확인을 거쳐 재실행합니다. 반복 횟수와 간격, 최종 실패 알림의 수신자도 정해야 무한 반복으로 장애를 키우지 않습니다. 주소 오류나 권한 만료처럼 기다려도 해결되지 않는 오류는 담당자가 원인을 고친 뒤 다시 처리합니다.
운영 전 꼭 해볼 세 가지 시험
- 같은 이벤트 두 번: 같은 주문을 두 번 접수합니다. 장부의 업무 키와 대상 시스템의 발주 건수를 대조해 한 번만 처리되는지 확인합니다.
- 응답 유실: 대상 시스템에서 처리한 뒤 응답이 끊긴 상황을 만듭니다. 재시작한 작업이 즉시 재발송하지 않고 결과를 조회하거나 확인 대기로 보내는지 봅니다.
- 일부 성공: 여러 행 중 일부만 처리된 상태에서 중단합니다. 완료된 행은 유지하고 미처리 행만 재개되는지 확인합니다.
시험 기록에는 입력 키, 실행 시각, 상태 변경, 외부 결과 ID, 최종 업무 결과와 담당자의 판정을 남깁니다. 재처리 버튼도 중복 클릭했을 때 같은 키가 동시에 실행되지 않는지 확인합니다. 사람이 수동으로 처리한 건은 장부에도 반영해야 다음 자동 실행이 이를 다시 보내지 않습니다.
장애가 났을 때 담당자가 볼 목록
알림에는 오류 위치, 발생 시각, 업무 키, 실행 ID, 확인할 대상과 다음 행동을 담습니다. 개인정보나 문서 전체를 알림에 싣기보다 권한이 있는 화면에서 상세를 확인하도록 연결합니다. 운영자는 자동 재시도를 멈춘 뒤 대상 시스템의 결과를 확인하고, 미처리 건만 재개합니다. 공급처 확인이 필요한 경우 누가 연락하고 장부에 결과를 기록할지 정해 둡니다.
로보텍스트는 현재 자동화의 처리 단계를 살펴 중복이 생기는 지점, 업무 키와 상태 장부, 오류 알림 및 재처리 화면을 설계합니다. 기존 주문·정산 시스템과 연결하고 위 세 가지 상황으로 담당자와 결과를 대조합니다.
멈추는 단계와 다시 실행했을 때 생기는 문제를 hello@robotext.co.kr로 알려 주세요. 완료 확인이 필요한 지점부터 함께 정리하겠습니다.
관련 글: 주문·재고 관리 자동화 · 거래명세서 OCR 검수 · AI 실행 승인 설계
로보텍스트와 업무에 적용하기
반복 업무를 설명해 주세요. 구현할 순서를 잡겠습니다
- 문의에 적어주실 내용
- 현재 작업 순서, 사용하는 프로그램과 반복 주기. 가린 예시나 업무 설명이면 충분합니다.
- 함께 정할 내용
- 우선 자동화할 작업, 연결 방법과 사람이 승인할 단계을 정리합니다.
hello@robotext.co.kr