사회복지사 업무 자동화 도구 만들기 5편
결론부터 말하면, 문서는 잘 나왔고 저장이 안 됐습니다. 봇이 다른 직원 담당 사업의 회기 계획서를 제 문체로 써 냈고 상급자 이름도 지어내지 않았는데, 저장 관문이 두 번 거부했습니다. 사흘 전에 제가 만든 규칙이 원인이었습니다. 고치다가 대화가 끊기는 새 사고도 냈고, 저장한 문서를 지울 방법이 아예 없다는 것도 그때 알았습니다.
시리즈 「업무 자동화 툴 만들기」 · 8편 중 5번째

AI로 생성한 그림입니다
봇이 다른 직원 담당 사업의 회기 계획서를 한 건 써 냈습니다. 제 계정으로요.
8월 27일에 처음으로 실제 업무 문서를 뽑아 봤습니다. 문서는 좋았습니다. 그런데 저장이 두 번 거부됐고, 막은 것은 사흘 전의 제가 만들어 둔 안전장치였습니다.
이번 편에는 그 하루를 적습니다. 만들 때는 안 보이다가 실제로 써 봐야 보이는 것들만 모았습니다.
그날 걸린 것을 한 표로 모았습니다(2026년 9월 5일에 덧붙였습니다). 다섯 개 중 만들다가 찾은 것은 하나뿐이고, 나머지 넷은 실제로 써 보는 과정에서 나왔습니다.
| 그날 걸린 것 | 언제 드러났나 | 그날 한 조치 |
|---|---|---|
| 사업 대표 노트가 없어 저장이 거부됨 | 실기 | 예외를 좁게 뚫고, 저장하면서 대표 노트를 함께 만들게 함 |
| 초안을 안 보여주고 저장부터 시도해 초안이 날아감 | 실기 | 원인을 추정만 하고 확정 못 함 |
| 지시서 한 줄 때문에 승인 창이 안 열림 | 위 문제를 고치다가 | 같은 날 안에 되돌림 |
| 저장한 문서를 지울 길이 없음 | 실기 | 휴지통으로 옮기는 길을 만듦(채팅에서 써 보는 건 아직) |
| 한글 파일 이름이 눈에는 같은데 다르게 저장됨 | 만들다가 | 파일 목록을 먼저 읽어 고르게 우회 |
봇이 쓴 첫 문서는 쓸 만했나요
쓸 만했습니다. 「자조모임 3회기 계획서」 한 건을 뽑았고, 제가 보려던 네 가지가 모두 통과했습니다.
- 상급자 이름을 지어내지 않았습니다. 결재란의 담당·과장·부장·관장 칸이 전부 비어 있었습니다. 이건 제가 지시서에 못 박아 둔 규칙입니다
- 사업 정보를 맞게 잡았습니다. 사업명과 세부활동을 헷갈리지 않았습니다
- 문체가 실제로 제 것이었습니다. 「금일」, 「~하고자 함」, 「~임」이 그대로 나왔습니다. 담당 직원의 말버릇은 섞이지 않았습니다
- 어느 자료를 보고 썼는지 함께 나왔습니다. 「참조한 노트: 2026년 ○○ 사업계획서」가 문서 아래에 붙었습니다
세 번째가 이 시리즈에서 두 편째 미뤄 온 항목입니다. 3편과 4편에서 「문체가 그 사람 글처럼 보이는지 다음에 적겠다」고 했는데, 여기서 답이 나왔습니다.
다만 답이 반쪽입니다. 문체는 채팅 계정을 기준으로 고릅니다. 제 계정으로 시켰으니 확인된 것은 제 문체뿐입니다. 다른 직원의 문체가 제대로 나오는지는 그 사람 계정으로 해 봐야 알 수 있고, 아직 못 했습니다.
작은 것 하나가 더 걸렸습니다. 저장된 파일 이름이 2026년지지자자조모임 3회기 계획서.md 였습니다. 기존 자료는 2026년_○○_사업계획서.md 꼴인데, 지시서에 파일명 규칙을 안 적어 뒀더니 봇이 제멋대로 지었습니다. 안 적어 두면 AI가 알아서 정합니다.
왜 저장이 거부됐나요
문서를 저장하려면 그 사업의 대표 문서가 위키에 있어야 하는데, 사업 폴더 18개에 그게 없었습니다.
제가 만들어 둔 저장 관문(scripts/save-wiki-md.mjs)은 두 가지를 봅니다. 문서의 「관련 문서」 칸에 사업 대표 노트 [[사업명]] 이 반드시 있어야 하고, 거기 걸린 링크가 실제 파일로 존재해야 합니다. 둘 중 하나라도 어긋나면 저장이 안 됩니다.
4편에서 직원 다섯 명의 사업계획서를 위키에 넣었다고 적었습니다. 그때 계획서만 1건씩 넣고 대표 노트는 안 만들었습니다. 자동으로 만드는 코드도 없었습니다. 사흘 뒤 실제로 써 보는 날 그게 터진 것입니다.
여기에 더 아픈 사고가 겹쳤습니다. 봇이 초안 본문을 저에게 보여주지 않고 저장부터 시도했고, 관문이 거부하자 초안이 통째로 날아갔습니다. 다시 뽑으면 되지만, 안 보여주고 저장으로 간 것 자체가 문제입니다.
원인은 지시서 두 곳이 승인 낱말로 「진행」을 똑같이 쓰는 바람에 초안 보여주기 단계를 건너뛴 것으로 추정합니다. 확정은 아닙니다. 그 PC의 봇 기록을 아직 못 봐서 확인하지 못했습니다.
관문을 풀어 버리면 되지 않나요
풀지 않았습니다. 없는 링크가 대표 노트이고 그 사업 폴더가 실제로 있을 때만 통과시키고, 저장하면서 대표 노트를 함께 만들게 했습니다.
관문을 통째로 여는 길도 있었습니다. 그러지 않은 이유가 있습니다. 이 거부는 사업명 오타를 막는 장치이기도 합니다. 사업명을 잘못 적으면 없는 링크가 되고, 관문이 거기서 걸러 줍니다. 그 기능까지 같이 없어집니다.
그래서 예외를 좁게 뚫었습니다. 대표 노트가 아닌 다른 링크가 없으면 종전대로 거부합니다. 비슷한 이름을 봇이 알아서 골라 주지도 않습니다. 이름이 안 맞으면 사람에게 되묻습니다.
순서 하나가 중요했습니다. 대표 노트를 만드는 일은 파일을 쓴 뒤에 합니다. 앞에 두면 방금 저장한 문서가 목차에 안 들어가고, 그 폴더의 첫 문서일 때는 목차에 담을 재료가 없어 빈 문서가 됩니다.
결과는 이렇습니다. 장부에 있는 사업 23개가 모두 통과합니다. 4편에서 넣은 18개와 원래 제 것 5개입니다. 장부에 아예 없는 사업 2개는 여전히 막혀 있습니다. 이건 막힌 게 맞다고 봅니다.
승인은 왜 자꾸 어긋났나요
승인 신호를 두 군데서 잘못 다뤘습니다. 하나는 봇이 신호를 안 보낸 것이고, 하나는 사람 말을 못 알아들은 것입니다.
먼저 제가 낸 사고입니다. 위의 저장 문제를 고치면서 지시서에 「여기는 저장을 묻는 자리가 아니다」라고 한 줄 적었습니다. 좋은 뜻이었습니다. 그랬더니 봇이 [미리보기] 표식을 안 붙였고, 표식이 없으니 봇 프로그램이 승인 창을 열지 않았습니다. 제가 「진행」이라고 답해도 못 받고 “먼저 무엇을 저장할지 보여드릴게요”로 되돌아갔습니다. 대화가 무한히 끊겼습니다.
제가 뜻을 잘못 알았습니다. [미리보기] 는 「저장한다」는 뜻이 아니라 「승인 창을 열어라」는 신호입니다. 승인을 구하고 멈추는 자리면 저장이 아니어도 붙여야 합니다. 같은 날 안에서 고치고, 부수고, 되돌렸습니다.
다른 하나는 8월 25일에 손봤습니다. 봇이 「진행」 계열 몇 개만 승인으로 쳤습니다. 그래서 「응 그렇게 해줘」처럼 사람이 자연스럽게 답하면 승인이 안 됐습니다.
여기서 AI를 쓸 수 있는 자리에 일부러 안 썼습니다. 코덱스에게 “이게 승인인지 판단해”라고 시키면 말귀는 훨씬 잘 알아듣습니다. 그 길을 버린 이유가 둘입니다. 사람이 답할 때마다 AI를 한 번 더 불러야 해서 수십 초씩 느려집니다. 그리고 승인은 장부가 바뀌기 직전의 마지막 문지기라, 여기서 잘못 판단하면 되돌릴 자리가 없습니다. 대신 알아듣는 낱말 목록을 넓혔습니다.
PC 앞에 안 가고 고칠 수 있나요
가능하게 만들었습니다. 저장할 파일에 명령 한 줄을 적어 두면 그 PC가 갱신을 받아갈 때 스스로 찾아 한 번만 실행합니다.
대표 노트 18개를 만들려면 누군가 그 PC에서 명령을 한 번 돌려야 했습니다. 채팅으로 시키는 방법도 있었지만, 사람 손이 한 번이라도 들어가면 다음에 또 들어갑니다.
방식은 단순합니다. 기관 저장장치의 scripts/한번만/ 폴더에 <작업이름>.txt 로 명령 한 줄을 놔둡니다. PC가 갱신을 받아갈 때 그 폴더를 보고 실행합니다. 끝나면 logs/한번만-끝남.txt 에 적어 두고, 같은 작업은 두 번 돌지 않습니다.
여기에 판단이 하나 들어갔습니다. 그 저장장치는 공용이라 남이 그 폴더에 명령을 심을 수 있습니다. 그래서 node scripts/….mjs 꼴만 허용하고, 다른 프로그램을 부르거나 명령을 이어 붙이는 기호가 섞이면 거부합니다. 세 번 실패하면 포기하고 「실패」로 적습니다. 안 그러면 안 되는 명령을 영원히 다시 시도합니다.
결과는 사람 손이 하나도 안 갔습니다. 파일을 올린 뒤 PC가 스스로 돌렸고, 나중에 확인해 보니 「대표 노트가 없는 폴더가 없다. 할 일 없음」이 떠 있었습니다.
저장한 문서를 지우려면 어떻게 하나요
지금은 못 지웁니다. 만드는 것만 만들어 두고 지우는 길은 안 만들었다는 걸 실기 당일에 알았습니다.
시험 삼아 저장한 문서를 없애려는데 방법이 없었습니다. 유일한 길이 그 PC 앞에 직접 가는 것이었습니다. 코덱스에게 시켜 봤더니 거부했습니다. 지시서가 파일 삭제를 통째로 막아 놨기 때문입니다.
안전장치를 너무 세게 걸어서 정상적인 일까지 막힌 사례입니다. 이번 편에서 두 번째입니다. 그래서 예외를 뚫되 다섯 가지를 정했습니다.
- 진짜로 지우지 않습니다. 개인 휴지통 폴더로 옮깁니다. 위키가 기관 저장장치에 있어서 윈도우 휴지통에는 안 남습니다
- 되살리기도 함께 만듭니다. “되살려줘”라고 하면 원래 자리로 돌아갑니다
- 자기가 저장한 것만 물릴 수 있습니다
- 공용 자료는 아예 대상이 아닙니다
- 휴지통은 자동으로 안 비웁니다
만들면서 한글 파일명 함정을 만났습니다. 코덱스가 「지정한 경로와 실제 파일명이 다르다」며 거부했는데, 눈으로 보면 똑같은 한글이었습니다. 컴퓨터가 저장한 속값이 달랐습니다. 한글은 완성된 글자 하나로 저장하는 방식과 자음·모음을 나눠 저장하는 방식이 따로 있어서, 화면에는 같아 보여도 컴퓨터에는 다른 글자입니다.
해결은 우회였습니다. 코덱스가 준 글자로 경로를 조립하지 않고, 실제 파일 목록을 먼저 읽어 와서 짧은 표를 붙여 주고받습니다. 코덱스는 그 표만 고르면 되니 글자를 다룰 일이 없습니다.
만드는 것은 끝났고 자체 점검 33개가 통과했습니다. 채팅에서 실제로 써 보는 것은 아직 못 했습니다.
문체 표본이 없으면 못 쓰나요
이제 씁니다. 8월 25일에 참고할 과거 문서가 하나도 없어도 되묻지 않고 문체 파일만으로 쓰게 바꿨습니다.
대신 그 사실을 문서에 밝힙니다. 「참고할 과거 문서가 없어 문체 가이드만으로 씁니다」라고 적고, 부족한 정보는 평소보다 꼼꼼히 되묻습니다.
4편에서 문체 표본을 한 사람당 20건 받기로 하고 8건에서 끝냈다고 적었습니다. 그 뒤로 더 안 받았습니다. 종류당 2건이고, 제가 정한 최소 기준은 3건이었습니다. 회계 담당처럼 문서를 거의 안 쓰는 직원은 아예 안 받기로 했습니다.
부족한 표본을 채우는 방법을 다른 데서 찾았습니다. 봇이 저장한 문서가 다음 문서의 표본이 됩니다. 쓸수록 표본이 늘어나는 구조입니다.
여기 규칙이 하나 붙어 있습니다. 남이 쓴 문서는 틀만 빌리고 말투는 안 가져옵니다. 항목 구성과 표 모양은 참고하되 어미와 낱말은 그 사람 것을 씁니다. 한 사람은 「금회기」·「금일」을 쓰고 다른 사람은 안 쓰는데, 섞이면 읽는 사람이 바로 알아봅니다.
이럴 땐 이 방식이 안 맞습니다
안전장치는 걸어 놓는 순간부터 정상적인 일도 막습니다. 이번 편에서만 두 번 겪었습니다. 저장 관문이 제 저장을 막았고, 삭제 금지가 제 삭제를 막았습니다. 장치를 걸 때 「이게 막을 정상적인 경우」를 함께 적어 두시는 편이 낫습니다.
지시서를 고치는 일을 가볍게 보지 마시기 바랍니다. 코드는 틀리면 오류가 나지만 지시서는 조용히 다르게 동작합니다. 고친 뒤에는 실제로 한 번 시켜 보셔야 압니다.
아직 저 혼자 써 본 결과입니다. 직원 시범 운영 전이고, 8월 27일의 실기는 전부 제 계정으로 한 것입니다. 다른 사람이 쓸 때 무엇이 나올지는 모릅니다. 4편까지의 경험으로는 사람이 쓰기 시작하면 새것이 나왔습니다.
공용 저장장치에 명령 파일을 두는 방식은 그 저장장치에 누가 접근할 수 있는지부터 보고 정하셔야 합니다. 저는 부를 수 있는 프로그램을 하나로 좁혀서 위험을 줄였습니다. 그래도 위험이 0은 아닙니다.
다음 단계
세 가지가 남았습니다.
첫째, 다른 직원 계정으로 문서를 뽑아 그 사람 문체가 나오는지 봐야 합니다. 지금 확인된 것은 제 문체뿐입니다.
둘째, 휴지통을 채팅에서 실제로 써 봐야 합니다. 자체 점검만 통과한 상태입니다.
셋째, 초안이 날아간 사고의 원인을 확정해야 합니다. 그 PC의 봇 기록을 봐야 알 수 있습니다.
이번 편에서 나온 문제 다섯 개 중 넷은 실제로 시켜 봐야만 나오는 것이었습니다. 만들면서 찾은 것은 하나였습니다. 이 비율이 이 시리즈에서 계속 같습니다.
자주 묻는 질문
문서에 상급자 이름이 안 들어가면 결재를 못 올리지 않나요
빈칸으로 두고 사람이 채웁니다. 봇이 상급자 이름을 지어 넣으면 그게 맞는지 사람이 다시 확인해야 하는데, 확인하는 시간이 채우는 시간보다 깁니다. 지금 결재란은 담당·과장·부장·관장 네 칸이 모두 비어 나옵니다.
저장 관문 같은 걸 꼭 만들어야 하나요
AI가 파일을 직접 저장하게 할 생각이면 만드시는 게 맞습니다. 다만 이번 편이 그 대가를 보여 줍니다. 관문은 잘못된 저장도 막지만 정상적인 저장도 막습니다. 저는 관문을 없애는 대신 예외를 좁게 뚫는 쪽을 골랐습니다.
승인 여부를 AI가 판단하게 하면 안 되나요
되기는 합니다. 저는 안 했습니다. 사람이 답할 때마다 AI를 한 번 더 부르면 수십 초씩 느려지고, 승인은 장부가 바뀌기 직전의 마지막 문지기라 잘못 판단하면 되돌릴 자리가 없습니다. 대신 알아듣는 낱말을 늘렸습니다.
한글 파일 이름이 다르다는 오류는 어떻게 알아보나요
파일이 분명히 있는데 없다고 하면 이걸 의심하시면 됩니다. 사람이 확인하는 방법은 파일 이름을 지우고 직접 다시 타이핑해 보는 것입니다. 그 뒤에 되면 이 문제가 맞습니다. 윈도우와 맥을 오가며 만든 파일에서 자주 나옵니다.
이 글은 AI로 초안을 쓰고 사람이 확인해 다듬었습니다.
시리즈 「업무 자동화 툴 만들기」 전체 보기
직접 써 보기
양식 없이, 네 칸만 채우면 사업계획서 초안이 나옵니다
이 블로그와 별도로 운영하는 공개 웹앱입니다. 가입하면 매달 다섯 번까지 무료.
새 글과 새 무료 프로그램이 나오면 메일로 알려드려요.
메일로 소식 받기 (새 창에서 열림)