ADR 0022 — Pack 2 가사사건(이혼) 도메인 확장
- Status: Implemented (PR-1 ~ PR-10 모두 머지 완료, 2026-04-25)
- Date: 2026-04-25
- Decision Drivers: 사용자 명시 요구 ("이혼까지 달립니다")
- Anti-Goal Compliance: ADR 0001 Anti-Goal "민사 외 = 형사·행정·IP 제외" 에 가사사건 미포함 → 허용 범위. 이혼은 가사소송법상 별도 절차이나 민사적 성격이 강하고 사용자 요구가 명시적임.
구현 완료 (2026-04-25)
10 PR 묶음 전부 머지 (#791~#800). 이혼 사건 청구취지·시효·양육비·이행명령·협의서·면접교섭 모두 자동.
| PR | # | 산출 |
|---|---|---|
| PR-1 | #791 | enum + 라벨 + RecoveryTab 분기 |
| PR-2 | #792 | CaseData 도메인 필드 11 종 + updateCaseDivorceAction |
| PR-3 | #793 | DivorceInfoSection UI |
| PR-4 | #794 | buildDivorceComplaintText (14 tests) |
| PR-5 | #795 | computeDivorceStatutes 4 종 (11 tests) |
| PR-6 | #796 | DocKind "divorce-complaint" + 에디터 진입 |
| PR-7 | #797 | ChildSupportScheduleCard (9 tests) |
| PR-8 | #798 | 양육비 이행명령 §64 (8 tests) |
| PR-9 | #799 | 협의이혼 협의서 (9 tests) |
| PR-10 | #800 | VisitationCard 면접교섭 |
테스트 51 신규 (web 3,971 → +51 from Pack 2 baseline 3,920).
결정
Pack 1 (대여금·공사대금·구상금·약정금·임대차보증금·양수금 6 종) 위에 Pack 2 = 이혼 도메인을 베이스 + 유형 팩 아키텍처 (CLAUDE.md 원칙) 로 추가한다.
기존 recoveryType enum (6 종) 을 그대로 유지하면서 신규 값 "divorce" 를 추가. enum 이름은 channel 이 "회수" 였으나 더 일반적인 "사건 유형" 의미로 점진 확장. 이름 변경은 광범위 break 라 후속 ADR 에 위임.
배경
- Pack 1 은 채권 회수 도메인 (시효·이자·변제충당·집행) 에 깊이 특화됨.
- 이혼 사건은 채권 도메인과 본질적으로 다른 변수를 가짐:
- 혼인기간 (시작·종료)
- 자녀 (이름·생년월일·양육 구분)
- 재산분할 (자산·부채·분할 비율)
- 위자료
- 양육비 (월액·시점)
- 면접교섭권
- 협의이혼 vs 조정이혼 vs 소송이혼 절차 분기
5 단계 프로세스 매핑
| 단계 | Pack 1 (채권) | Pack 2 (이혼) |
|---|---|---|
| 수임 | 의뢰인·금액·기산일 | 의뢰인·배우자·혼인기간·자녀 |
| 소 전 조치 | 내용증명·가압류 | 협의 시도·가정법원 상담·재산 가압류 |
| 본안 | 소장·답변서 | 이혼소장·답변서·청구취지(이혼+위자료+재산분할+양육비) |
| 판결 | 인용 원금·이자·이자기산일 | 이혼 판결·위자료·재산분할 비율·양육비 |
| 집행 | 집행문·강제집행·변제 | 양육비 미지급 시 압류·추심·이행명령 |
단계별 PR 묶음 (incremental)
- PR-1:
RECOVERY_TYPES에"divorce"추가 +RECOVERY_TYPE_LABEL한글 라벨 + 모든Record<RecoveryType, X>사용처 동기화 + 마이그레이션 가드. wizard / 필터 / 대시보드 분포 자동 노출. - PR-2: 이혼 도메인 필드 추가 —
apps/web/app/(workspace)/cases/[caseId]/_lib/types.ts CaseData에marriageStartDate·marriageEndDate·children: ChildInfo[]·divorceProcedure: "consensual"|"mediation"|"litigation"·alimonyAmount·propertyDivisionPercent·childSupportMonthly. - PR-3:
DivorceInfoSection신규 컴포넌트 — overview 탭에 노출. 자녀 목록 입력·재산 분할 입력. - PR-4: 이혼 청구취지 자동 생성 (
divorce-text.ts) — Pack 1complaint-text.ts패턴 차용. - PR-5: 이혼 시효 (가사소송법) — 위자료 청구권 3 년·재산분할청구권 2 년 등 추가 시효 규칙.
- PR-6: 이혼 사건 docgen 추가 — 이혼소장·답변서·재산분할 청구서.
- PR-7: 양육비 추적 — 매월 지급 일정 + 미지급 시 자동 알림.
- PR-8: 양육비 이행명령 (가사소송법 §64) — 집행 단계 분기.
- PR-9: 협의이혼 협의서 템플릿.
- PR-10: 면접교섭권 일정 관리 (캘린더 통합).
영향 분석
코드 영향
RECOVERY_TYPES사용 80+ 곳 —Record<RecoveryType, X>인 곳은 컴파일 에러로 강제 동기화. 이름 그대로라 런타임 break 위험 적음.- 이혼 사건은 금액·이자 개념이 다르므로
principal·interestRate·dueDate등 채권 필드는 optional 처리. - 시효 엔진은 분기 추가.
데이터 모델
- 신규 필드 모두 optional → 기존 채권 사건 영향 0.
- 마이그레이션 불필요 (기본값 = undefined).
Anti-Goal 검증
- ✅ 1번 "민사 외 형사·행정·IP" 미위반 (이혼은 가사이며 위 3 종 아님).
- ✅ 2번 "법률 조언 AI" 미위반 (재산분할 비율 자동 추천이 아닌 변호사 입력값 기록).
- ✅ 3번 "의뢰인 B2C 매칭" 미위반.
- ✅ 4번 "변호사 매칭·광고" 미위반.
Minority Report
- P5 (개발자) 양보 불가: enum 이름
RecoveryType이 의미 불일치. 후속 ADR 로CaseDomainType같은 이름으로 변경 필요. 이번엔 break 비용 때문에 보류. - P3 (PM) 우려: Pack 2 추가가 Pack 1 의 깊이를 약화시킬 수 있음. 두 도메인 모두 surface-level 만 다루면 어느 쪽도 "사무소를 깊이 돕는다" 는 가치를 잃음. 완화책: Pack 2 PR 묶음 전부 머지 후 Pack 1 도메인 깊이 가산 (예: 회수 비율 자동 계산·강제집행 시뮬레이션).
- P1 (변호사) 우려: 이혼 실무는 특히 재산분할이 대단히 복잡 (퇴직금·연금·기여도). MVP 는 최소한 "정보 기록 + 청구취지 자동" 까지만. 실시간 분할 비율 계산은 P0 가 아님.
후속 과제
- 별도 ADR —
CaseDomainType이름 변경 (Pack 1 + Pack 2 + 미래 Pack 3 가능성 통합). - Pack 3 후보: 임대차 (계약 갱신·차임 증액) · 상속 (유류분 청구).