본문으로 건너뛰기

#006 서류 자동 생성 아키텍처

항목내용
회차6/10
개시일2026-04-20
TierA (기술 아키텍처, Pack 1 Phase 0 착수 선행)
진행 상태✅ 완료 · 수렴 · ADR 0005 발행 (2026-04-20)
참여자 수6인 (Chair · P1 · P12 · P15·P16·P17 신규 · P7 원격)
예상 산출물RAG 파이프라인 스펙 · 비식별화 구현 상세 · 품질 평가 프레임워크 · Pack 별 템플릿 전략 · ADR 0005
선행 ADR0001 · 0002 · 0003 · 0004

Executive Summary (경영진 1분 독해)

  1. Pack 1 Phase 0 착수 전 기술 아키텍처 확정이 목표. #004·#005 에서 확정된 AX 3A·Firebase AI Logic·Tier 1~3·비식별화 4단·Vector Search 격리 원칙을 실행 가능한 파이프라인으로 구체화.
  2. 4축 논의: RAG 구조 · 비식별화 + 재식별 스캐너 · 품질 평가·변호사 diff 피드백 루프 · Pack 별 서류 템플릿 전략.
  3. 신규 3인 (P15 RAG 품질·P16 한국어 법률 LLM·P17 ML 엔지니어) 정식 참여. P7 컴플라이언스 원격 자문.

회의 범위 변경 (2026-04-20 Chair 지시):

  • 집단소송 모듈 Phase 4 이관 (가장 마지막). R1 에서 다뤘던 "집단 손배 배치·쿠팡 파일럿" 관련 논의는 Phase 4 착수 시점에 재논의. 본 회의 R2·R3 는 Pack 1~5 개별 사건 서류 자동 생성 아키텍처 집중.

§1. 참여자 (Participants)

기존 풀에서 재소환 (3인)

P1. 송무 변호사 (개인 사무소)

  • 이번 회의 역할: 서류 초안의 변호사 수용 가능 조건 확정. "초안을 열자마자 변호사가 덮지 않게 하는" 수준이 무엇인지.
  • 관심사: (1) 청구취지·청구원인 초안 품질 (2) 판례 인용 실재성 (3) 변호사 수정 diff 수집 UX.

P12. AI 제품 아키텍트

  • 이번 회의 역할: 전체 파이프라인 설계 주도. AiProvider 어댑터·weight 체계·Firebase AI Logic 정합성.
  • 관심사: ADR 0004 전환 타임라인과 파이프라인 설계 정합.

신규 소환 (3인)

P15. RAG 품질 전문가 (신규 정식)

  • 직업·소속: AI 스타트업 ML 엔지니어 7년차, LLM 평가·Ragas·TruLens·citation precision 전문. #005 참관 후 정식.
  • 경력: RAG 파이프라인 평가 프레임워크 구축 경험 3~4건. 법률·의료 등 high-stakes 도메인 평가 특화.
  • 전문 분야: MRR·nDCG·hallucination detection·citation precision/recall·LLM-as-judge·retrieval eval·Ragas/TruLens.
  • 이번 회의 역할: 품질 평가 프레임워크 설계·hallucination 방어 3단·citation traceability·회귀 테스트 자동화.
  • 관심사: (1) 법률 도메인 특화 평가 벤치 (2) 2년차 피드백 루프의 통계적 유의성 (3) 쿠팡 사태 같은 집단 손배 모듈 품질 기준.
  • 편향: 품질 기준 엄격, 배포 지연 감수.

P16. 한국어 법률 LLM·임베딩 전문가 (신규)

  • 직업·소속: NLP 연구자 + ML 엔지니어 하이브리드 8~10년차. 한국어 법률 도메인 특화.
  • 경력: Ko-SRoBERTa·KoELECTRA·Ko-BigBird 법률 파인튜닝 레퍼런스. 한국 판례 임베딩·HWP 파서·한국어 법률 NER 모델 구축.
  • 전문 분야: 한국어 법률 임베딩 모델 평가·파인튜닝·한국어 NER (법률 개체)·HWP·DOCX 파싱·대법원 판례 구조화.
  • 이번 회의 역할: 한국어 법률 특화 임베딩·NER 모델 선정·법률 용어 사전·Ko-LegalQA 자체 벤치 구축.
  • 관심사: (1) Gemini embedding vs Ko-SRoBERTa 앙상블 (2) 한국어 법률 NER 오탐·미탐율 (3) HWP 5.0 바이너리 파서 완성도.
  • 편향: 한국어 특화 모델 선호, 파인튜닝 과투자 경향.

P17. ML 엔지니어 (신규, 실무)

  • 직업·소속: ML Platform/MLOps 엔지니어 7~9년차. Vertex AI·Cloud Run·Kubernetes. P12 아키텍트 설계의 실행자.
  • 경력: RAG 파이프라인 배포·스케일링·모니터링·A/B 테스트 인프라·LLM 운영 비용 최적화. 대규모 B2B SaaS ML 파이프라인 구축 레퍼런스 3건.
  • 전문 분야: 파이프라인 배포·증분 인덱싱·Cloud Run GPU·비용 최적화·모니터링 (Cloud Logging·Error Reporting·Prometheus)·A/B 테스트 infra.
  • 이번 회의 역할: P12 설계를 Firebase AI Logic + Vertex AI 스택에서 실제 돌아가게 만들기. 배포 파이프라인·모니터링·비용 통제·성능 튜닝.
  • 관심사: (1) 무료 전환 후 AI 호출 3~5배 비용 통제 (2) 대량 집단 손배 원고 배치 처리 (3) 소버린 AI 전환 시 2-phase dual-write 마이그레이션.
  • 편향: 실행·운영 중심. 조기 배포보다 안정성 선호.

원격 자문 (1인)

P7. 보안/컴플라이언스 DPO

  • 원격 자문 역할: 비식별화 4단의 법적 경계·Audit 로그 구조·DPIA 시점 (ADR 0004 Phase 1 말 18M) 지원.

