AI로 만들어본 것들 (3편) — 문서 민감정보 자동 마스킹 도구 만들기
결론부터: 문서에서 민감정보를 가리는 일을 매번 손으로 하면 번거롭습니다. 파이썬(PyMuPDF)으로 자동 마스킹 도구를 AI에게 짜달라고 해서 만들었어요. 다만 "무엇을 가릴지"는 사람이 판단해야 합니다 — 너무 많이 가리면 그 서류가 쓸모없어지거든요. (제가 그랬습니다.)
지난 편 → 2편 — Gemini와 Claude로 레거시 코드베이스 지도 만들기
매번 손으로 가리는 게 귀찮았습니다
어떤 문서를 제출할 일이 생기면, 그 안의 민감정보(주소 일부, 번호 등)를 가려야 할 때가 있습니다. 캡처 떠서 그림판으로 검은 칠을 하거나, PDF 편집기를 여는 식이죠.
한두 번이면 괜찮은데, 여러 장이거나 반복되면 일입니다. 위치도 매번 조금씩 어긋나고요. "이거 자동화하면 되잖아" 싶었습니다.
AI에게 마스킹 스크립트를 시켰습니다
직접 라이브러리를 찾아 헤매는 대신, AI(Claude Code)에게 요구사항을 줬습니다. "PDF를 이미지로 렌더링하고, 지정한 영역에 검은 사각형을 덮어씌우는 파이썬 스크립트를 만들어줘." 라이브러리는 PyMuPDF를 골라줬어요.
핵심 흐름은 단순했습니다.
- PDF 페이지를 이미지로 렌더링 (원본 PDF 텍스트를 남기지 않으려고 — 이미지로 만들면 검은 칠 밑의 글자가 복사되지 않습니다)
- 가릴 영역을 좌표로 지정해서 검은 사각형을 덮음
- 결과를 이미지 파일로 저장
여기서 하나 배웠어요. PDF 위에 그냥 검은 박스를 얹으면 위험합니다. 박스 밑의 텍스트가 그대로 남아 있어서, 복사하거나 도구로 열면 가린 내용이 튀어나옵니다. 그래서 이미지로 굽는(rasterize) 게 확실합니다. 이건 AI가 알려준 게 아니라, "이렇게 하면 밑의 글자가 남지 않냐"고 되물으며 확인한 부분이었어요.
진짜 함정 — 너무 많이 가리면 서류가 무효가 됩니다
여기가 이 편에서 제일 솔직해야 할 부분입니다. 도구는 잘 만들었는데, 제가 판단을 틀렸습니다.
"민감하니까 최대한 가리자"는 생각으로 넉넉하게 마스킹했어요. 그런데 그 문서를 받는 쪽에서 "가려진 부분이 우리가 꼭 확인해야 하는 항목"이라며 반려했습니다. 안전하게 가린다고 가린 게, 정작 그 서류의 존재 이유(확인)를 막아버린 거죠. 결국 덜 가린 버전으로 다시 만들어 냈습니다.
교훈이 명확했어요. 자동화 도구는 "어떻게 가릴지"를 해결하지, "무엇을 가릴지"는 해결하지 못합니다. 무엇을 가리고 무엇을 남길지는 그 서류의 목적을 아는 사람이 판단해야 합니다. 도구는 시키는 대로 정확히 가릴 뿐이고요.
정리 — 자동화는 도구, 판단은 사람
이 편의 교훈은 이렇습니다.
- 반복되는 편집은 자동화할 값이 있다. AI에게 요구사항만 주면 스크립트는 금방 나옵니다
- 가린 것이 진짜 가려졌는지 확인하라. 이미지로 굽지 않으면 밑의 글자가 남습니다 (AI 답을 그대로 믿지 말고 되물어 검증)
- 무엇을 가릴지는 도구가 아니라 사람의 판단이다. 너무 가리면 서류가 무효가 됩니다
AI는 마스킹 도구를 몇 분 만에 만들어줬습니다. 그런데 그 도구를 어디에, 얼마나 쓸지를 잘못 판단한 건 저였어요. 1편·2편과 같은 결론에 또 닿습니다 — AI는 도구를 만들고, 판단은 사람이 한다.
다음 편
AI를 도구로 엮어 만든 이야기를 세 편에 걸쳐 풀었습니다. 그리고 그 "이어서 기록하겠다"의 다음 편이 나왔습니다 → 4편 — 간이과세 확인 도구, 판정의 69%를 포기했습니다
댓글
댓글 쓰기