ADR 0023 — Pack 3 부동산 사건 도메인 확장
- Status: Implemented (PR-1 ~ PR-10 모두 머지 완료, 2026-04-26)
- Date: 2026-04-26
- Decision Drivers: roadmap.md Phase 2 Pack 3 (24~30M) 명시. Pack 2 (이혼) 완료 후 자연스러운 도메인 확장.
- Anti-Goal Compliance: ADR 0001 Anti-Goal "민사 외 = 형사·행정·IP 제외" 에 부동산은 미포함 → 허용 범위. 부동산 명도·차임·이전등기 모두 민사 소송이며 변호사 핵심 업무.
결정
Pack 1 (채권 회수 6 종) + Pack 2 (이혼 1 종) 위에 Pack 3 = 부동산 (3 종) 도메인을 베이스 + 유형 팩 아키텍처 (CLAUDE.md 원칙) 로 추가한다.
신규 recoveryType 3 종:
"real-estate-eviction"— 명도 (부동산 인도 청구) — 임차 종료·무단점유 회복"rent-arrears"— 차임·관리비 미납 — 민법 §163 ① 1호 (3 년 시효)"title-transfer"— 이전등기 청구 — 매매·증여 후 미등기 (10 년)
배경
- Pack 1 임대차보증금 (
lease-deposit) 은 임대인 → 임차인 보증금 반환 청구. 구조 단순. - 부동산 사건은 임차인·임대인·매수인·소유권자 4 자가 얽혀 더 복잡:
- 명도 (eviction) 는 부동산 점유 회복 — 강제집행 (민사집행법 §258 부동산인도) 까지 일관 필요
- 차임 (rent) 은 매월 발생하는 정기 채권 — 양육비와 유사한 schedule 패턴
- 이전등기 (title transfer) 는 등기 의무자 vs 권리자 — 청구취지가 등기절차 이행
- Pack 1 임대차 엔진을 그대로 쓰기엔 불충분. Pack 3 별도 도메인 모델 필요.
대안 검토
| 대안 | 평가 |
|---|---|
| (1) 임대차보증금에 점유·차임 sub-mode 추가 | 단일 enum 값에 너무 많은 분기 — 유형 팩 원칙 위반 |
| (2) 부동산 단일 enum + sub-type | sub-type 처리 비용 (구상금 sub-type 처럼) 가 enum 분리보다 큼 |
| (3) Pack 3 = 3 enum 분리 (선택) | Pack 2 패턴 그대로 — 도메인별 명확 분기 |
| (4) 부동산 별도 앱 분리 | 사용자가 한 사무실에서 부동산·채권 같이 처리 — UX 비용 |
Pack 3 범위 (Phase 2)
Phase 1 (이번): 명도
도메인 모델 (CaseData 확장):
propertyAddress?: string— 명도 대상 부동산 주소propertyType?: "residential" | "commercial" | "land"— 부동산 유형tenancyStartDate?: string— 임대차 개시일tenancyEndDate?: string— 임대차 종료일evictionGrounds?: string— 명도 사유 (해지·기간만료·무단점유)unpaidRent?: number— 미납 차임 (명도와 함께 청구 시)propertyNote?: string— 사건 메모
청구취지 자동 (buildEvictionComplaintText):
- "피고는 원고에게 별지 목록 기재 부동산을 인도하라"
- 미납 차임 있을 때: "피고는 원고에게 N원 및 인도일까지 월 N원의 비율로 계산한 금원을 지급하라"
- 강제집행 가능 명령 (가집행)
시효:
- 명도 청구권 자체 — 소유권에 기한 → 시효 X (점유 회복은 소유권 효과)
- 차임 청구권 — 민법 §163 ① 1호 1년 이내 정기 급여 → 3년
Phase 2 (후속): 차임 청구
명도 없이 차임만 청구하는 사건. 양육비 schedule 패턴 재사용.
Phase 3 (후속): 이전등기
매매·증여 후 미이행 등기. 청구취지가 "등기절차를 이행하라" 형식.
데이터 모델
신규 필드 모두 optional → 기존 사건 영향 0. 마이그레이션 불필요.
Anti-Goal 검증
- ✅ 1번 "민사 외 형사·행정·IP" 미위반 — 부동산은 민사.
- ✅ 2번 "법률 조언 AI" 미위반 — 청구취지 결정론 빌더, 명도 사유는 변호사 입력.
- ✅ 3번 "의뢰인 B2C 매칭" 미위반.
- ✅ 4번 "변호사 매칭·광고" 미위반.
구현 계획 (PR 단위)
| PR | 산출 |
|---|---|
| PR-1 | recoveryType enum 3 추가 + 라벨 + 회수 탭 분기 placeholder |
| PR-2 | CaseData 도메인 필드 7 종 + updateCasePropertyAction |
| PR-3 | PropertyInfoSection UI (overview 탭) |
| PR-4 | buildEvictionComplaintText (10+ tests) |
| PR-5 | rent-arrears 차임 시효 (§163 ① 1호 3년) + buildRentClaimText |
| PR-6 | title-transfer 이전등기 청구 builder |
| PR-7 | DocKind "eviction-complaint" + "rent-claim" + "title-transfer" 에디터 진입 |
| PR-8 | RentArrearsCard (양육비 schedule 패턴 재사용) |
| PR-9 | E2E 부동산 등록·도메인 입력 회귀 |
| PR-10 | next-actions 부동산 분기 + 대시보드 위젯 |
Minority Report
- P5 (개발자) 우려: enum 3 추가는 Pack 2 (1 추가) 보다 도메인 면적 3 배. 한 PR 에 다 못 넣고 단계별 진입 필요. PR-1 에서 placeholder 만 두고 PR-4~6 에서 builder 채우는 식으로 단계 분리.
- P3 (PM) 우려: Pack 2 가 막 끝났는데 즉시 Pack 3 진입은 V2 검색 품질·포털 메시징 같은 가로 기능을 미루는 결과. → 사용자 명시 (셋 다 하기) 로 우선순위 확정.
- P1 (변호사) 양보 불가: 명도 사건 강제집행 (민사집행법 §258) 까지 일관 흐름 필수. 단순 청구취지로 끝나면 사용자가 다른 도구 켜야 함.
후속 과제
- Pack 3 PR-10 후 V2 검색 품질 (rerank · multi-query) 시작
- 의뢰인 포털 메시징·알림 (Pack 3 + V2 후)
- enum 이름
RecoveryType→CaseDomainType변경 ADR (Pack 4 진입 시점)