sgkstudio.
엔지니어링

AI자동화 견적 발송, 약관 위반 링크 5건: 규칙은 이미 있었다

AI자동화로 견적 메시지를 만들 때 규칙을 문서에 적어 두는 것만으로는 누수를 막지 못했습니다. 외주 플랫폼 약관이 채팅 안의 외부 링크를 금지한다는 사실을 10월 4일에 기록해 두었는데도, 이틀 뒤 시안 링크가 채팅방 5곳에 나갔습니다. 같은 기간 대표 지적 83개 중 21개(25%)가 이처럼 규칙이 있는데도 다시 나온 지적이었고, 저희는 규칙을 더 쓰는 대신 발송 직전에 기계가 막는 구조로 바꿨습니다.

2026-10-17측정 기간: 2026년 10월 4일~7일, 복기 작성 2026년 10월 8일원자료: 작업 세션 기록에 남은 대표 발화 원문 전수, 플랫폼 메시지 읽기 전용 조회(10월 7일 21시)처음 숫자: 정식 견적 3건 수정 52바퀴, 지적 83개 중 규칙이 이미 있던 지적 21개(25%), 약관 위반 링크가 나간 채팅방 5곳반증된 가설: '시안은 눌러 봐야 설득된다 → 링크를 채팅에 넣는다'는 약관 제12조와 충돌조치: 규칙 34개를 한 파일로 모아 생성 프롬프트에 전부 투입, 기계 판정 가능한 15개는 검사기로 차단, 채팅 본문·첨부 OCR에서 링크 차단재측정: 누수 변형 25종 전부 검출, 재현 평가 3회(오탐 3종 → 6건 → 5건), 목표 '2회 연속 0건' 미달로 자동 초안 스위치는 꺼 둠

AI자동화 견적 발송에서 무엇이 문제였나?

결론부터 적습니다. AI자동화로 견적 메시지를 만들 때 반복 실수를 막은 것은 규칙 문서가 아니라 발송 직전의 기계 검사였습니다. 저희는 외주 플랫폼 약관이 채팅 속 외부 링크를 금지한다는 사실을 10월 4일 19시 1분에 기록해 두었습니다. 그런데 10월 6일 하루에만 시안 링크가 고객 채팅방 5곳에 나갔고, 10월 7일 10시 21분에는 새 초안에 같은 링크가 또 들어왔습니다.

상황은 이랬습니다. 숨고 같은 외주 중개 플랫폼에서는 고객이 요청서를 올리면 여러 업체가 견적을 보냅니다. 저희는 요청서를 읽고 답장·디자인 시안·제안서·견적서를 만드는 일을 AI 에이전트에게 맡겼고, 대표가 결과물을 보고 고칠 점을 짚었습니다. 에이전트가 '완성했다'고 보고하면 대표가 지적하고, 에이전트가 고치는 왕복이 이어졌습니다.

이 왕복이 비쌌습니다. 정식 제안서·견적서까지 간 고객은 3건이었는데, 3건에서 이 왕복은 모두 52바퀴였습니다. 한 건은 혼자서 35바퀴를 돌았습니다. 대표 시간이 그대로 들어가는 구조라, 자동화를 붙였는데 사람 손은 오히려 더 들었습니다.

링크 건은 그중에서도 위험이 컸습니다. 다른 지적은 문장이 어색하거나 가격 설명이 부족한 수준이지만, 링크는 플랫폼 약관 위반입니다. 약관은 개인 홈페이지·SNS 주소를 노출해 우회 거래를 유도하면 회원 자격 상실 사유로, 견적에 연락처를 적어 직접 연락을 유도하면 모든 기능 사용 정지 사유로 정해 두고 있습니다. 실수 한 번이 영업 채널 하나를 통째로 잃는 일로 번질 수 있었습니다.

이 글은 같은 기간의 복기 기록을 다른 각도에서 다시 읽은 글입니다. 규칙 34개를 한 파일로 모은 과정은 AI업무자동화 견적서, 지적 83개 중 21개는 이미 규칙이 있었다에 따로 적었습니다. 여기서는 '규칙이 있었는데 왜 지나갔나'를 가장 선명하게 보여 준 링크 누수를 축으로, 그 해법이 어디까지 통했는지를 정리합니다.