Chair

의사결정·ADR 0005 서명.

이번 회의 불참여

  • P2·P3·P4·P5·P6·P8·P9·P10·P11·P14: 각자 전문 회의에서 등판. #006 은 순수 기술 아키텍처.

§2. 회의 아젠다 (Agenda)

상위 안건

Pack 1 Phase 0 착수 선행 조건으로 서류 자동 생성 파이프라인 아키텍처를 실행 가능한 수준으로 확정한다. ADR 00010004 의 원칙 (AX 3A·Firebase AI Logic·Tier 13·비식별화 4단·Vector Search 격리·Audit·무료) 을 코드·비용·eng-day 로 구체화.

전제 (확정 — 변경 불가)

  • AI 스택: Firebase AI Logic (Gemini) → 국산 소버린 AI 전환 대기. OpenAI·Anthropic 등 대체 provider 금지 (ADR 0004 §4).
  • 벡터 DB: Vertex AI Vector Search 단일 인덱스 + restricts: [{namespace: "tenantId", ...}] 메타필터. Pro tier 별도 인덱스 분리 금지 (ADR 0004 §9, 무료 전제).
  • 비식별화 4단: 정규식 → NER → 재식별 스캐너 → 수동 검토 큐. 강도 moderate 기본.
  • 격리: tenants/{tid}/... 경로 격리 + assertTenantFilter Phase 0 강제 검증 + CMEK Phase 2+ 일괄.
  • Audit: 감사 로그·동의 이력·인용 역추적 UI (3A 공통 전제).
  • weight 체계: 0 (결정론)·1 (단순 AI 호출)·3 (전략 보고서). RAG 참조 weight 2 신설 검토 (P12 R1 제안).
  • embeddingVersion: Day 0 필드 필수.

논의할 4축

Q1. RAG 파이프라인 아키텍처

  • 문서 수집 → 전처리 → 청킹 → 임베딩 → 인덱싱 → 쿼리 → 검색 → reranking → 컨텍스트 조립 → 생성 → 후처리
  • Phase 0 최소 구현 vs Phase 1·2 확장
  • AiProvider 인터페이스 (소버린 전환 준비)
  • RAG 참조 weight 신설 여부
  • 응답 latency 목표 (p50·p99)

Q2. 비식별화 + 재식별 스캐너 구현

  • 한국어 법률 NER 모델 선정 (Ko-BERT 파인튜닝 vs Gemini zero-shot vs HuggingFace 모델)
  • 강도 레벨별 마스킹 범위 (aggressive·moderate·minimal)
  • 재식별 스캐너 알고리즘 (k-익명성 테스트·LLM-as-judge)
  • 수동 검토 큐 UX 및 책임 분담 (사무소 vs 너홀로)
  • HWP·DOCX 파싱 한계 및 폴백

Q3. 품질 평가 + 변호사 수정 diff 피드백 루프

  • RAG 품질 평가 (MRR·nDCG·hallucination detection·citation precision/recall)
  • Ko-LegalQA 자체 벤치 구축 (100~500 문제)
  • 변호사 수정 diff 저장 스키마 (documents/{id}/revisions/)
  • 2년차 DPO 파인튜닝 계획 (or few-shot 예시 재투입)
  • A/B 테스트 infra (Feature flag·shadow traffic)
  • 회귀 테스트 자동화

Q4. Pack 별 서류 자동 생성 템플릿 전략

  • Pack 1 (대여금): 내용증명·지급명령·소장·답변서·준비서면
  • Pack 2 (이혼): 재산분할 계산·양육비·소장·답변서 (위자료·친권·면접교섭 ✗)
  • Pack 3 (부동산): 명도·차임·이전등기 + 집단 손배 모듈 (원고 수백~수천 명 동시)
  • Pack 4 (상속): 유류분·재산분할 심판
  • Pack 5 (계약): 부당이득·계약 손배
  • 각 Pack 의 RAG 컨텍스트·NER 개체 유형·변호사 diff 학습 목표

진행 계획

  • Tier A, 3회차 예상
  • R1: 6인 병렬 독립 발산 (P7 원격 자문 포함)
  • R2: 5~6인 크로스 토크
  • R3: 수렴·ADR 0005 발행 · Phase 0 착수 Go/No-Go 관문 확정

예상 산출물

  • RAG 파이프라인 블록 다이어그램 + 각 블록 eng-day·비용
  • 비식별화 4단 구현 상세 (코드 스켈레톤·NER 모델·재식별 스캐너)
  • 품질 평가 프레임워크 + Ko-LegalQA 벤치 구축 계획
  • Pack 1~5 템플릿 전략 매트릭스
  • ADR 0005 — 서류 자동 생성 아키텍처

§3. 회의 내용 (Proceedings)

§3.1 Round 1 — 독립 발산 (완료, 2026-04-20)

한 줄 요약 (6인)

