사내 문서 민감정보 마스킹·비식별화 방법 총정리 (2026): ChatGPT 개인정보 유출 막는 도구 비교 가이드
"이거 AI한테 물어보면 1분인데..." 그런데 문서 안에 고객 정보가 있습니다
업무를 하다 보면 늘 이런 순간이 옵니다. 수백 페이지짜리 계약서, 고객 명단이 붙은 심사 자료, 거래 내역이 정리된 보고서를 두고 "이걸 AI한테 요약시키면 30초면 끝날 텐데" 싶은 순간이요. 그런데 막상 파일을 열어 보면 그 안에 고객명, 계좌번호, 주민등록번호 같은 민감정보가 섞여 있습니다.
여기서 실무자는 보통 두 갈래로 갈립니다. 한쪽은 "괜히 사고 날라" 하며 결국 사람이 직접 문서를 다 읽습니다. 다른 한쪽은 답답함을 못 이기고 ChatGPT에 슬쩍 올렸다가, 나중에 보안 감사에서 적발되는 이른바 섀도우 AI(Shadow AI) 사고로 이어집니다. 금융, 보험, 의료, 공공처럼 규제가 강한 곳일수록 후자의 대가는 큽니다.
이 글은 그 사이에 있는 현실적인 길, 즉 민감정보를 입력 전에 지우거나 가리고 나서 AI를 쓰는 방법을 다룹니다. 사내 문서 민감정보 마스킹과 개인정보 비식별화의 개념을 정리하고, 실무에서 쓰이는 5가지 방법과 도구를 동작 방식까지 비교한 뒤, 각 방법이 부딪히는 공통 한계와 도구 선택 기준까지 짚겠습니다. 보안·법무 회의에 그대로 들고 갈 수 있는 수준으로 정리했습니다.
먼저 짚고 갈 것: ChatGPT 임시 채팅과 시크릿모드는 '통제 지점'이 아닙니다
본론에 들어가기 전에, 많은 분들이 오해하는 부분을 솔직하게 정리하겠습니다. "임시 채팅이나 시크릿모드만 켜면 괜찮은 거 아닌가요?"라는 질문입니다. 결론부터 말하면, 그것만으로는 충분한 통제가 되지 않습니다.
OpenAI의 정책을 보면 ChatGPT 임시 채팅(Temporary Chat)은 모델 학습이나 미세조정에 사용되지 않고 30일 이내에 자동 삭제됩니다. 분명한 장점입니다. 하지만 핵심은 "학습에 쓰지 않는다"와 "외부 서버에 가지 않는다"는 전혀 다른 이야기라는 점입니다. 임시 채팅이라도 입력한 원본 내용은 OpenAI 서버를 경유해 처리되고, 보관 기간 동안 서버에 암호화된 상태로 남아 있습니다. 즉 "학습 미사용"일 뿐, 문서가 외부로 나간다는 사실 자체는 그대로입니다.
Gemini도 비슷합니다. 구글의 Gemini Apps 안내에 따르면 Gemini Apps 활동을 꺼도 대화는 서비스 운영을 위해 최대 72시간 보관되고, 사람이 검토한 대화는 계정과 분리된 채 최대 3년까지 보관될 수 있습니다. 그래서 구글은 안내문에서 직접 "검토자가 보면 안 되는 기밀 정보는 입력하지 말라"고 명시하고 있습니다.
정리하면 이렇습니다. ChatGPT 시크릿모드나 임시 채팅, 챗GPT 임시 채팅 기능은 "내 히스토리에 안 남는다" 정도의 편의 기능이지, "민감정보가 외부로 안 나간다"는 보안 통제가 아닙니다. 진짜 통제는 더 앞 단계, 바로 입력하기 전에 민감정보를 지우는 것에 있습니다. 그래서 마스킹과 비식별화가 필요한 겁니다.
헷갈리는 용어부터 정리: 마스킹·가명화·익명화·비식별화
방법을 비교하기 전에, 자주 섞여 쓰이는 네 단어를 일상 언어로 구분해 두면 이후 내용이 훨씬 또렷해집니다.
용어 | 쉽게 말하면 | 되돌릴 수 있나 |
|---|---|---|
마스킹(Masking) | 보이는 일부를 가리는 것 (홍길동 → 홍**, 901010-1****) | 보통 단방향, 가린 값 자체는 복원 안 됨 |
가명화(가명처리) | 식별 정보를 다른 값으로 바꾸되, 별도 키가 있으면 되돌릴 수 있게 한 것 | 추가 정보(매핑 키)가 있으면 복원 가능 |
익명화(익명처리) | 누구인지 영구히 알 수 없게 처리한 것 | 복원 불가 |
비식별화(비식별 조치) | 가명화·익명화를 아우르는 상위 개념 | 처리 수준에 따라 다름 |
여기서 실무자가 꼭 알아야 할 두 가지가 있습니다.
첫째, 「개인정보 보호법」상 가명정보는 "개인정보의 일부를 삭제하거나 일부 또는 전부를 대체해, 추가 정보 없이는 특정 개인을 알아볼 수 없도록 처리한 정보"를 말합니다. 즉 가명처리는 완전한 익명화가 아니라, 매핑 키를 분리 보관하면 다시 연결할 수 있는 상태입니다. AI에 질문할 때 가명으로 바꿔 보내고, 답변을 받은 뒤 원래 값으로 되돌리는(재치환) 흐름이 가능한 이유가 여기에 있습니다.
둘째, 과거에 많이 인용되던 2016년 「개인정보 비식별 조치 가이드라인」은 2020년 8월 개정 개인정보보호법 시행 이후 더 이상 현행 기준이 아닙니다. 현재 실무가 따라야 할 문서는 개인정보보호위원회의 「가명정보 처리 가이드라인」(2024년 2월 개정)이며, 이 개정본에는 이미지·음성·영상 같은 비정형 데이터의 가명처리 내용까지 새로 반영되었습니다. 사내 규정이나 절차서에 오래된 가이드라인 명칭이 남아 있다면 이번 기회에 함께 정비하시길 권합니다.
사내 문서 민감정보 마스킹 5가지 방법
이제 본론입니다. 실무에서 쓰이는 마스킹·비식별화 방법은 크게 다섯 가지로 나눌 수 있습니다. 각각 어떻게 동작하는지, 실제 예시는 어떤지, 어떤 상황에 맞는지를 함께 정리했습니다.
① 수동 찾아바꾸기
어떻게 동작하나요. 가장 원초적인 방법입니다. Word, Excel, 한글(HWP)의 찾기·바꾸기(Ctrl+H) 기능으로 사람이 직접 민감정보를 찾아 다른 값으로 바꿉니다.
예시. 계약서에서 "주식회사 가나다"를 모두 "[회사명]"으로, 담당자 "김철수"를 "[담당자A]"로 일괄 치환한 뒤 파일을 저장합니다.
적합 상황. 문서가 한두 건이고, 가려야 할 값이 명확하며, 분량이 적을 때는 가장 빠르고 비용도 들지 않습니다. 다만 문서가 늘어나는 순간 급격히 비현실적이 됩니다.
② 정규식·스크립트 자동 치환
어떻게 동작하나요. 주민등록번호, 전화번호, 계좌번호처럼 형식이 일정한 정보는 패턴(정규식)으로 한 번에 찾아 바꿀 수 있습니다. 파이썬 같은 스크립트로 폴더 전체를 일괄 처리합니다.
예시. 아래는 텍스트에서 주민등록번호와 전화번호 형식을 찾아 치환하는 짧은 코드입니다.
import re
text = re.sub(r"\\\\d{6}-\\\\d{7}", "[주민번호]", text) # 주민등록번호
text = re.sub(r"01[016-9]-?\\\\d{3,4}-?\\\\d{4}", "[휴대전화]", text) # 휴대전화
text = re.sub(r"\\\\d{2,6}-\\\\d{2,6}-\\\\d{2,6}", "[계좌번호]", text) # 계좌번호
적합 상황. 정형화된 식별자가 대량으로 반복되는 문서(거래 내역, 가입자 명단 등)에 강력합니다. 반면 사람 이름, 회사명, 사업 코드명처럼 정해진 형식이 없는 정보나, 표·이미지 속에 박힌 텍스트는 정규식이 거의 잡지 못합니다.
③ 전문 비식별화 솔루션
어떻게 동작하나요. 가명처리·익명처리를 전담하는 상용 엔진입니다. 이름·주소·식별자를 자동 탐지해 가명으로 치환하고, 매핑 키를 분리 보관해 필요 시 재연결할 수 있게 관리합니다. 처리 이력과 안전성 기준도 함께 남깁니다.
예시. 연구·분석용으로 대량의 고객 데이터를 가명처리한 뒤, 통계 활용 목적에 맞게 일관된 가명을 부여하고 키를 별도 금고에 보관하는 식입니다.
적합 상황. 가명정보를 정식 절차에 따라 활용해야 하는 데이터 분석·연구 프로젝트, 규제 대응이 필요한 조직에 적합합니다. 다만 도입 비용과 구축 기간, 학습·운영 부담이 따릅니다.
④ DLP·문서보안 솔루션
어떻게 동작하나요. 마스킹 자체보다 유출 탐지·차단에 무게가 실린 접근입니다. DLP(데이터 유출 방지) 솔루션은 메일·웹 업로드·외부 전송 시 민감정보가 포함됐는지 탐지해 경고하거나 막습니다.
예시. 직원이 주민번호가 포함된 파일을 외부 웹사이트에 올리려 하면, DLP가 이를 감지해 전송을 차단하고 관리자에게 알립니다.
적합 상황. "민감정보가 밖으로 나가는 것 자체를 막는다"는 통제 관점에서 유용합니다. 다만 문서 내용을 AI가 쓸 수 있게 가공해 주는 도구는 아니며, 채워야 할 빈자리가 남습니다.
⑤ 온디바이스 자동 마스킹
어떻게 동작하나요. 민감정보 탐지와 치환을 외부로 보내기 전, 내 PC(로컬) 안에서 자동으로 수행하는 방식입니다. 사람이 일일이 찾을 필요 없이 규칙에 따라 가리고, 필요하면 답변을 받은 뒤 원래 값으로 되돌립니다.
예시. 문서를 올리면 로컬에서 PII와 회사명·코드명을 자동 식별해 가명으로 바꾸고, 그 가명 상태의 내용만 외부 AI에 보내 답변을 받은 뒤, 화면에는 원래 값으로 복원해 보여 줍니다.
적합 상황. 사람 손을 거치지 않고 자동·안전하게 처리해야 하는 조직, 규제로 외부 클라우드 전송이 제한된 환경에 잘 맞습니다.
방법·도구 비교 매트릭스
각 방법이 실무 기준에서 어떻게 다른지 한 표로 정리했습니다. 특정 도구를 깎아내리려는 표가 아니라, 상황에 맞는 선택을 돕기 위한 사실 정리입니다.
방법 | 정확도 | 자동화 수준 | 대용량 처리 | 표·이미지 속 정보 | 가명 일관성 | 재치환 가능 | 형식 보존 | 외부 전송 | 비용 |
|---|---|---|---|---|---|---|---|---|---|
① 수동 찾아바꾸기 | 사람 의존, 누락 위험 | 매우 낮음 | 어려움 | 수동으로만, 누락 잦음 | 사람이 챙겨야 함 | 수동 기록 필요 | 비교적 보존 | 없음(로컬 작업) | 낮음 |
② 정규식·스크립트 | 정형엔 높음, 비정형엔 낮음 | 높음 | 가능 | 거의 못 잡음 | 별도 설계 필요 | 매핑 관리 시 가능 | 깨질 수 있음 | 없음(로컬 작업) | 낮음(개발 공수) |
③ 전문 비식별화 솔루션 | 높음 | 높음 | 가능 | 솔루션별 상이 | 일관 부여 가능 | 키 관리로 가능 | 솔루션별 상이 | 구성에 따라 다름 | 높음 |
④ DLP·문서보안 | 탐지 정확도 의존 | 높음(탐지·차단) | 가능 | 일부 탐지 | 마스킹 목적 아님 | 해당 없음 | 원문 유지 | 차단 중심 | 중간~높음 |
이 방법들이 실무에서 부딪히는 7가지 공통 한계
표를 보면 어느 방법도 모든 칸을 깔끔하게 채우지 못한다는 점이 드러납니다. 실무에서 반복적으로 나타나는 한계를 일곱 가지로 추리면 다음과 같습니다. 이 목록은 뒤에서 이어질 대안 논의의 출발점이기도 합니다.
수동 작업의 누락과 실수: 사람이 직접 가리면 반드시 빠뜨리는 값이 생기고, 문서가 많아질수록 오류가 누적됩니다.
정규식의 비정형·이미지 사각지대: 형식 없는 이름·회사명·코드명, 그리고 이미지 속 글자는 패턴으로 잡히지 않습니다.
전문 솔루션의 비용·구축 기간: 정확하지만 도입 비용과 기간, 운영 부담이 중견기업 이하에는 무겁습니다.
표·수식·차트 속 정보 누락: 본문 텍스트는 처리해도, 표 안 숫자나 수식·차트에 숨은 식별 정보는 놓치기 쉽습니다.
여러 문서에 걸친 가명 일관성 붕괴: 문서마다 같은 사람이 다른 가명으로 바뀌면, 교차 분석이 불가능해집니다.
재치환 누락: 답변을 받은 뒤 원래 값으로 되돌리는 과정을 사람이 챙기다 보면 빠지거나 틀립니다.
형식 깨짐: 치환 과정에서 문서의 표·서식·레이아웃이 무너져, 결과물을 다시 손봐야 합니다.
7가지 한계를 어떻게 해소하는가: 로컬독스의 접근
앞에서 정리한 일곱 가지 한계는 따로따로가 아니라 하나의 흐름에서 비롯됩니다. "사람이 일일이, 도구마다 따로, 외부로 보내기 전에" 처리해야 하기 때문에 생기는 문제들입니다. 로컬독스는 이 흐름 자체를 한 곳에서 자동으로 잇는 방식으로 접근합니다.
먼저 구조를 정확히 짚겠습니다. 로컬독스는 모든 것을 PC 안에서 처리하는 풀 온디바이스 LLM이 아닙니다. 문서 파싱·검색·마스킹은 내 PC 안에서 처리하고, 가명으로 바꾼 익명 청크만 클라우드 LLM으로 보내 답변을 생성하는 하이브리드 구조입니다. 무거운 추론은 클라우드의 고성능 AI를 빌려 쓰되, 원본 민감정보는 로컬을 벗어나지 않게 설계한 것입니다. 이 전제 위에서 일곱 한계와 다음과 같이 대응합니다.
한계 1(수동 누락)에 대해: 진단, 발췌, 마스킹, 외부 질의, 재치환에 이르는 전 과정을 내 PC 안에서 수행합니다. 사람이 단계마다 손으로 챙기던 작업을 자동 흐름으로 바꿔, 누락과 실수가 끼어들 여지를 줄입니다.
한계 2(정규식의 비정형 사각지대)에 대해: PII뿐 아니라 회사명·코드명처럼 형식이 없는 정보까지, 고객이 정의한 규칙을 기반으로 자동 비식별화합니다. 정규식만으로 잡기 어려운 대상까지 규칙 범위에 넣을 수 있습니다.
한계 4·7(표·수식 누락, 형식 깨짐)에 대해: 표, 차트, 이미지, 수식까지 문서 구조를 보존하며 파싱합니다. 본문 바깥에 숨은 정보까지 다루고, 처리 후에도 원래 형식을 유지하려는 설계입니다.
한계 5·6(가명 일관성, 재치환 누락)에 대해: 여러 문서에 걸쳐 같은 대상을 같은 가명으로 일관되게 치환하고, 답변을 받은 뒤 원래 값으로 되돌리는 재치환을 흐름 안에 포함합니다. 즉 "원본 청크 → 익명 청크로 치환 → 외부 질의 → 원래 값으로 재치환"이라는 한 줄기 흐름으로 처리됩니다.
한계 3(비용·구축 기간)에 대해: 수억 원 규모의 서버 구축 없이 내 PC에서 바로 쓰는 방식이라, 전문 비식별화 솔루션 대비 도입 문턱과 기간 부담을 낮춥니다.
검증과 대용량에 대해: 다수의 문서와 수백~수천 페이지 분량을 다루면서, 답변의 근거가 된 출처 페이지를 함께 짚어 줍니다. 실무자가 원문을 클릭해 바로 확인할 수 있어, 처리 결과를 눈으로 검증할 수 있습니다.
핵심은 "단점이 없다"가 아니라 "이 한계들을 이런 구조와 동작으로 해소한다"는 점입니다. 익명 청크만 외부로 나가므로 원본 문서의 외부 유출을 원천적으로 줄이고, 동시에 클라우드 AI의 답변 품질도 활용한다는 점이 이 접근의 핵심입니다. 사내 문서 보안과 AI 데이터 보안을 동시에 고려해야 하는 조직이라면 검토해 볼 만한 선택지입니다.
우리 회사에 맞는 방법 고르기: 7가지 체크리스트
마지막으로, 어떤 방법이 우리 환경에 맞는지 점검할 수 있는 기준을 정리했습니다. 보안·법무 회의에서 그대로 활용하셔도 됩니다.
문서 양: 한두 건인가, 수십~수백 건인가. 양이 많으면 수동 방식은 사실상 사용하기 어렵습니다.
정보 유형: 정형 식별자 위주인가, 이름·회사명 같은 비정형이 많은가. 비정형이 많으면 정규식만으로는 부족합니다.
표·이미지 비중: 표·차트·이미지 속 정보가 많다면 파싱 범위가 넓은 방법이 필요합니다.
가명 일관성·재치환 필요 여부: 여러 문서를 교차 분석하거나 답변을 원래 값으로 되돌려야 한다면, 일관 치환과 재치환을 지원하는 방식이 필요합니다.
외부 전송 허용 범위: 규제나 사내 정책상 원본 전송이 가능한가, 아니면 익명화 후에만 가능한가.
예산과 기간: 솔루션 도입 예산과 구축 기간을 감당할 수 있는가.
자동화 수준: 사람이 검수하는 반자동이면 충분한가, 사람 손 없이 자동으로 가야 하는가.
결론: 상황에 따라 정답이 다릅니다
지금까지 사내 문서 민감정보 마스킹과 개인정보 비식별화의 다섯 가지 방법을, 동작 방식과 예시, 적합 상황, 그리고 비교 매트릭스로 정리했습니다. 요약하면 이렇습니다. 소규모·단발성이라면 수동 찾아바꾸기가, 정형 식별자가 많다면 정규식 자동 치환이, 정식 가명정보 활용이라면 전문 솔루션이, 유출 차단이 우선이라면 DLP가 각각 제 역할을 합니다.
다만 한 가지 분명한 지점이 있습니다. ChatGPT 임시 채팅이나 챗GPT 시크릿모드를 켜는 것만으로는 민감정보가 외부로 나가는 사실 자체를 막지 못합니다. 진짜 통제는 입력 전에 정보를 가리는 데 있습니다. 그리고 사람 손을 거치지 않고 자동으로, 외부로는 익명 청크만 내보내며 안전하게 가야 하는 조직이라면, 온디바이스 자동 마스킹이 현실적인 해답에 가깝습니다.
여러분의 문서 환경과 보안 요건에 맞는 현명한 도구 선택으로, 데이터 유출 방지와 업무 생산성을 함께 잡으시길 바랍니다.