🧭 상태: 활성 · 제품 SSOT — 사용설명서 마스터(버전 플레이스홀더 포함). 빌드 시 버전 스탬프 PDF 생성, 웹 열람용.
오프라인 한국 법률문서 비식별화 도구 — 인터넷 연결 없이 단일 실행파일로 동작. 규칙기반(정규식)·결정적·완전 오프라인. 대상 버전: v0.4.11 생성일: 2026-07-12
1. 무엇을 하는 도구인가
외부 AI(Claude·ChatGPT 등)에 법률문서를 입력하기 전에, 주민등록번호·사건번호· 연락처 등 식별정보를 로컬 PC에서 제거하는 전처리기다.
- 규칙기반(정규식) — AI 추론을 쓰지 않으므로 "왜 가려졌는지" 100% 설명 가능.
- 결정적 — 같은 입력 + 같은 설정 → 항상 같은 출력.
- 완전 오프라인 — 네트워크 코드 자체가 없다. 데이터가 PC를 떠나지 않는다.
- 사람이 최종 검수 — 자동 탐지는 초안. 검수 단계를 건너뛸 수 없도록 강제한다.
- 감사 가능 — 무엇이/몇 건/어떤 규칙으로 가려졌는지 리포트 (원본 식별정보 미포함).
- 다중인물 분석 — 여러 관계자(원고·피고·피고인·피해자·대리인 등)를
개별 인물로 구분하고, 인물관계·사실관계를 표시한다. 결과를 PII 없는
graph-seed로 내보낼 수 있다. (§4 다중인물 분석)
전형적 사용 흐름
판결문/소장 등 원문
│
▼ ① Agent Room-Shield 로 비식별화 + 사람 검수
비식별 텍스트 ──────────────► 외부 AI(요약·검토 등)에 안전하게 입력
│
├─▼ ② (선택) 로컬 매핑테이블로 결과를 원래 당사자로 원복
│
└─▼ ③ (선택) 다중인물 분석 → 인물명부·관계·타임라인 / graph-seed (PII 미포함)
2. 반드시 알아둘 원칙 (책임 한계)
⚠ 이 도구는 보조 수단입니다. 자동 탐지는 초안이며 최종 책임은 사용자에게 있습니다. 반드시 검수 단계에서 결과를 확인한 뒤 사용하세요. (법원 환각 TF의 "AI 결과물 검증 의무" 원칙과 동일)
- 성명(R10)·로마자 성명(R20)은 기본 OFF. 정규식만으로 한글 인명을 정확히 가려낼 수 없음이 실측으로 증명되어, 직책 문맥 기반 후보 제안 전용이다. 사용자가 직접 포함시켜야 가려진다.
- 직무자(판사·검사·경찰·변호사 등) 성명은
◆ 직무자로 표시되고 기본 제외로 시작한다. 판결서 비실명 실무(대법원 기준)가 직무수행자 성명을 비실명 대상에서 제외하기 때문이다. AI 입력용 등으로 가려야 하면 검수 패널에서 해당 인물을 직접 포함시킨다. - 주소(R09)·계좌(R05)는 오탐 우려가 큼. 반드시 검수 화면에서 확인한다.
- 도구는 준식별자(지역·금액·날짜 등)를 자동으로 삭제하지 않는다 — 문서가 망가지기 때문. 대신 재식별 위험 경고만 띄운다.
3. 설치와 실행
설치 불필요. 웹에서 단일 실행파일(.exe) 하나만 내려받아 그대로 실행한다. USB로 들고
다니며 망분리 PC에서도 바로 실행된다. (본 설명서는 웹에서 읽는다 — 실행파일에 동봉되는 별도
설명서 파일은 없다.)
| 파일 | 용도 | 대상 |
|---|---|---|
AgentRoomShield-v0.4.11.exe |
검수 UI (마우스로 확인·수정하며 비식별) — 배포 대상은 이 파일 하나 | 일반 사용자 |
AgentRoomShield-v0.4.11.exe 하나만 더블클릭하면 됩니다. (소켓 미오픈 — 완전 오프라인)
처음 실행 시 "Windows의 PC 보호" 경고가 뜨면 (정상)
처음 실행할 때 아래와 같은 파란 전체화면 안내가 나타날 수 있습니다:
Windows의 PC 보호 Windows Defender SmartScreen에서 인식할 수 없는 앱의 시작을 차단했습니다…
오류가 아니라 정상입니다. Windows의 SmartScreen은 인터넷에서 받은 실행파일 중 아직 널리 알려지지 않은(코드서명 미적용) 파일을 한 번 막아 세웁니다. 파일이 위험해서가 아니라 "처음 보는 파일"이라 뜨는 안내입니다.
대응: 경고창에서 [추가 정보] 를 누르면 나타나는 [실행] 버튼을 누르면 정상 실행됩니다.
본 프로그램은 네트워크 소켓을 일절 열지 않는 완전 오프라인 도구입니다(방화벽 전면 차단· 망분리 PC에서도 동일 동작). 입력한 문서는 어디로도 전송되지 않습니다.
4. 검수 UI 사용법 (일반 사용자 권장)
AgentRoomShield-v0.4.11.exe를 더블클릭하면 데스크톱 GUI가 뜬다. (소켓 미오픈 — 완전 오프라인)
5단계 워크플로우
① 입력
- 파일 열기(
.txt/.docx/.hwpx) 또는 본문을 직접 붙여넣기. - 워드(
.docx)·한글(.hwpx) 문서는 문단 텍스트를 추출해 표시한다(머리말·꼬리말 포함).
② 자동 탐지 (① 자동 탐지 버튼)
- 식별정보가 규칙별 색상으로 하이라이트된다.
- 성명(R10)·로마자 성명(R20)은 기본 미포함 후보로만 제안된다.
③ 검수 — 화면 왼쪽 원본 / 오른쪽 비식별 결과 비교
- 하단 목록에서 항목별
포함토글(클릭) — 해제하면 그 항목은 가리지 않는다. - 처리방식 더블클릭으로 순환 변경:
mask → alias → blackout. - 원본에서 텍스트를 드래그한 뒤 "선택영역 수동 가리기" — 규칙이 못 잡은 항목을 직접 추가.
(내부적으로
MANUAL규칙으로 처리) - 찾기/일괄 가리기 — 툴바 아래 "찾기" 입력창에 단어를 넣고
Enter또는 [찾기(하이라이트)]: 모든 출현 위치가 노란색+밑줄로 표시되고 건수가 나온다. **[찾은 곳 모두 가리기]**를 누르면 전부 한 번에 수동 가리기로 등록된다(이미 가려진 곳은 제외 — 반복 눌러도 중복되지 않음). 자동탐지가 원리적으로 못 잡는 맨이름·지명·상호 변형 등을 처리하는 가장 빠른 방법이다. - 성명은 오탐이 많아 기본 미포함 — 직접 포함시켜야 가려진다.
④ 재식별 위험 경고 확인
- 지역·금액·날짜·관계 등 준식별자가 2종 이상 동시에 있으면 경고가 뜬다.
- 자동 삭제하지 않는다. 참고 후 사용자가 최종 판단한다. (§7)
⑤ 내보내기 ("검수를 완료했습니다" 체크 → ② 내보내기)
- 비식별
.txt+ 감사 리포트.report.json생성. .docx/.hwpx로 열어 편집 없이 검수했다면 같은 포맷(문단 구조 유지) 저장도 선택할 수 있다. 원본을 편집했다면.txt로만 저장된다(편집 즉시 원본 패널 제목에 표시).- 서식 유지는 문단 구조 수준이다 — 문단 안의 부분 서식(일부 굵게·밑줄 등)은 유지되지 않는다(문단 전체 서식은 유지).
- 별칭(alias) 항목이 있으면
.mapping.json(원복용)도 함께 생성. - 미결정 성명이 남아 있으면 "가려지지 않은 채 내보내집니다" 확인 창이 뜬다 — 실수로 실명을 노출하지 않게 한 번 더 묻는다(차단은 아님).
검수 강제: "검수를 완료했습니다"를 체크하기 전에는 내보내기 버튼이 비활성이다. 버튼이 비활성인 동안에는 체크박스 옆에 이유(탐지 0건, 검수 체크 필요 등)가 표시된다. 새 탐지·토글·처리방식 변경이 발생하면 체크가 자동 해제되어 재검수를 유도한다. 탐지 후 원본을 편집하면 탐지 위치가 어긋나므로
① 자동 탐지를 다시 실행하기 전까지 내보내기가 차단된다(잘못된 구간 가림 방지).
다중인물 분석
검수 UI의 ③ 다중인물 분석 버튼으로 연다.
여러 관계자(원고·피고·피고인·피해자·대리인 등)가 등장하는 문서에서, 인물을 개별로 구분하고 인물관계·사실관계를 표시한다. 비식별 텍스트와는 별개의 보조 분석이며, 원본 신원은 담지 않는다.
- 1차 후보 표 — 성명 후보(R10/R20)를 앵커로 인물을 뽑고, 앞쪽 역할 토큰으로 역할을, 가까운 PII(전화·주민번호 등)를 그 인물에 추정해 보여준다. 추정값이므로 사람이 확인한다.
- 선택 병합(동일인) — 같은 사람의 여러 표기("홍길동"·"홍씨"·"원고")를 한 인물로 묶는다. 잘못 묶었으면 병합 해제(선택) 로 되돌린다. 전체 초기화 도 가능.
- 역할 지정 — 인물의 역할을 직접 확정(쉼표로 복수 역할).
- 분석·표시 갱신 — 인물 명부(토큰·역할·연결PII 종류) + 인물관계(대립·대리·혐의관계 등,
모두
[미확정]후보로 표시·무죄추정) + 사실관계 타임라인 을 텍스트로 보여준다. - graph-seed 저장 — 위 구조를
deid-graph-seed/v2JSON으로 내보낸다. PII 미포함(가명·역할· 관계유형만). 저장 시 외부 전송 경계를 고지하고, 안정 가명 키는 seed와 분리 저장하도록 유도한다 (키는 재식별을 가속할 수 있으므로 seed·외부 서비스와 함께 두지 않는다).
경계: 이 분석은 오프라인에서만 동작하며, 그래프 시각화·DB는 이 도구에 포함되지 않는다. graph-seed는 사용자가 수동으로 별도 서비스에 넘길 수 있는 산출물일 뿐, 자동 전송은 없다.
5. 처리 방식 3종 — mask / alias / blackout
| 모드 | 동작 | 예 | 복원 |
|---|---|---|---|
| mask | 영숫자·한글을 *로 치환, 구분자(- 공백 .)는 보존 |
880101-1234567 → ******-******* |
❌ 불가 |
| alias | 같은 값 → 같은 라벨로 일관 치환 | 2023가합1234 → [사건1] |
✅ 로컬 매핑테이블로 가능 |
| blackout | 통째로 삭제 표시 | (무엇이든) → [삭제됨] |
❌ 불가 |
- 전화번호는 mask 시 통신사/지역 식별자(첫 그룹)를 남긴다:
010-1234-5678→010-****-****(가독성 유지). - alias는 문서 출현 순서대로
[접두어1],[접두어2]... 라벨을 부여한다. 같은 원본값은 항상 같은 라벨로 매핑되어 문서 내 관계가 보존된다(예: 같은 사건번호는 모두[사건1]).
처리방식은 검수 UI의 항목 목록에서 더블클릭으로 순환 변경한다.
7. 재식별 위험 경고
직접 식별자를 모두 가려도, 준식별자 조합으로 사건/당사자가 특정될 수 있다. 도구는 다음 4개 범주를 집계한다:
| 범주 | 예 |
|---|---|
| 금액 | 3억원, 1,500만원 |
| 날짜 | 2023년 5월 1일 |
| 지역 | 서울, 부산, 경기 … |
| 관계/직책 | 대표이사, 피해자, 배우자, 자녀 … |
서로 다른 범주가 2종 이상 동시에 존재하면 경고가 뜬다:
⚠ 준식별자 조합 위험: (범주들) 가 함께 존재합니다. 직접 식별자를 모두 가려도 이 조합으로 사건/당사자가 특정될 수 있습니다. 내보내기 전 확인하세요. (도구는 이 항목을 자동 삭제하지 않습니다)
중요: 도구는 이 항목을 자동으로 가리지 않는다. 문서 맥락이 망가지지 않도록, 판단은 사용자에게 맡긴다. 필요하면 검수 화면에서 수동 가리기로 직접 처리한다.
8. 감사 리포트
검수 UI 내보내기 시 원본 식별정보 없이 감사 리포트가 생성된다 — 무엇이/몇 건/어떤 규칙·처리방식으로 가려졌는지의 집계만 담는다. (테스트로 강제)
포맷
.report.json— 검수 UI 내보내기 시 자동 생성(기계 판독용).- 엔진은
.html(브라우저 열람·인쇄) /.pdf(보고서 제출용, reportlab) 포맷도 지원한다.
9. 별칭 매핑테이블과 원복(재식별)
alias 처리된 항목([사건1], [이메일2] 등)은 내보내기 시 로컬 매핑테이블(.mapping.json)에
원본값 → 라벨 대응이 저장된다. 외부 AI가 라벨이 든 결과를 돌려주면, 이 테이블로
원래 당사자/사건으로 되돌릴 수 있다(선택적 가역).
- 매핑테이블은 PC 밖으로 내보내지 말 것 — 원본 식별정보가 담긴다.
- 매핑테이블은 AES-GCM 비밀번호 암호화 저장을 지원한다 — 암호화 시 파일명은
.mapping.enc.json, 평문은.mapping.json. (비밀번호 분실 시 복호화 불가)
10. 문서 포맷(.docx / .hwpx) 처리
워드(.docx)·한글(.hwpx) 문서를 GUI에서 직접 열고, 검수 후 같은 포맷으로 저장할 수 있다.
- 열기: 문단 텍스트를 추출해 표시한다. 본문뿐 아니라 표 셀·머리말·꼬리말의 텍스트까지 수집한다(머리말의 담당자·연락처 누수 방지).
- 저장: 원본을 편집하지 않았다면 문단 구조를 유지한 채 같은 포맷으로 재작성한다.
이때 작성자·회사 등 문서 메타데이터도 함께 비운다. 원본을 편집했다면 문단 경계가
어긋나므로
.txt로 저장된다. - 서식 보존 수준: 문단 구조까지다. 문단 안의 글자별 서식(굵게·색 등)은 첫 서식 기준으로 통일된다(런 단위 서식 보존은 향후 계획).
- 구버전 바이너리
.hwp는 미지원 — 한글에서.hwpx(HWPX 형식) 또는.txt로 저장해 사용한다.
11. 데이터 보안 — 네트워크 부재
이 도구의 핵심 보증은 "안 보낸다"가 아니라 "보낼 수단이 없다" 이다.
네트워크 코드가 코드베이스에 존재하지 않으며, 런타임에 소켓을 열지 않는다.
데이터·매핑테이블·리포트 모두 로컬 디스크에만 기록된다.
12. 자주 묻는 질문(FAQ)
Q. 성명이 안 가려져요. A. 성명(R10)·로마자 성명(R20)은 기본 OFF(후보 전용)입니다. 검수 UI에서 후보를 직접 포함시키세요. 단 오탐이 많으니 반드시 검수하세요.
Q. 일반 날짜(범죄일시 등)까지 가려집니다.
A. 생년월일(R11)이 일반 날짜를 함께 잡을 수 있습니다. 검수 화면에서 해당 항목의
포함을 해제하세요.
Q. 같은 사건번호가 문서마다 다른 라벨이 됩니다. A. 별칭 라벨은 한 번의 처리 단위 안에서만 일관됩니다. 여러 파일에 걸쳐 같은 라벨을 쓰려면 한 문서로 합쳐 처리하세요.
Q. 원래대로 되돌릴 수 있나요?
A. alias 항목만 매핑테이블로 원복 가능합니다. mask·blackout은 복원 불가입니다.
Q. 인터넷이 필요한가요? A. 전혀 필요 없습니다. 망분리 PC·USB 실행을 전제로 설계되었습니다. (§11)
Q. 여러 명이 등장하는 사건에서 인물별로 구분·관계를 보려면?
A. 검수 UI의 ③ 다중인물 분석 버튼을 쓰세요. 성명 후보를 앵커로 관계자를 뽑아 역할·관계를
추정하고, 검수자가 동일인 병합·역할 확정을 한 뒤 인물 명부·인물관계(무죄추정·[미확정]
표기)·타임라인을 보여줍니다.
Q. graph-seed 파일은 안전한가요? 외부에 올려도 되나요? A. graph-seed는 가명·역할·관계만 담고 원본 PII는 없습니다. 다만 안정 가명 키(.key) 는 재식별을 가속할 수 있으므로 seed와 같은 폴더에 두거나 외부 서비스에 함께 올리지 마세요. 전송은 사용자가 수동으로 하며 도구가 자동 전송하지 않습니다.
13. 문제 해결(Troubleshooting)
| 증상 | 원인 / 해결 |
|---|---|
| 내보내기 버튼이 비활성 | 체크박스 옆 안내 문구가 이유를 표시(탐지 0건 → ① 자동 탐지 실행, 검수 체크 필요 등). 탐지·토글·처리방식 변경 시 체크 자동 해제됨 |
| 일반 날짜(범죄일시 등)까지 가려짐 | 생년월일(R11)이 함께 잡힘 → 해당 항목 포함 해제 |
| 성명이 안 가려짐 | R10/R20은 기본 후보 — 검수 패널에서 직접 포함 |
| 주소·계좌가 잘못 가려지거나 누락 | R09·R05는 오탐 우려 — 검수 화면에서 확인·수정 |
| 열었더니 글자가 �로 보임 | 파일 인코딩 불명(UTF-8·CP949 아님) — 원본을 UTF-8로 저장해 다시 열기. � 구간은 탐지되지 않는다 |