역할핵심 입장
P1 변호사"초안 수용 10 조건": 판례 인용 100% 실재 · 조문 current · 청구취지 숫자 정확 · 사무소 문체 · 판사 tendency 반영 · 반대 가능성 언급. 비식별화 UI 이중 레이어 (화면 원본, 서버 마스킹본). diff 수익 분배 (크레딧 환급). Pack 별 killer: 대여금 차용증 OCR·이자 테이블 / 이혼 부동산등기부 PDF 드래그 / 쿠팡 1,000명 위임장 OCR + 원고 포털. 3개월 후: 준비서면 2h→40m, 월 1건 더 수임.
P12 AI 아키텍트12 블록 × Phase 0/1/2 매트릭스. AiProvider 인터페이스 코드 + weight 2 신설 (RAG 참조, $0.018/호출). assistLimit 재조정 free 6 · starter 60 · pro 220. Vector Search 단일+restricts, 768 dim, docType namespace 논리 분리. 집단 손배: RAG 1회 공유 + 원고 weight 1 × N, 1,000명 $8/case. Phase 0 28 eng-day · Phase 1 95 · Phase 2 180 · Phase 3 120 (총 423). 놓친 리스크: embeddingVersion silent corruption · Gemini 빈 JSON 환불 누락.
P15 RAG 품질Ragas 채택 + citation validator 자체. Ko-LegalQA Phase 0 100문제 (판례 40·조문 30·청구원인 20·계산 10). Hallucination 방어 3단: 사건번호 재조회 (자동 삭제) · 조문 법령정보센터 API (하이라이트) · 변호사 서명 전 체크리스트. Citation Precision 0.95+ non-negotiable. diff citationChanges.removed > 0 → hallucination 회귀 경보. 집단 손배 1,000명 → 50명 샘플 자동 검증 + 변호사 서명. Phase 0 Week 1 품질 인프라 착수 필수.
P16 한국어 법률 LLM (신규)Phase 0 = Gemini 단일, Phase 1 = KURE-v1 앙상블 (RRF). NER Phase 0 정규식 + Gemini zero-shot structured output. 법률 용어 사전 Pack 별 100단어. HWP 5.0 텍스트만 + HWPX/DOCX/PDF Phase 0, pyhwp Phase 1. 청킹 조 경계 512 token + 15% 오버랩. 재식별 k≥5 (지명+금액+날짜 / 사건번호+법원 조합). 놓친 리스크: 한자 정규화·법원 명칭 변경·토크나이저 불일치 숨은 폭탄 (청킹 char 기반 Phase 0 강제).
P17 ML 엔지니어 (신규)Cloud Run NER/embedding min=0, Functions 짧은 trigger. 증분 인덱싱 60초 지연 · 10만 문서 1.5h $120 · 100만 $1,200. 비용 5단 절감 월 $20K → $10~12K. 집단 손배 1,000명 $5.90 · 10,000명 $59. assertTenantFilter CI + 런타임 + Sentry 3중. Phase 0 28 · 1 60 · 2 75 · 3 90 (합 253 eng-day). 놓친 리스크: 콜드 스타트 누적 (warm pool min=1)·Cloud Tasks 쿼터·Firestore write contention (분산 카운터).
P7 컴플라이언스 (원격)4단 회로차단기 (fail-closed). 수동 검토 사무소 변호사만, 사무원 금지 (제26조 주체 아님). k≥10 권장 (법률 보수). DPIA 외부 전문기관 6~8주 · Phase 1 중반 12M 착수. 수임약정서 + DPA 2중 (도입 거부 사무소 기능 disable). 쿠팡 집단소송 tenant 물리 격리 + AI 원칙 금지 권고. Phase 0 fail-closed 5 조건: 사이버 보험·DPA·SOP·회로차단기·WORM Audit. AI 기본법 2026.1 시행 — 고영향 AI 지정 가능성 외부 법률자문 필수.

발언 전문 (축약)

원본 전문은 매우 길어 핵심 결정·스펙·수치 중심으로 축약. 필요 시 원본 복원 가능.

P1. 변호사 — 초안 수용 10 조건
  1. 판례 인용 100% 실재 (Mata 이후 AI 사건번호 복붙 전 대법원 검색 필수 개인 룰)
  2. 법령 current 버전 (개정 이력 반영)
  3. 청구취지 숫자 한 자리도 틀리지 않음
  4. 당사자 표시 완전성 (주민번호 뒷자리·주소·송달장소)
  5. 별지 계산서 엑셀 xlsx 원본 호환 (PDF ✗)
  6. 사무소 문체 학습 ("피고는 ~하였는 바" 패턴)
  7. 판사 tendency 반영 (Tier 3)
  8. 반대 가능성 언급 ("피고는 ~ 주장할 것으로 예상")
  9. 인용 출처 각주 토글 (제출본 꺼짐, 검토본 켜짐)
  10. word count 범위 준수

비식별화 현장 수용: "원본으로 작성해주세요"가 첫 반응. UI 이중 레이어 — 화면 원본, 서버·학습 마스킹본 자동 분리. 수동 검토는 변호사 직접 (사무원 금지), 큐 1건당 15초 이내. 재식별 사고 DPA + 너홀로 법률자문 무료 제공 없으면 Tier 2 이상 올릴 변호사 없음.

diff 수집 조건: opt-out 버튼 사건 단위 (이혼·성범죄·집단 손배 개별 원고 OFF) · 학습 범위 투명 · 크레딧 환급 수익 분배. 자동 diff 수집이 수동 피드백 버튼보다 나음.

Pack 별 killer:

  • Pack 1: 차용증 OCR → 이자·변제 테이블 자동 → 30분 절약
  • Pack 2: 부동산 등기부·예금 거래내역 PDF 드래그 → 재산 목록 자동 분류. 분할 비율은 변호사 판단
  • Pack 3 (쿠팡): 위임장 스캔 OCR → 원고 테이블 자동 + 미제출 daily 리포트 + 개별 원고 포털 (1,000명 전화 불가)
  • Pack 4: 유류분 RAG 우수. 기여분은 AI 금지, 체크리스트만
  • Pack 5: 부당이득 유형 분류 3 질문 → 분기 템플릿

변호사법 방어: 외부 송출 전 변호사 승인 게이트 hard-coded, 사무장 권한 차단, 의뢰인 AI 고지 자동, 인용 pin-cite + 검증 hash 로그.

안 쓸 시나리오: (1) 초안 판례 인용 3회 연속 오류 → 영구 이탈. Citation Precision 99.9% 미만 시 feature flag off (2) AI 가 내 수정본으로 경쟁 변호사 초안 강화 증거 → 감정적 이탈.

3개월 후 기대: 준비서면 1건 2h → 40m · 야근 주 3 → 주 1 · 월 1건 더 수임.