처음 잰 숫자: 지적 83개와 링크가 나간 채팅방 5곳

측정은 두 갈래로 했습니다. 첫째, 10월 4일부터 7일까지 작업 세션 기록에서 대표 발화 원문을 전부 꺼내 고객별로 끊어 읽었습니다. 에이전트가 '완료·발송 가능'이라고 낸 뒤 대표가 지적해 고친 항목 하나를 누수 1건으로 셌습니다. 둘째, 플랫폼 메시지를 읽기 전용으로 전수 조회해 실제로 무엇이 나갔는지 확인했습니다. 기억이 아니라 원문과 발송 기록으로 판정하려는 의도였습니다.

지적은 모두 83행이었습니다. 각 행마다 지적 전에 이미 규칙이 있었는지, 지적 뒤에 규칙을 새로 적었는지, 어디에도 없었는지를 표시했습니다. 지적 전에 규칙이 있었는데 또 나온 경우를 '배선 누수'라고 불렀습니다. 규칙은 있었으나 만드는 자리까지 연결되지 않았다는 뜻입니다.

고객별 수정 바퀴와 누수
고객수정 바퀴누수 행그중 규칙이 이미 있던 지적
고객 A (법률 사무소)35406
고객 B (환경 업체)6128
고객 C (병원)11145
그 밖의 고객·공통-172
합계528321

수정 바퀴는 정식 제안서·견적서를 보낸 3건만 셌다.

막대그래프. 고객별 누수 행과 그중 규칙이 이미 있던 지적. 고객 A 40행 중 6행, 고객 B 12행 중 8행, 고객 C 14행 중 5행, 그 밖 17행 중 2행. 합계 83행 중 21행(25%)
고객 B는 12행 중 8행이 이미 있던 규칙을 어긴 지적이었다

분류를 보면 형식 18행, 절차 14행, 돈 13행, 범위 13행, 말투 10행, 월 운영비 6행, 계정 3행, 권리 2행, 약관 2행, 사실 2행이었습니다. 83행 중 60행은 기계로 판정할 수 있었고, 23행은 사람 판단이 필요했습니다. 약관 행은 2행뿐이지만, 그 뒤에는 이미 나가 버린 링크 5건이 있었습니다.

플랫폼 메시지를 전수로 조회하자 링크가 나간 채팅방은 5곳으로 확인됐습니다. 10월 6일 9시 54분에 1곳, 11시 37분에 3곳, 12시 48분에 1곳입니다. 모두 금지 규칙을 기록한 10월 4일 19시 1분보다 뒤였습니다.

세운 가설: 시안은 눌러 봐야 설득된다

링크를 보낸 데에는 나름의 이유가 있었습니다. 10월 6일 오전, 저희는 '데모 링크는 숨고 채팅에 넣어 보낸다'고 결정했습니다. 근거는 단순했습니다. 디자인 시안은 고객이 직접 눌러 보고 스크롤해 봐야 설득력이 생기고, 스크린샷만 보내면 그 경험이 빠진다고 봤습니다. 실제로 이 결정 기록은 '링크 없이 스크린샷만'을 '눌러 보는 것이 핵심'이라는 이유로 기각했습니다.

데모 링크는 숨고 채팅에 넣어 보낸다. 링크 없이 스크린샷만 보내는 안은 눌러 보는 것이 핵심이라 기각.

이 가설 자체는 영업 논리로 틀리지 않았습니다. 대표도 '100마디 말보다 1의 실행이 낫다'며 요구사항을 받으면 시안부터 만들어 바로 보내자고 했습니다. 다른 업체는 이 정도도 하지 않을 가능성이 높다는 판단이었습니다. 문제는 이 결정이 약관을 보지 않은 채 내려졌다는 점입니다.

