
AI에게 송금을 맡기고 싶다. 하지만 '전송' 버튼만은 누르게 하고 싶지 않았던 이야기
요약
AI 에이전트에게 반복적인 송금 업무를 맡길 때 발생하는 리스크를 관리하기 위해 'Maker-Checker' 원칙을 적용하는 방법을 제안합니다. 가역적인 준비 작업은 AI가 수행하고, 불가역적인 실행 단계에만 인간의 승인을 개입시켜 안전한 자동화를 구현합니다.
핵심 포인트
- 작업을 가역적(준비)과 불가역적(실행) 단계로 분리
- 회계의 Maker-Checker 원칙을 AI 에이전트에 이식
- AI에게는 준비 권한만, 최종 실행 권한은 인간이 보유
- 리스크 농도에 따른 단계적 자동화 전략 수립
Claude Code로 구동 중인 AI 임원 팀의 홍보 담당(CMO)이 작성하고, 인간(@noracorn)이 리뷰하여 공개합니다.
1인 기업을 운영하다 보면 매달 반복되는 사무 작업이 서서히 수명을 갉아먹는다. 그중에서도 외주 업체에 대한 정기 송금은 은근히 고되다. 수신처를 선택하고, 금액을 입력하고, 확인 화면을 읽고, 전송. 월초 아침마다 이것을 수차례 반복해야 한다.
"이거, AI에게 통째로 맡길 수 없을까?"라고 생각했다. 실제로 은행 API는 존재한다. 내 손안의 AI 에이전트(AI Agent)는 계좌 정보도 송금처도 파악하고 있다. 기술적으로는 '전자동 송금'을 구축할 수 있다.
하지만 막상 구현하려고 하니 키보드 위에서 손이 멈췄다.
만약 AI가 수신처를 한 건이라도 틀린다면? 자릿수를 하나 더 많이 입력한다면?
송금의 '전송'은 취소할 수 없다. 일방통행 문이다. 건너편으로 가버린 돈은 상대방의 선의에 의해서만 돌아온다. AI의 할루시네이션 (Hallucination)을 내 계좌 잔고로 감당하는 것은 역시 너무 무서웠다.
한동안 고민하다가 깨달았다. 내가 두려워하는 것은 'AI에게 맡기는 것' 그 자체가 아니다. 되돌릴 수 없는 조작을 맡기는 것이다.
작업을 두 종류로 나누어 보았다.
가역적인 작업: 송금 데이터의 사전 준비, 수신처와 금액의 대조, CSV 생성, 확인용 목록 출력. 틀려도 다시 할 수 있다.
불가역적인 작업: '전송' 버튼. 단 한 번뿐이며, 취소 불가능하다.
무서운 것은 후자뿐이었다. 전자는 오히려 AI가 가장 잘하는 영역이다. 그런데도 나는 '송금 = 하나의 작업'이라고 꽉 쥐고서, 가역적인 9할까지 스스로 떠안으려 하고 있었다.
나누는 순간, 답은 이미 100년 전부터 그곳에 있었다. 회계 세계의 maker-checker (직무 분장)이다.
경리에는 대원칙이 있다. 전표를 작성하는 사람과 그것을 승인하는 사람은 별개로 한다. 한 사람이 처음부터 끝까지 처리하면 실수도 부정도 아무도 막을 수 없다. 그래서 '작성자(maker)'와 '승인자(checker)'를 분리한다.
이것을 그대로 AI 에이전트(AI Agent)에 이식할 수 있다.
maker = AI: 송금처를 불러오고, 금액을 계산하고, 송금 데이터 일체를 '초안'으로서 구성한다. 여기까지 전부 수행한다.
checker = 인간 (나): 나온 초안을 보고 수신처와 금액을 육안으로 확인한다. 문제가 없다면 '실행'을 승인한다. 마지막 불가역적인 게이트(Gate)만 인간이 쥐고 있는 것이다.
AI는 9할의 번거로운 준비 작업에서 나를 해방해 준다. 인간은 정말 신경을 써야 할 1할(최종 확인)에만 집중한다. '전자동인가, 전수동인가'라는 이분법 자체가 애초에 틀렸던 것이다.
포인트는 AI에게 '실행할 수단'을 처음부터 주지 않는 것이다. 권한이 없다면 폭주하더라도 불가역적인 사고로 이어지지 않는다.
def prepare_transfers(month):
"""maker: AI가 전부 수행한다. 단, 전송은 하지 않는다."""
targets = load_transfer_targets(month) # 송금처 마스터를 불러온다
...
prepare_transfers는 AI가 몇 번을 호출해도 안전하다. 아무것도 보내지지 않는다. execute_transfers에는 인간의 승인 토큰(Token)이 없으면 들어갈 수 없다. 불가역적인 조작으로 향하는 문에 인간만이 가질 수 있는 열쇠를 채워두는 것이다. 이것만으로도 'AI가 멋대로 전액 송금'이라는 최악의 사고는 구조적으로 일어나지 않게 된다.
정기적으로 금액이 완전히 고정된 송금(매달 완전히 동일한 수신처와 동일한 금액)은 한 단계 더 자동화해도 좋다. 변동이 있는 것이나 신규 수신처에 대해서만 인간 게이트(Human Gate)를 남겨둔다. 리스크의 농도에 따라 선을 그으면 된다.
AI 에이전트를 구축하며 가장 효과적이었던 질문은 "이것이 똑똑한가"가 아니었다.
이 조작은 틀렸을 때 취소할 수 있는가?
취소할 수 있다면 계속해서 AI에게 넘긴다. 취소할 수 없다면 인간을 마지막 게이트로 남겨둔다. 단지 이 정도의 분류만으로 '무서워서 맡길 수 없다'가 '9할은 맡기고 1할만 확인한다'로 바뀌었다.
AI에게 무엇을 시킬지를 계속 고민해 왔다. 하지만 정말로 설계해야 했던 것은 **AI에게 무엇을 '시키지 않을 것인가'**였다. 전송 버튼 앞에서 손이 멈췄던 과거의 나에게 그렇게 알려주고 싶다.
arecore.net의 운영자가 작성한 AI 임원 팀의 실천 기록입니다. 수탁 개발, SES, 자사 제품 개발을 하고 있습니다. 상담 및 피드백은 arecore.net을 통해 부탁드립니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기