P12. AI 아키텍트 — 전체 아키텍처

12 블록 Phase 0/1/2 매트릭스:

  1. 수집: HWP(hwp.js)·DOCX(mammoth)·스캔(Document AI) → 자동 축적 trigger → 집단 손배 배치
  2. 전처리: 비식별화 4단 + SHA256 dedup → Tier 1 → Tier 2 옵트인
  3. 청킹: 512 token·overlap 64 조항 경계 → semantic splitter → 집단 손배 원고별
  4. 임베딩: Gemini text-embedding-004 (768 dim) 단일. embeddingVersion Day 0. Ko-SRoBERTa 앙상블 28M 재검토 (이중 인덱스 비용 2x)
  5. 인덱싱: restricts: tenantId 필수 · shard 1→4, replica 1→2, CMEK Phase 2+
  6. 쿼리확장: 없음 → 동의어 사전 1,500개 → LLM HyDE
  7. 검색: top-K=20·assertTenantFilter 강제 → 필터 확장
  8. Rerank: Phase 0 없음Gemini Flash 자체 cross-encoder(Cohere 제외 — 외부 API 우회 우려) → KoBERT distill self-host
  9. 컨텍스트 조립: 사무실 기억 + 사건 요약 → + 조문·판례 → + 집단 손배 템플릿
  10. 생성: Gemini Flash structured JSON → Pro 분기 (전략) → tool-use (조문 조회·계산)
  11. 후처리: 실재성 검증 (사건번호 DB 조회 + 조문 국가법령정보 API) · 워터마크 · 환각 샘플링
  12. Audit: tenants/{tid}/auditLog/ → BigQuery export → 개인정보위 제출 포맷

AiProvider 인터페이스 코드:

export interface AiProvider {
readonly providerId: "gemini" | "hyperclova" | "solar";
readonly embeddingVersion: string;
generate(contents, opts?): Promise<GenerateResult>;
embed(texts): Promise<EmbedResult>;
rerank(query, candidates): Promise<RerankResult>;
}

Phase 0 리팩터 6 eng-day (lib/ai/client.tslib/ai/providers/gemini.ts + 배럴 래퍼).

weight 체계 확장:

weight기능실비
0대시보드 브리핑 (공유)$0.003
1문서·증거 요약$0.008
2 (신설)RAG 참조 (top-20 → rerank top-5 → 생성)$0.018
3전략 보고서$0.035

assistLimit 재조정 (전 기능 무료 하 쓰로틀): free 6 · starter 60 · pro 220. Phase 2 후반 pro 40% 가정 시 월 $22,000 (+8% vs ADR 0004). ADF 지표 상승으로 상쇄.

latency 목표: weight 1 p50 1.5s/p99 5s · weight 2 3s/8s · weight 3 10s/30s. p99 30% 초과 시 Cloud Monitoring alert → degraded mode.

Vector Search: 단일 인덱스 + 사무실 기억(docType=memory) + 공용 판례(docType=publicCase, tenantId=PUBLIC) namespace 논리 분리. 쿼리 시 tenantId IN [myTid, PUBLIC]. 768 dim, shard 1→2→4, replica 1→2.

Phase 별 eng-day: Phase 0 28 · Phase 1 95 · Phase 2 180 · Phase 3 120 = 총 423. 2명 풀스택 × 10개월 = Phase 3 완주.

놓친 리스크 2:

  1. embeddingVersion silent corruption — assertEmbeddingVersion(query, current) 유닛 테스트 Phase 0
  2. Gemini 빈 JSON 환불 누락 — classifyRefund/Unexpected (end of JSON|token)/i 추가 (0.5 eng-day)
P15. RAG 품질 — 평가·피드백

Ragas 채택 + citation validator 자체 (tools/eval/citation_validator.py — 국가법령정보 API + 대법원 검색 HEAD).

Ko-LegalQA v0.1 (Phase 0, 100문제):

  • 단답 조문 40 · 판례 매칭 30 · 청구원인 20 · 계산 10
  • 평가자: 시니어 변호사 2명 + 주니어 1, 인당 20만원 × Pack × Phase = 600만원 예산

Hallucination 방어 3단 상세:

단계검증구현LatencyUX
1. 사건번호 재조회정규식 → 대법원 HEAD+200~400ms 병렬자동 삭제 + 경고 배지
2. 조문 실재 확인국가법령정보 API + 24h 캐시+50~100ms하이라이트 경고 (개정 false positive 대비)
3. 변호사 서명 전 체크리스트DocSignGate 컴포넌트UX 15초미체크 제출 불가

False positive 대응: 조문 개정 → HEAD 실패 시 3초 재시도 1회 · 폐지 조문 status repealed 배지 · 관리자 화이트리스트 config/citationOverrides/.

diff 스키마 확장:

{
originalText, finalText,
diff: {
levenshtein, editRatio, sectionEdits: Record<string, number>,
fullReplace: boolean, citationChanges: { added, removed, modified }
},
modelVersion, promptVersion, experimentId?
}

품질 회귀 탐지:

  • baseline: 직전 30일 editRatio 중앙값
  • 알람: rolling 7일 editRatio +15%p 상승 → Slack
  • citationChanges.removed > 0 비율 5% 초과 → hallucination 회귀 경보
  • fullReplace rate 10% 초과 → 프롬프트 롤백

A/B infra: config/appMetadata.features.ai.experiments.{name}.rollout deterministic bucketing. 최소 샘플 200건/variant.

Phase 별 품질 목표:

지표P0P1P2소버린 Go
Faithfulness0.850.920.950.90+
Citation Precision0.95 (hard)0.970.980.95+
Ko-LegalQA F10.700.800.880.80+
변호사 editRatio 중앙값<0.35<0.20<0.12<0.20

소버린 Go 3개 동시: Ko-LegalQA F1 0.80+ AND Faithfulness 0.90+ AND Citation Precision 0.95+. 단일 지표 cherry-pick 금지.