반복 지적 전반에 대해서도 첫 가설이 있었습니다. '규칙이 모자라서 지적이 나온다. 체크리스트 문장을 보강하면 된다.' 지적이 나올 때마다 규칙 문장을 하나씩 추가하는 방식이었고, 처음에는 그게 당연해 보였습니다.

  • 가설 1: 시안은 눌러 봐야 설득된다 → 링크를 채팅에 넣는다
  • 가설 2: 반복 지적은 규칙이 모자라서 나온다 → 체크리스트 문장을 보강한다
  • 가설 3(나중에 기각): 운영에 먼저 올리고 실제 문의에서 누수를 검수한다

가설은 어디서 틀렸나?

가설 1은 약관에서 틀렸습니다. 숨고 이용약관 제12조는 채팅 안의 외부 연락 수단, 곧 주소·URL·QR·전화·이메일 노출을 막습니다. 허용하는 길은 플랫폼이 제공하는 메시지 기능이나 전화 같은 별도 연결 수단으로 세부 사항을 조정하는 것뿐입니다. '눌러 보게 하자'는 설득 논리가 맞아도, 그 수단이 링크라면 쓸 수 없었습니다.

더 아픈 지점은 따로 있었습니다. 이 약관 조항은 10월 4일 18시 51분, 다른 고객에게 거절 답장을 쓰다가 이미 원문으로 확인했습니다. 그때는 홈페이지 주소를 빼고 보냈고, 19시 1분에 지식 기록·플랫폼 메모·판단 카드 세 곳에 적어 두었습니다. 규칙은 있었습니다. 이틀 뒤 결정을 내린 작업 세션이 그 기록을 읽지 않았을 뿐입니다.

표. 링크 금지 규칙의 시간순 경과. 10월 4일 18시 51분 약관 확인, 19시 1분 기록, 10월 6일 9시 54분 첫 링크 발송, 11시 37분 3명, 12시 48분 1명, 19시 1분 경로 전환, 10월 7일 10시 21분 재발, 10시 23분 발송 전 검사 추가
규칙을 적은 뒤에도 링크는 다섯 번 나갔고, 기계 검사를 붙인 뒤에야 멈췄다

10월 6일 19시 1분, 고객 A에게 13쪽 완성본을 보내면서 경로를 바꿨습니다. 시안 주소와 견적서는 고객이 요청한 메일로 보내고, 채팅에는 링크 없이 안내만 남겼습니다. 이때 12시 48분에 나간 링크를 발견했습니다. 같은 날 밤 23시 24분에는 다른 고객의 진단 시안을 링크 없이 사진으로 보내기로 정했습니다.

그런데도 끝나지 않았습니다. 10월 7일 0시 18분, 또 다른 고객의 초안에 링크가 들어갔다가 결정 기록과 대조하는 과정에서 걸렸습니다. 10시 21분에는 새 고객에게 보낼 시안 메시지에 링크가 다시 들어간 초안이 올라왔고, 대표가 다른 작업 세션의 결론(링크 금지)을 직접 전달해야 했습니다. 규칙은 두 번 확인됐고 세 번 적혔는데, 초안은 계속 그 규칙을 모르는 상태로 태어났습니다.

가설 2도 같은 자리에서 무너졌습니다. 83행 중 21행, 25%가 '규칙이 이미 있었는데 다시 지적'이었습니다. 체크리스트 문장을 보강하는 방식이 바로 그 21행이 새어 나온 방식이었습니다. 문장을 하나 더 쓰면 읽어야 할 문장이 하나 늘 뿐, 읽힌다는 보장은 늘지 않았습니다.

진짜 원인은 무엇이었나?

원인은 규칙의 양이 아니라 규칙이 놓인 자리였습니다. 규칙은 지식 기록, 메모, 체크리스트, 결정 기록 여러 곳에 흩어져 있었고, 초안을 만드는 순간 그중 무엇을 읽을지는 그때그때 달랐습니다. 링크 금지 규칙은 지식 기록에 있었지만, 10월 6일 결정은 그 파일을 열지 않은 작업 세션에서 나왔습니다.

