본문으로 건너뛰기

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-typesub-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-1recoveryType enum 3 추가 + 라벨 + 회수 탭 분기 placeholder
PR-2CaseData 도메인 필드 7 종 + updateCasePropertyAction
PR-3PropertyInfoSection UI (overview 탭)
PR-4buildEvictionComplaintText (10+ tests)
PR-5rent-arrears 차임 시효 (§163 ① 1호 3년) + buildRentClaimText
PR-6title-transfer 이전등기 청구 builder
PR-7DocKind "eviction-complaint" + "rent-claim" + "title-transfer" 에디터 진입
PR-8RentArrearsCard (양육비 schedule 패턴 재사용)
PR-9E2E 부동산 등록·도메인 입력 회귀
PR-10next-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 이름 RecoveryTypeCaseDomainType 변경 ADR (Pack 4 진입 시점)