집단 손배 품질 기준:

  • 사건번호·조문 오류 0건
  • 손해액 오류 <0.1% 원고 (1,000명 중 1명 이하)
  • 청구원인 부정확 <2%
  • 인적사항 mismatch 0건
  • 1,000명 → 랜덤 50명 sample-verify 재계산 불일치 시 전체 배치 차단

놓친 품질 리스크 2:

  1. 한국어 형태소로 인한 retrieval drift — Phase 0 Week 2 Mecab 전처리 + BM25 하이브리드 ablation
  2. "침묵의 회귀" — production 쿼리 주간 20건 샘플 벤치 지속 추가 (drift-aware benchmarking)
P16. 한국어 법률 LLM (신규)

임베딩 모델 매트릭스:

모델dim한국어비용Latency결정
gemini-embedding-0013072 MRL다국어$0.00013/1K120msPhase 0 선택
KURE-v1 (bge-m3 한국어 파인튜닝)1024법률 특화자체80msPhase 1 앙상블
upstage/solar-embedding-1-large4096MTEB-ko 1위$0.10/1M150ms28M 재검토
jhgan/ko-sroberta-multitask768KorSTS 84.77자체40ms앙상블 대안

Phase 0 = Gemini 단일, Phase 1 = KURE-v1 앙상블 (RRF), 법률 전문 용어에서 Gemini 단독 대비 recall@10 +8~12%p 예상.

NER 하이브리드 2-pass:

  1. Pass 1 정규식: 주민번호·계좌·사건번호·법령 조문 — 100% recall 타겟
  2. Pass 2 Gemini zero-shot structured output: 인명·지명·금액·법원·판례번호 — few-shot 20예시
  3. Pass 3 재식별 스캐너 (Q7)

오탐·미탐: 미탐 <1% (주민번호·계좌 0%), 오탐 <15% (마스킹 과잉).

파인튜닝 데이터: AI-Hub 행정문서 NER 코퍼스 + 모두의 말뭉치 NE + 자체 라벨링 (판례 500건 × 변호사 1명 × 20h, Phase 1).

법률 용어 사전 Phase 0: Pack 별 100단어 · 쿼리 전처리 3~5개 변형 + 병렬 retrieval + RRF. 출처: 법령용어사전 (국가법령정보 Open API) · 법률용어 위키 공식 dump.

HWP 파서 매트릭스:

포맷라이브러리완성도결정
HWP 5.0hwp.js60% (텍스트만)Phase 0 텍스트만, 표 누락 경고 UI
HWP 5.0pyhwp (Python)70%Phase 1 Cloud Function 분리
HWPX자체 XML 파서100%Phase 0
DOCXmammoth.js95%Phase 0
PDFpdf-parse90%Phase 0 + Document AI OCR

청킹 한국어 특화:

  • 구조 우선 제N조 > 항 > 호 > 목 hard boundary (조 경계에서만 split)
  • 한국어 1 token ≈ 1.5 char (법률 용어 2 char/token)
  • Phase 0 512 token ≈ 800 char · 오버랩 15% (한국어 응집성)
  • 판례 3-part 분리: 판결이유 · 결론 · 참조조문

재식별 스캐너 k≥5 조합 플래그:

  • 지명 + 금액 + 날짜
  • 사건번호 + 법원 (패턴 매칭 자동 마스킹)
  • 직업 + 연령대 + 구 단위 지역
  • 판례번호 직접 인용 (원본 판결문 실명 리스크)

소버린 전환 숨은 폭탄: 토크나이저 불일치 (Gemini SentencePiece → Solar BPE). 동일 500 token 청크가 380/580 변동 → 문맥 손실. 청킹 char/sentence 기반 Phase 0 강제.

놓친 리스크 3:

  1. 한자·한글 혼용 OCR (옛 판례 國家賠償法 第2條 vs 국가배상법 제2조) — Phase 0 정규화 레이어
  2. 법원 명칭 변경 (서울지법 → 서울중앙·동부) — 법원행정처 공개 데이터 alias map
  3. 소버린 토크나이저 불일치 (상기)
P17. ML 엔지니어 (신규)

배포 아키텍처:

단계런타임트리거리소스latency
수집(OCR)Cloud Functions v2Storage onFinalize512MB·60s200ms/2s
NERCloud Run (min=0, max=20)HTTP2vCPU·4GB400ms/1.5s
임베딩Cloud Run (min=0, max=50)HTTP batch 10건/req1vCPU·2GB600ms/2s
인덱싱Cloud Functions v2Pub/Sub256MB·30s150ms/500ms
RAG 쿼리Server ActionHTTPApp Hosting80ms/300ms
생성Server Action + Firebase AI LogicHTTP클라2s/8s
AuditCloud FunctionFirestore onWrite256MB·10s50ms/200ms

증분 인덱싱:

  • 실시간 upsert: 60s 지연 목표 (Firestore onWrite → Pub/Sub embedding-queue → Cloud Run batch max 10건/5s)
  • 대량 배치 (10만): 1.5h $120 · 100만 (소버린 전환): 8h $1,200 야간 window

비용 5단 통제:

전략Phase절감eng-day
1. 캐싱 계층화0~125~35%8
2. Rate limit 3단 (user·tenant·feature)05% 남용 차단5
3. Batch API (야간 drain)120% 비긴급10
4. 모델 티어링 (Flash-Lite·Flash·Pro)140~50%12
5. 로컬 추론 (Phase 3 WebLLM + Gemma 2B T4)330~40% 추가40

누적 효과: 월 $20K → $10~12K 압축.

집단 손배 배치 (쿠팡):