고객 B의 숫자가 이 구조를 잘 보여 줍니다. 고객 B는 누수 12행 중 8행이 이미 있던 규칙이었습니다. 다른 두 고객의 견적을 검토하며 쌓은 규칙이 고객 B 작업에 넘어오지 않은 탓입니다. 대표는 '다른 두 고객의 제안서·견적서를 검토하면서 챙길 사항이 굉장히 많았는데, 고객 B도 마찬가지일 테니 참고해서 확인해 보라'는 한 문장으로 6행 분량을 지적했습니다.

지금 다른 세션에서 약관 확인하니까 홈페이지 링크를 보내는 게 약관 위반이라고 해서 링크를 직접 메시지에 첨부해서 보내면 안 된다는 얘기가 나왔어.

이 지적에는 원인이 그대로 담겨 있습니다. 한 작업 세션이 알아낸 사실을 다른 작업 세션이 모릅니다. 사람이 그 사이를 오가며 결론을 실어 나르고 있었습니다. 자동화가 사람 손을 줄이기는커녕 사람을 '규칙 전달자'로 붙잡아 두고 있었습니다.

그래서 해법의 조건이 정해졌습니다. 첫째, 규칙의 정본은 한 곳에만 둔다. 둘째, 만드는 자리에서 그 정본 전체를 반드시 읽게 한다. 셋째, 기계로 판정할 수 있는 규칙은 읽혔는지에 기대지 않고 발송 직전에 막는다. 셋째가 링크 누수의 직접 해법입니다.

조치: 규칙 34개를 한 파일로, 링크는 발송 전 검사로 막았다

먼저 흩어진 규칙을 설정 파일 하나에 모았습니다. 규칙은 34개(P01~P34)이고, 각 규칙에 출처를 '작업 세션@시각' 형식으로 달았습니다. 이 34개를 생성 프롬프트에 전부 넣습니다. 골라 넣지 않는 이유는 골라 넣는 순간 '이번엔 무엇을 읽을까'가 다시 생기기 때문입니다.

다음으로 기계가 판정할 수 있는 15개를 검사기로 막았습니다. 링크·연락처 규칙은 따로 만들지 않고, 발송 전 검사가 이미 쓰는 금지 패턴 목록을 그대로 재사용했습니다. 같은 금지 규칙을 두 곳에 두면 언젠가 둘이 어긋나기 때문입니다. 지금은 채팅 본문과 첨부 파일 OCR(그림 속 글자 판독)을 같은 금지 패턴 목록이 검사합니다.

흐름도. 초안 생성 시 규칙 34개를 프롬프트에 전부 투입하고, 검사기가 기계 판정 가능한 15개를 확인하고, 발송 전 검사가 채팅 본문과 첨부 OCR에서 URL·QR·연락처를 찾아 하나라도 있으면 막는 구조
규칙은 '읽혀야 지켜지는' 자리와 '읽히지 않아도 막히는' 자리로 나눴다

링크 대신 보낼 형식도 정했습니다. 10월 7일 10시 23분, 설계 문서에 '채팅에는 대표 사진 1장과 시안 책자 PDF, 링크는 고객이 먼저 연락처를 준 경우 메일로만'을 확정했습니다. 발송 전 검사에는 'PDF 안 URL·QR 0개' 조건을 추가했습니다. 링크를 지운 PDF에 QR이 남아 있으면 같은 위반이기 때문입니다.

이미 나간 5곳은 소급해서 고치지 않기로 했습니다. 10월 7일 10시 17분, 자동화 설계 작업 세션이 링크가 나간 채팅 5곳을 집계한 뒤 내린 판단입니다. 지난 메시지를 손대기보다, 같은 일이 다시 일어나지 않게 발송 전에 막는 쪽에 힘을 썼습니다.

생성기에도 장치를 넣었습니다. 생성기는 고객 요구를 고객 원문 그대로 인용해 뽑고, 견적 범위의 줄마다 근거가 된 요구 번호를 답니다. 근거 없는 줄과 근거 없는 금액은 생성 단계에서 막히고, 그 경우 사람 판단으로 넘어갑니다. 또 서비스별 선제 질문지를 첫 메시지에 넣어, 나중에 범위를 다시 묻는 왕복을 줄이게 했습니다.

