본문으로 건너뛰기

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#791enum + 라벨 + RecoveryTab 분기
PR-2#792CaseData 도메인 필드 11 종 + updateCaseDivorceAction
PR-3#793DivorceInfoSection UI
PR-4#794buildDivorceComplaintText (14 tests)
PR-5#795computeDivorceStatutes 4 종 (11 tests)
PR-6#796DocKind "divorce-complaint" + 에디터 진입
PR-7#797ChildSupportScheduleCard (9 tests)
PR-8#798양육비 이행명령 §64 (8 tests)
PR-9#799협의이혼 협의서 (9 tests)
PR-10#800VisitationCard 면접교섭

테스트 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)

  1. PR-1: RECOVERY_TYPES"divorce" 추가 + RECOVERY_TYPE_LABEL 한글 라벨 + 모든 Record<RecoveryType, X> 사용처 동기화 + 마이그레이션 가드. wizard / 필터 / 대시보드 분포 자동 노출.
  2. PR-2: 이혼 도메인 필드 추가 — apps/web/app/(workspace)/cases/[caseId]/_lib/types.ts CaseDatamarriageStartDate · marriageEndDate · children: ChildInfo[] · divorceProcedure: "consensual"|"mediation"|"litigation" · alimonyAmount · propertyDivisionPercent · childSupportMonthly.
  3. PR-3: DivorceInfoSection 신규 컴포넌트 — overview 탭에 노출. 자녀 목록 입력·재산 분할 입력.
  4. PR-4: 이혼 청구취지 자동 생성 (divorce-text.ts) — Pack 1 complaint-text.ts 패턴 차용.
  5. PR-5: 이혼 시효 (가사소송법) — 위자료 청구권 3 년·재산분할청구권 2 년 등 추가 시효 규칙.
  6. PR-6: 이혼 사건 docgen 추가 — 이혼소장·답변서·재산분할 청구서.
  7. PR-7: 양육비 추적 — 매월 지급 일정 + 미지급 시 자동 알림.
  8. PR-8: 양육비 이행명령 (가사소송법 §64) — 집행 단계 분기.
  9. PR-9: 협의이혼 협의서 템플릿.
  10. 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 후보: 임대차 (계약 갱신·차임 증액) · 상속 (유류분 청구).