[변호사 CSV 1K~10K] → validate + 100-row chunks
→ Cloud Tasks (50/s · max_concurrent 100 · deadline 600s)
→ Cloud Run plaintiff-doc-gen (min=5 warm · max=100)
→ Firestore cases/{id}/plaintiffs/{pid}/generatedDocs
→ onCreate 진행률 카운터 + 변호사 알림
  • 1,000 원고 = $5.90 · 10,000 원고 = $59 · Batch API 50% 할인 시 $30/만명
  • 체크포인트 batchJobs/{jobId}/items/{pid}.status 부분 재실행

모니터링 SLO:

지표목표Alert
RAG p99< 3s> 5s 5분
생성 p99< 10s> 15s 5분
error 5xx< 0.5%> 2% 3분
refund rate< 3%> 7% 10분
일 AI 비용예산120% 즉시·150% paging

A/B infra: Feature flag + shadow traffic (fire-and-forget) + P15 diff editRatio 연동 자동 롤백 (> 40% 24h 지속).

assertTenantFilter 3중:

  1. 유닛 테스트 (모든 Firestore query 검증)
  2. CI 차단 (apps/web/scripts/check-tenant-filter.ts AST 검사, build fail)
  3. 런타임 guardedQuery + Sentry 즉시 알림

Phase 별 eng-day: Phase 0 28 · Phase 1 60 · Phase 2 75 · Phase 3 90 = 총 253. Phase 1부터 2명.

신규 발견 리스크 3:

  1. 콜드 스타트 누적 — min=0 체인 시 첫 RAG 요청 8~12초. 핵심 경로 min=1 warm pool (월 $40)
  2. Cloud Tasks 쿼터 (default 500/s) — 10K 원고 배치 시 큐 샤딩 (batch-a, batch-b)
  3. Firestore write contention — 공유 카운터 counters/ai-assists 초당 1회 한계 → 분산 카운터 10 shard Phase 1 필수
P7. 컴플라이언스 DPO (원격 서면)

4단 비식별화 회로차단기 (fail-closed):

  1. 정규식 (주민·계좌·사건번호·조문) — 실패율 > 0 이면 수동 큐 강제
  2. NER (가명처리, 신뢰도 < 0.85 수동 큐)
  3. 재식별 스캐너 (k ≥ 10 권장, 법률 도메인 보수)
  4. 수동 검토 — 사무소 변호사만 (사무원 금지, 제26조 주체 아님). 너홀로 DPO 월 5% 스폿체크 + 수임약정서 조항 명시 필수.

강도 레벨 법적 지위:

  • aggressive = 익명처리 (제2조 제1호 단서, 외부 송출·파인튜닝·연구 가능)
  • moderate = 가명처리 (제28조의2, 사무소 내 + 동의 내부 연구)
  • minimal = 개인정보 (Tier 1 참조만, 외부 송출 절대 금지)

Phase 별 기본: Phase 0 moderate 강제 (minimal UI 제공 금지). Phase 2 Tier 2 RAG: aggressive 기본 + moderate 옵션.

DPIA 앞당김 지지 (쿠팡 사태 과징금 1,400억 추정 반영):

  • 외부 전문기관 필수 (자기검증 비판 불가피)
  • 68주 소요 · 비용 2,0004,000만원
  • KISA 중소기업 DPIA 지원사업 (최대 80% 지원)
  • 개인정보위 사전 협의 = 감경 사유 (쿠팡 사태 이후 AI+법률 도메인 특별 주시)
  • Phase 1 중반 12M 착수, 18M 완료

수임약정서 + DPA 2중:

  • 약관만으로 위탁 요건 불충족 (제26조 문서화 강제)
  • 전자서명 강제 (HelloSign)
  • 도입 거부 사무소 = 파이프라인 기능 disable (fail-closed)

Audit 보존 기간 (보수 권고):

  • read: 5년 통일 (민사 소멸시효 + 쿠팡형 집단소송 대비)
  • write: 5년 (변호사법 제15조)
  • AI 호출: 최소 2년 (변협 징계시효 2년 + AI 환각 사후검증)

쿠팡 집단소송 tenant 특수 조치 (강경):

  1. 별도 물리 격리 (Firestore 별도 프로젝트 or DB)
  2. AI 파이프라인 자동 비활성 (원고 PII LLM 유출 리스크)
  3. 고위험 플래그 features.infraHardening.classActionMode
  4. Audit WORM append-only (BigQuery export or GCS immutable)
  5. Phase 2 이후 별도 ADR 로 격리 — 일반 모듈에 묻어가면 안 됨

재식별 사고 SOP 72h:

  • T+0~1h: 킬 스위치 발동·법무이사·CEO 통보
  • T+1~6h: 영향 범위 확정
  • T+6~24h: 외부 포렌식 contact·증거 보전
  • T+24~72h: 개인정보위 신고 (privacy.go.kr) + 정보주체 개별 통지
  • T+72h 이후: 홈페이지 공지 7일 + 피해구제 창구

사이버 배상책임보험: Phase 0 착수 전 가입 필수, 한도 10억 이상. 2026.Q2 내 가입 (쿠팡 후 보험료 급등).

AI 기본법 2024.12 제정, 2026.1 시행:

  • "사법·준사법 분야에서 개인의 권익에 중대한 영향" = 고영향 AI 가능성 높음
  • 지정 시 투명성·위험관리·영향평가 가중
  • Phase 0 시점 외부 법률자문 필수

놓친 법적 리스크 5:

  1. 개보법 2026 개정 자동화 결정 대응권 (제37조의2) 강화
  2. AI 기본법 고영향 AI 지정
  3. 변호사법 제34조 비변호사 제휴 금지 — "실질적 법률사무" 해석 시 위반. 대한변협 2025.3 "AI 법률서비스 가이드라인" 추적 필수
  4. GDPR 간접 적용 (EU 거주 의뢰인 1명만 있어도). 72시간 엄격 해석. tenant 설정 "EU 포함" 플래그
  5. 전자서명법 제3조 본인확인 — 집단소송 원고 공인전자서명 필수. 포털 4자리 코드 재검토