기각한 대안과 이유
대안기각 이유
체크리스트 문장만 보강21행이 바로 이 방식에서 새어 나온 누수
운영에 먼저 올리고 실제 문의에서 누수 검수3건 최종본이 이미 정답지라 재현 평가가 더 싸고 빠름
링크 없이 스크린샷만 (10월 6일 기각안)약관 확인 뒤 사진 1장 + PDF로 되살림

세 번째 줄은 처음에 기각했다가 약관 때문에 다시 채택한 안이다.

재측정 결과는 어땠나?

재측정은 세 층으로 했습니다. 첫째, 검사기가 실제로 누수를 잡는지 시험했습니다. 과거 누수를 변형한 사례 25종을 넣었고, 25종 전부 검출했습니다. 생성기 시험은 분기 8개를 확인했습니다.

둘째, 실제 발송물에서 링크가 사라졌는지 봤습니다. 10월 7일 10시 25분, 10시 21분에 걸린 고객의 발송물을 링크 없는 본문 748자, 사진 1장, 10쪽 PDF로 다시 준비했습니다. 이후 11시 57분 고객과 그다음 고객도 같은 형식으로 나갔습니다. 10월 7일 21시 기준 전수 조회에서 링크가 나간 채팅은 처음 집계한 5곳 그대로였습니다.

셋째, 재현 평가를 돌렸습니다. 정식 견적 3건의 당시 입력을 그대로 넣어 다시 생성하고, 결과를 지적 83행과 대조해 '대표가 다시 지적할 수준'의 누수가 몇 건 남는지 셌습니다. 판정할 때는 초안 원문을 반드시 인용하게 해, 근거 없는 판정을 막았습니다. 목표는 '2회 연속 0건'이었습니다.

재현 평가 회차별 결과
1회차검사 오탐 3종
2회차누수 6건
3회차누수 5건

1회차는 누수가 아니라 검사기 오탐 3종을 찾아 고친 회차다. 3회차는 3건 모두 생성·검사·OCR을 통과했다.

막대그래프. 재현 평가 3회 결과. 1회차 검사기 오탐 3종, 2회차 누수 6건, 3회차 누수 5건. 목표 2회 연속 0건에 미달
3회차에 3건 모두 생성·검사·OCR을 통과했지만, 사람이 다시 지적할 누수는 5건 남았다

결과는 목표 미달입니다. 1회차는 검사기 오탐 3종을 찾아 고치는 데 썼고, 2회차에 6건, 3회차에 5건이 남았습니다. 3회차에서는 3건 모두 생성·검사·OCR을 통과했습니다. 기계가 막을 수 있는 누수, 그러니까 링크·연락처 같은 것은 이제 통과하지 못합니다. 남은 5건은 사람 판단이 필요한 23행 쪽에 가까웠습니다.

그래서 자동 초안 스위치는 켜지 않았습니다. 같은 시도를 세 번 돌려 목표에 닿지 못하면 멈추고 사람에게 판단을 넘기기로 미리 정해 두었고, 그 규칙대로 멈췄습니다. 숫자를 맞추려고 판정 기준을 느슨하게 하지 않았습니다.

측정 도구가 최근 20건만 읽고 있었다

복기 중에 측정 도구 자체의 결함도 하나 나왔습니다. 플랫폼 메시지를 가져오는 수집 스크립트가 다음 페이지를 요청할 때 엉뚱한 매개변수(?cursor=)를 써서, 매번 최신 20건만 되풀이해 읽고 있었습니다. 고객 A 채팅은 27건이었는데 그중 7건이 빠져 있었습니다.

이 결함은 링크 집계와 직결됩니다. 메시지를 20건씩만 보면 오래된 대화에 섞인 링크는 집계에서 빠질 수 있습니다. 매개변수를 ?next=로 고치고 페이지 넘김 시험을 추가한 뒤에 전수 조회를 다시 돌렸습니다. 앞에서 적은 '채팅방 5곳'은 이 수리 뒤의 숫자입니다.

