LFA v0 출시 — 14개 모듈을 만든 하루
한국 민사·형사 교차 사건을 분석하는 14모듈 오픈소스 프레임워크 LFA를 v0로 GitHub에 공개했습니다. 시작부터 푸시까지 한 세션.
시작 — 합성 데이터 기반 한국 법률 도구가 없다
한국 본인소송(직접 변호) 비율이 OECD 상위권이라는 통계를 본 적이 있습니다. 민사 50% 이상이 변호사 없이 진행되고, 소액사건일수록 비율이 더 높아집니다. 그런데 본인소송 당사자를 위한 분석 도구는 사실상 없습니다.
기존 리걸테크 도구는 대부분 변호사용 검색·문서 도구입니다. 비변호사가 자기 사건을 분석하는 데 쓸 수 있는 모듈식 프레임워크는 한국어로 거의 없었습니다.
또 하나 — 한국 법률 사건 시뮬레이션을 만들려면 현실적 분포의 합성 페르소나가 필요한데, 이게 큰 진입장벽이었습니다. 그러다 NVIDIA가 Nemotron-Personas-Korea를 풀었습니다. KOSIS 통계 + 대법원 데이터로 만든 600만 합성 한국 페르소나, PII zero, PIPA 준수. 이거 하나로 시뮬레이션 라인이 가능해졌습니다.
설계 — 두 트랙 + 어드버서리얼 루프
LFA는 14개 모듈로 구성됩니다.
트랙 A — 분석 (8 모듈)
CASE_SCANNER → LOGIC_BREAKER → PRECEDENT_HUNTER → DOC_WRITER
↓
HUMAN_REVIEW → FACT_VERIFIER → COUNTER_SIMULATOR → TIMELINE_CONFLICT_DETECTOR
사건 입력(PDF/DOCX/HWP/이미지)을 구조화된 사실 레코드로 파싱 → 약점 탐지 → 판례 검증 → 서면 초안 → 사용자 피드백 → 사실 교차검증 → 상대측 공격 시뮬레이션 → 시간선 모순 탐지.
트랙 B — 시뮬레이션 (5 모듈, Mock Trial Engine)
PERSONA_LOADER → CASE_GENERATOR → MULTI_AGENT_ARENA →
JUDGE_ADJUDICATOR → OUTCOME_ANALYZER
Nemotron-Personas-Korea에서 원고/피고/판사/변호사/검사 페르소나를 추출 → 합성 사건 생성 → 라운드제 모의공방 → 판사 페르소나별 판결 → 결과 분포 분석. 이 결과는 트랙 A의 LOGIC_BREAKER 학습 데이터로 환원됩니다.
판사 페르소나는 4축 변수로 정의됩니다 — 꼼꼼도 / 속도 / 감성·이성 / 판례의존도. 같은 사건이 다른 판사 조합에서 어떤 outcome distribution을 만드는지 시뮬할 수 있습니다.
Module 14 — Adversarial Loop
SELF_AUDIT → SELF_CORRECT → COUNTER_STRIKE
자기 검증 → 자기 수정 → 깨끗한 위치에서만 역공. Mirror-error principle: 우리 측에서 발견한 오류 유형은 상대 측에도 종종 같은 패턴으로 발견됩니다.
안전성 — 4개 비협상 규칙
법률 도구는 환각(hallucination)이 치명적입니다. 다음 4개를 코드 레벨에서 강제했습니다:
- 판례 인용 ≥2-of-4 검증 —
law.go.kr/casenote.kr/bigcase.ai/glaw.scourt.go.kr4개 소스 중 최소 2개에서 확인된 판례만 출력. 검증 실패 = 삭제. - 합성 데이터 only — 모든 fixture가 합성. 실제 케이스 자료 일절 커밋 금지.
- PII redaction — 모든 외부 boundary에서 자동 마스킹.
- Mandatory disclaimer — 모든 출력에 디스클레이머 자동 부착, 해제 불가.
포지션 — 협력자, 적대자 아님
LFA는 변호사를 대체하지 않습니다. "변호사 없이도", "변호사 대비 X% 빠름", "AI 변호사" 같은 표현은 저장소 어디에도 없습니다.
이건 마케팅 톤이 아니라 설계 원칙입니다. 법률 시장은 윤리·규제 민감 시장이고, 적대적 framing은 규제 리스크 + 평판 리스크 둘 다입니다. 진짜 사용자는 변호사·법무사일 가능성도 큽니다 (효율 도구로). 그쪽을 적으로 만드는 건 main user를 차단하는 일입니다.
빌드 — 한 세션
오늘 한 세션에서 v0를 끝냈습니다.
- 13개 모듈 설계 (트랙 A 8 + 트랙 B 5)
- README + ARCHITECTURE / MODULES / SAFETY / SYNTHETIC_DATA 4개 문서
- Pydantic 데이터 모델 (CaseRecord, Persona, JudgePersona, CounselPersona 등)
- pytest smoke 5개 (모든 모듈 import + disclaimer 무결성)
- 합성 케이스 PoC 워크스루 (
examples/poc_synthetic_run.md) — 14개 모듈을 fictional case에 수동 실행한 결과 기록 - Module 14 Adversarial Loop 추가 (mid-session 추가됨)
3,400+ 줄, 4개 commit, GitHub 라이브.
→ https://github.com/wildeconforce/LFA (MIT)
다음 — 구현 라운드
지금은 v0 스켈레톤입니다. 모든 모듈이 import되고 CLI가 작동하지만, 내부는 NotImplementedError를 던집니다. 솔직한 단계 — 인터페이스가 먼저, 구현은 그 위에.
마일스톤 로드맵:
| 버전 | 범위 |
|---|---|
| v0 | 스켈레톤 + 인터페이스 (지금) |
| v0.1 | CASE_SCANNER + LOGIC_BREAKER + DOC_WRITER 실제 LLM 백엔드 |
| v0.2 | PRECEDENT_HUNTER 4-source 실제 스크래퍼/API |
| v0.3 | 합성 케이스 fixture 자동 생성 (Nemotron 통합) |
| v0.4 | Mock Trial Engine 실제 멀티에이전트 (AutoGen/LangGraph) |
| v1.0 | 14개 모듈 모두 작동 + 회귀 테스트 |
다음에 언제 시간이 나면 v0.1 작업합니다.
본 시스템은 법률적 조언을 제공하지 않습니다. 모든 출력은 전략적 참고 자료이며, 실제 소송 행위 시에는 반드시 변호사 또는 법무사의 검토를 거치시기 바랍니다.
— Jack