Phase 0 fail-closed 5 조건:

  1. 사이버 배상책임보험 가입
  2. 표준 DPA + 수임약정서 조항 법률자문 완료
  3. 재식별 사고 대응 SOP + 전 직원 교육
  4. 비식별화 4단 중 1·3단계 회로차단기 구현
  5. Audit 로그 WORM export 경로 (최소 GCS immutable bucket)

최종 권고: 집단소송 모듈은 Phase 2 이후 별도 ADR 로 격리. 쿠팡 리스크는 일반 모듈에 묻어가면 안 됨.

§3.2 Round 2 — 생략 (2026-04-20)

Chair 선결정 2건(C5 Phase 0 fail-closed 우선순위 분리 · C4 diff 수집·활용 분리) + 합의 25개 두터움 → R2 크로스 토크 생략, R3 로 직접 진행.

§3.3 Round 3 — 수렴·결정 (완료, 2026-04-20)

Chair 선결정 2건

  1. C5 Phase 0 fail-closed 우선순위 분리: 보험·DPA Phase 0 전 2개 필수 · 회로차단기·WORM·SOP 3개 병행
  2. C4 diff 수집·활용 분리: 수집 Phase 0 즉시 + 파인튜닝 활용 Tier 3 시점

기술 절충 3건 자동 확정

  • C2 k 값: k=5 기본 + 고위험 문서 k=10 조건부 (P16 표준 + P7 보수 균형)
  • C3 HWP 파싱: Phase 0 텍스트만 + 경고 UI ("HWPX·DOCX 권장") + Phase 1 pyhwp Cloud Function
  • C6 수동 검토 주체: 사무소 변호사만 (사무원 금지, 변호사법 제26조)

ADR 발행

ADR 0005 Accepted — 2026-04-20. 12 블록 RAG·AiProvider + weight 2·비식별화 4단·품질 평가·Hallucination 3단·Vector Search 격리·한국어 특화·Phase 0 fail-closed·diff 분리·비용 5단·SLO·총 676 eng-day.


§4. 결과 (Outcomes)

§4.1 충돌 지점 (R2 대상)

🔥 정면 충돌

C1. 집단 손배 모듈 Phase 2 편입 여부 ⚠️

  • P1 변호사: 쿠팡 1,000명 위임장 OCR + 원고 포털 = killer feature. Phase 2 중반 24M 착수 (ADR 0004 확정)
  • P12 아키텍트: 1,000명 $8/case 배치 설계 상세, 기술적으로 구현 가능
  • P17 ML: 1,000명 $5.90 실현성, Cloud Tasks 샤딩
  • P7 컴플라이언스 강경: "쿠팡 집단소송 tenant 물리 격리 + AI 파이프라인 자동 비활성 + Phase 2 이후 별도 ADR 로 격리"
  • → ADR 0004 "Phase 2 중반 24M" vs P7 "Phase 2 이후 별도 ADR" 충돌

C2. 재식별 스캐너 k 값

  • P7: k ≥ 10 (법률 도메인 보수)
  • P16: k ≥ 5 (표준 · 지명+금액+날짜 조합)
  • P15: 조합 위험 LLM-as-judge
  • → 10 vs 5 의 비용·품질 트레이드오프

C3. HWP 5.0 파싱 완성도

  • P16: Phase 0 텍스트만, 표 누락 경고 UI
  • P1: 변호사 HWP 의존 90% → 표 누락 수용 가능한가?
  • → HWP 현실 수용 vs Phase 1 (pyhwp) 앞당김

C4. diff 파인튜닝 활용 시점

  • P1: opt-out·크레딧 환급·사건 단위 동의
  • P7 강경: Tier 3 1년 유예 전 활용 절대 금지 · 변호사 개별 + DPA 2중 동의
  • P12: Phase 2 후반 학습 활용
  • P15: A/B 회귀 탐지 핵심 (수집은 즉시)
  • → 수집 vs 활용 분리 필요

C5. Phase 0 fail-closed 5 조건 현실성

  • P7 강경: 사이버 보험·DPA·SOP·회로차단기·WORM Audit → Phase 0 착수 전 완료 필수
  • P12·P17: Phase 0 eng-day 56 (28+28) — 4주 안에 이 모두 들어갈 수 있나
  • → 비현실적 vs 필수

C6. 비식별화 수동 검토 주체

  • P7: 사무소 변호사만, 사무원 금지 (제26조 주체)
  • P1: 본인이 직접 한다 (큐 1건당 15초)
  • → 합의 실질 (변호사만)

🟡 세부 조정

C7. Ko 임베딩 모델 — Ko-SRoBERTa 앙상블 시점

  • P12: 28M 재검토 (이중 인덱스 비용 2x)
  • P16: Phase 1 (문서 50만+ or 변호사 recall 불만 10건/월)
  • → 6개월 차이

C8. 소버린 AI 모델 1순위

  • P12: HyperCLOVA X 1순위
  • P16: Upstage Solar 한국어 MTEB-ko 1위 (Phase 1 임베딩 KURE-v1 한국어 법률 특화)
  • → HyperCLOVA X 유지, Solar 는 임베딩 옵션

C9. 로컬 추론 도입 시점

  • P17: Phase 3 (Gemini $8K/월 이상 손익분기)
  • → 합의 (Phase 3)

C10. Ko-LegalQA 평가자 예산

  • P15: 600만원 예산 (변호사 2명 × Pack × Phase)
  • → 확정 가능

🆕 신규 리스크 (5개 새 축)

C11. embeddingVersion silent corruption (P12)

  • 쿼리 시 필터 누락 시 구버전 벡터 섞여 precision 급락. assertEmbeddingVersion(query, current) 유닛 테스트 Phase 0

C12. 콜드 스타트 누적 (P17)

  • min=0 체인 시 첫 RAG 8~12초. 핵심 경로 min=1 warm pool (월 $40)