수집 스크립트 페이지 넘김 수리 전후
항목수리 전수리 후
다음 페이지 매개변수?cursor=?next=
한 채팅에서 읽은 메시지최신 20건 반복전체
고객 A 채팅 (27건)7건 누락누락 0건

수리 후 페이지 넘김 시험을 따로 두었다.

교훈은 단순합니다. 누수를 세는 도구가 틀려 있으면 '누수 0건'도 믿을 수 없습니다. 규칙을 검사하기 전에, 검사에 쓰는 데이터부터 전수로 맞는지 봐야 했습니다.

남는 한계는 무엇인가?

첫째, 사람 판단이 필요한 누수는 기계가 막지 못합니다. 83행 중 23행은 '이 고객에게 이 할인 조건이 적절한가', '이 말투가 생색으로 들리는가' 같은 판단이었습니다. 재현 평가 3회차에 남은 5건이 그 영역입니다. 판정에 쓰는 LLM도 '다시 지적할 수준'만 세므로 품질의 상한을 보장하지 않습니다.

둘째, 자동화 범위가 좁습니다. 디자인 시안과 참고 사이트 역설계는 여전히 사람이 이끄는 작업 세션 몫이라, 자동 초안은 '텍스트 제안서 + 견적서'까지만 다룹니다. 생성도 고성능 모델로 1건당 약 6분이 걸립니다.

셋째, 링크를 빼서 영업이 어떻게 달라졌는지는 아직 모릅니다. 스마트견적 이후 흐름은 리드 17건, 견적 열람 12건, 맞춤 제안 11건, 마지막 메시지 읽음 9건, 답장 5건, 정식 견적 3건, 고용 0건이었습니다. 링크를 보낸 5곳과 사진·PDF를 보낸 6곳의 진행 단계가 섞여 있어, 이 표본으로는 어느 형식이 더 낫다고 말할 수 없습니다.

스마트견적 이후 리드 흐름 (단계별 독립 집계)
스마트견적 발송17건
고객이 견적 열람12건
맞춤 제안 발송11건
마지막 메시지 읽음9건
고객 답장5건
정식 제안서·견적서3건
고용0건

10월 7일 21시, 플랫폼 메시지 읽기 전용 전수 조회 기준.

막대그래프. 스마트견적 이후 리드 흐름. 발송 17건, 열람 12건, 맞춤 제안 11건, 읽음 9건, 답장 5건, 정식 견적 3건, 고용 0건
정식 견적까지는 3건이 갔지만 고용은 아직 0건이다

넷째, 이미 나간 링크 5곳은 그대로 남아 있습니다. 소급 수정 없이 앞으로의 발송만 막기로 했기 때문에, 그 다섯 곳이 약관상 어떤 결과로 이어질지는 저희가 통제할 수 없습니다.

정리하면 이렇습니다. 규칙을 더 적는 것으로는 21행의 누수를 막지 못했고, 정본을 한 곳에 두고 만드는 자리에서 전부 읽히며 기계로 판정할 수 있는 것은 발송 직전에 막는 구조로 바꾸자 링크 같은 위반은 통과하지 못하게 됐습니다. 사람 판단이 필요한 누수는 아직 남았고, 그래서 자동 초안 스위치는 꺼 둔 상태입니다. 비슷하게 AI 에이전트로 견적·제안 업무를 자동화하다 같은 지적이 반복된다면 상담에서 상황을 들려주셔도 좋습니다.

작성: SGK 스튜디오. 이 글의 수치는 2026년 10월 4일~7일 작업 기록과 10월 8일 복기 문서에서 가져왔습니다.

같은 방식으로 우리 업무를 재보고 싶다면

이 글에 쓴 계측·판정·자동화는 저희가 실제로 매일 돌리는 방식 그대로입니다. 어떤 작업을 자동화할 수 있고 어디를 사람이 잡아야 하는지, 현재 업무 흐름을 놓고 같이 짚어 드립니다.

새 글이 올라오면 알려 드립니다

이런 계측 기록을 새로 쓰면 메일로 한 통 보냅니다. 광고나 판촉은 보내지 않습니다.