← 이야기 목록
생산성·AI

📄 계약서를 클라우드에 올리지 않고 자동화하기 — 어디까지가 내 컴퓨터 안인가

공공 계약 문서 8종을 자동화하려다 절반쯤에서 멈췄습니다. 되는 것과 안 되는 것보다 중요했던 건, 문서 내용이 어느 지점에서 밖으로 나가는지 아는 일이었어요.

2026년 8월 26일

계약 관련 서류를 반복해서 만드는 일이 있습니다. 착수계, 부분준공신고서, 대금청구서, 공문, 보안서약서 같은 것들이요. 매번 같은 회사 정보를 넣고 날짜만 바꾸는 작업이라 자동화하고 싶었습니다. 그런데 이건 아무 도구에나 올릴 수 있는 문서가 아니었어요. 계약 상대방과 금액이 들어 있으니까요.

자동화보다 먼저 그어야 할 선

“AI로 문서 자동화”라고 하면 대개 문서를 어딘가에 올리고 결과를 받는 방식을 떠올립니다. 편하죠. 그런데 계약서에는 상대 회사명, 계약 금액, 담당자 이름이 들어 있습니다. 이 내용이 어디로 가는지 모르면 쓸 수 없는 종류의 문서예요.

그래서 자동화 방법을 고르기 전에 선부터 그었습니다. 문서 내용이 내 컴퓨터를 벗어나는 지점이 어디인가.

이 질문으로 보면 작업이 두 종류로 갈립니다.

문서를 읽고 값을 채워 넣는 일   → 밖으로 나갈 이유가 없음
문장을 다듬거나 만들어주는 일   → 내용을 밖으로 보내야 함

앞쪽은 그냥 프로그램이 하는 일입니다. 정해진 자리에 정해진 값을 넣는 거니까 판단이 필요 없어요. 뒤쪽은 다릅니다. 문장을 만들려면 문맥을 알아야 하고, 그러려면 내용을 넘겨야 합니다.

제가 필요했던 건 전부 앞쪽이었습니다. 그래서 뒤쪽은 아예 쓰지 않기로 했어요.

공통 정보는 한 곳에만 둡니다

작업의 핵심은 단순했습니다. 회사 정보를 JSON 파일 하나에 모아두는 것.

{
  "회사명": "○○건설",
  "사업자번호": "000-00-00000",
  "대표자": "홍길동",
  "주소": "...",
  "계약번호": "2026-000"
}

문서 8종이 전부 이 파일을 참조합니다. 예전에는 계약이 갱신되면 서류마다 열어서 고쳤어요. 하나 빠뜨리면 서류 사이에 값이 어긋나고요. 지금은 파일 하나만 고치면 전부 반영됩니다.

이게 자동화의 진짜 이득이었습니다. 문서를 빨리 만드는 것보다 값이 어긋나지 않는 것이 컸어요. 서류 여덟 장에서 계약번호가 제각각이면 다시 만드는 것보다 찾는 데 시간이 더 듭니다.

직접 만든 도구도 틀립니다

숫자를 한글 금액으로 바꾸는 부분을 만들었습니다. 1,250,000일백이십오만원정 으로 바꾸는 거죠. 계약서에 반드시 들어가는 항목입니다.

여기서 버그가 나왔습니다. “일백”과 “일천”이 누락되는 경우가 있었어요. 백의 자리나 천의 자리가 1일 때 “일”을 빼먹는 문제였습니다.

금액 표기가 틀리면 서류를 다시 받아야 합니다. 다행히 발견 즉시 두 가지를 했어요. 자바스크립트와 파이썬 양쪽에 같은 로직이 있어서 동시에 고쳤고, 과거에 제출한 서류를 전부 뒤져 영향받은 게 있는지 확인했습니다. 없었습니다.

여기서 배운 게 있습니다. 같은 로직이 두 군데 있으면 한쪽만 고치게 됩니다. 그때는 급해서 양쪽을 다 고쳤지만, 애초에 한 곳에만 두는 게 맞았어요. 지금도 이 부분은 숙제로 남아 있습니다.

그리고 계산기든 변환기든, 만든 사람이 맞다고 생각하는 것과 실제로 맞는 것은 다릅니다. 자릿수마다 1이 들어가는 경우를 전부 넣어 시험해봤어야 했어요.

절반은 실패했습니다

8종 중 5종은 넘어갔습니다. 나머지 3종은 포기하고 예전 방식을 유지하고 있어요.

안 된 것들에는 공통점이 있었습니다.

  • 붙임 목록이 매번 달라지는 문서 — 항목 수가 고정이 아니라 틀을 만들 수가 없었습니다
  • 여러 명을 순서대로 끼워 넣어야 하는 문서 — 인원이 늘고 줄 때마다 구조가 바뀝니다
  • 표가 내용에 따라 늘어나는 문서 — 행 수가 정해지지 않으면 자리에 값을 넣는 방식이 안 통합니다

전부 구조가 고정되지 않은 문서입니다. 자동화가 잘 듣는 건 “빈칸이 정해져 있고 값만 바뀌는” 문서였어요. 빈칸의 개수 자체가 바뀌면 얘기가 달라집니다.

억지로 밀어붙일 수도 있었지만, 예외 처리를 계속 붙이다 보면 손으로 하는 것보다 오래 걸립니다. 자동화가 안 맞는 문서를 알아보는 것도 결과라고 생각하기로 했어요.

편해지려다 선을 넘는 지점

마지막으로 하나 적어둡니다. 자동화 도구를 AI에 연결하는 방법이 요즘 여럿 있습니다. 연결해두면 “이 계약서 요약해줘” 같은 것도 되니 확실히 편해요.

그런데 그 순간 문서 내용이 모델로 전송됩니다. 파싱은 여전히 내 컴퓨터에서 돌지만, AI가 답하려면 내용을 봐야 하니까요. 처리 위치와 전송 여부는 다른 얘기입니다.

이걸 구분하지 않으면 “로컬에서 도는 도구니까 안전하다”고 착각하기 쉽습니다. 실제로 그렇게 생각했었고요. 지금은 민감한 문서를 다룰 때는 AI 연결을 끊고 직접 실행하는 방식으로만 씁니다. 편의를 좀 포기하는 대신 내용이 어디로도 안 갑니다.

정리

문서 자동화에서 제일 먼저 정해야 했던 건 도구가 아니라 선이었습니다. 내용이 밖으로 나가는 지점이 어디인지, 이 문서는 그 선을 넘어도 되는지.

그리고 정직하게 적자면 절반쯤 성공했습니다. 구조가 고정된 문서는 잘 됐고, 그렇지 않은 것은 여전히 손으로 만듭니다. 전부 자동화하겠다는 목표를 버리고 나니 오히려 쓸 만해졌어요.

만든 도구를 믿지 않는 것도 배웠습니다. 금액 표기 하나 틀리는 데 코드 몇 줄이면 충분하더군요.

다른 이야기 보기 홀로라도 도구 →