C13. Firestore write contention (P17)

  • 공유 카운터 초당 1회 한계 → 분산 카운터 10 shard Phase 1

C14. 토크나이저 불일치 (소버린 전환 숨은 폭탄) (P16)

  • Gemini SentencePiece → Solar BPE 청크 경계 shift. 청킹 char/sentence 기반 Phase 0 강제

C15. AI 기본법 2026.1 고영향 AI 지정 가능성 (P7)

  • "사법·준사법 분야 권익 중대 영향" 조항 → 투명성·영향평가 가중. 외부 법률자문 Phase 0 필수

§4.2 합의된 지점

  • AiProvider 인터페이스 Phase 0 도입 (lib/ai/providers/gemini.ts)
  • weight 2 (RAG 참조) 신설 (P12 제안 전원 수용)
  • assistLimit 재조정 (free 6 · starter 60 · pro 220)
  • ✅ Vector Search 단일 인덱스 + restricts, 768 dim
  • ✅ 사무실 기억·공용 판례 docType namespace 논리 분리
  • Ragas + 자체 citation validator 채택
  • Ko-LegalQA v0.1 (100문제) Phase 0 착수
  • Citation Precision 0.95+ hard gate
  • ✅ Hallucination 방어 3단 (사건번호·조문·체크리스트)
  • 소버린 Go 조건 3개 동시 (Ko-LegalQA F1 0.80+ AND Faithfulness 0.90+ AND Citation 0.95+, 단일 지표 cherry-pick 금지)
  • embeddingVersion Day 0 + assertEmbeddingVersion 유닛 테스트
  • assertTenantFilter 3중 (유닛·CI·런타임+Sentry)
  • 청킹 char/sentence 기반 Phase 0 (토크나이저 불일치 대비)
  • ✅ NER 하이브리드 2-pass (정규식 + Gemini zero-shot structured)
  • ✅ 법률 용어 사전 Pack 별 100단어 (국가법령정보 Open API)
  • ✅ HWP 파서: Phase 0 hwp.js 텍스트만 + 표 누락 경고 UI · Phase 1 pyhwp Cloud Function
  • ✅ 집단 손배 1,000명 → 50명 샘플 자동 검증 + 변호사 서명
  • assertTenantFilter CI 차단 (PR build fail)
  • ✅ 수동 검토 주체: 사무소 변호사만 (사무원 금지, 제26조)
  • ✅ Audit 보존: read/write 5년 통일, AI 호출 2년+
  • 사이버 배상책임보험 Phase 0 착수 전 가입 (10억+)
  • 수임약정서 + DPA 2중 (전자서명 강제, 도입 거부 = 기능 disable)
  • ✅ 분산 카운터 10 shard Phase 1
  • ✅ 핵심 경로 Cloud Run min=1 warm pool
  • ✅ 모니터링 SLO + Cloud Logging 구조화 + BigQuery export

§4.3 최종 결정 (R3 수렴, 2026-04-20)

12개 항목 확정 (ADR 0005 §1~§12):

  1. RAG 12 블록 아키텍처 (Phase 0~2 점진)
  2. AiProvider + weight 2 (RAG 참조) 신설 + assistLimit 6/60/220
  3. 비식별화 4단 (회로차단기, k=5 기본·고위험 k=10, moderate 기본)
  4. Ragas + Ko-LegalQA 100문제 · 품질 목표 Phase 별
  5. Hallucination 방어 3단
  6. diff 수집 Phase 0 즉시 · 활용 Tier 3 시점
  7. Vector Search 단일 인덱스 + restricts + namespace + assertTenantFilter 3중
  8. 한국어 특화 (Gemini 단일·char 청킹·HWP 텍스트만·한자 정규화·법원 alias)
  9. 집단소송 Phase 4 이관 (ADR 0004 정합)
  10. Phase 0 fail-closed 우선순위 분리
  11. 비용 통제 5단 + 배포 (Cloud Run min=0·핵심 경로 min=1 warm)
  12. Phase 별 eng-day 총 676 (2명 17개월 Phase 3 완주)

§4.4 ADR 0005 발행

ADR 0005 Accepted 2026-04-20 — 서류 자동 생성 아키텍처 통합.

§4.5 Minority Report (ADR 0005 에 공식 보존)

  • P7: k≥10 법률 보수 권고 (Phase 2 DPIA 시 재평가)
  • P7: diff 활용 Tier 3 완전 금지 (실질 수용, 수집만 Phase 0)
  • P1: Citation Precision 99.9% 미만 시 feature flag off (0.95 hard 채택, 99.9% aspirational)
  • P17: 콜드 스타트 8~12초 UX 치명 (warm pool min=1 수용)
  • P16: 토크나이저 불일치 소버린 전환 폭탄 (char 청킹 Phase 0 강제 수용)

§4.6 후속 안건

Phase 0 착수 전 필수 (ADR 0005 §12 후속 과제 전 체크리스트 참조):

  • 사이버 보험 10억+ · 수임약정서·DPA · AI 기본법 외부 자문 · 법령정보 API · Ko-LegalQA 변호사 섭외

다음 회의 예정:

  • #007 법고을·판례 DB 접근 실사 (RAG 공개 판례 소스)
  • #008 법원 API·화상 재판 파트너십 (Phase 3 준비)
  • #009 AX 교육·변화 관리 (Phase 1 후반)

진행 기록

회차상태일자산출
R1 (6인 병렬 발산)✅ 완료2026-04-20P15·P16·P17 신규 · P7 원격. 6개 정면 충돌 + 10개 세부 조정 + 5개 신규 리스크 + 25개 합의
R2 (크로스 토크)⏸ 생략2026-04-20합의 25개 두터움 + Chair 선결정 2건으로 R3 직진
R3 (수렴·ADR)✅ 완료2026-04-2012개 항목 확정. ADR 0005 Accepted. 집단소송 Phase 4 이관 (ADR 0004 §1 정합)

참고 문서