본문으로 건너뛰기

2026-05-06

ADR 0037 — 사건 상세 채권계산 탭 → 회수 탭 일원화

결정문

사건 상세의 ?tab=debt-settlement (채권계산) 탭을 제거하고 ?tab=recovery (회수) 탭으로 일원화한다. 회수 탭은 이미 채권계산 위젯의 super set 이므로 회귀 위험 0.

  1. VALID_TABS 에서 "debt-settlement" 제거. 탭 트리거·탭 콘텐츠·모바일 더보기 메뉴 항목 모두 삭제.
  2. ?tab=debt-settlement URL 은 parseTab 에서 "recovery" 로 정규화 — 외부 deep link 호환성 보존.
  3. 키보드 단축키 c (debt-settlement 진입용) 제거. 기존 r (recovery) 만 유지. cheat sheet 동기화.
  4. DebtSettlementTab.tsx 컴포넌트 자체는 유지RecoveryTabrecoveryType === "debt" 분기에서 그대로 wrap. 엔진 (_lib/debt-settlement.ts)·스냅샷 스키마·서버 액션 변경 없음.
  5. next-actions.tsNextAction.tab union 에서 "debt-settlement" 제거 (사용처 0건).

배경

  • ADR 0010 (2026-04-22) 결정문 §1 이 이미 명시: "단일 회수 탭 (?tab=recovery) 으로 ?tab=debt-settlement 를 대체". Pack 1 PR-1 에서는 회귀 위험 회피 목적으로 두 탭을 병존 시켰으나, Pack 2~5 도메인이 모두 ship 된 2026-05 시점에서 채권계산 탭 단독 진입 가치는 사라졌다.
  • 라이브 walkthrough (2026-05-06) — 사용자가 두 탭의 차이를 인지하지 못해 혼란 보고: "어느 탭이 메인?".
  • 회수 탭 = 채권계산 위젯 + 가압류 + 추심 + 작성 중인 서류 + 시효 배지 (debt 도메인). 채권계산 탭 = 위젯 단독. 정보 위계상 부분집합.
  • 14 종 recoveryType 중 13 종 (Pack 2 이혼·Pack 3 부동산·Pack 4 상속·Pack 5 계약 등) 에서 채권계산 탭은 의미 없음 — 이미 RecoveryTab 이 도메인별 분기 처리 중이고, 채권계산 탭은 도메인 분기 없이 모든 사건에서 노출되어 비-debt 사건에 부적절한 위젯을 보여주는 회귀 위험까지 안고 있었다.

대안 검토

대안 A — 채권계산 탭 제거, 회수 탭 일원화 (채택)

  • 장점: 정보 위계 단순화 · 14 도메인 일관성 · ADR 0010 §1 마무리 · 회귀 위험 0 (회수 탭이 이미 super set).
  • 단점: 단축키 c 에 익숙한 사용자 재학습 (단, walkthrough 시점 활성 사용자 = 1 (Chair) 이므로 이전 비용 무시 가능).

대안 B — 채권계산 탭은 위젯만, 회수 탭에서는 가압류·추심·서류만 (기각)

  • 장점: 두 탭 의미 분리 명확.
  • 단점: 회수 탭이 의도적으로 debt 사건의 모든 회수 도구를 한 화면에 모은 설계 (ADR 0010 §1 + Pack 1 사용성). 채권계산을 분리하면 변호사가 "채권계산 → 가압류 → 추심" 워크플로우에서 탭 전환 강제 — UX 후퇴.
  • 기각 사유: ADR 0010 의 통합 의도 정면 위반.

대안 C — 그대로 유지 (기각)

  • 장점: 변경 비용 0.
  • 단점: 사용자 혼란 누적 + 비-debt 사건에서 무의미한 위젯 노출. 신규 사용자 온보딩 시 학습 부담.
  • 기각 사유: 라이브 walkthrough 에서 직접 혼란 관찰.

결정 + 근거

핵심 근거

  1. ADR 0010 §1 마무리: "회수 탭으로 debt-settlement 대체" 는 1년 전 합의된 방향. Pack 2~5 ship 완료로 통합 시점 도래.
  2. 회귀 위험 0: RecoveryTabDebtSettlementTab 을 일반 컴포넌트로 wrap 하는 구조라 탭 진입 경로만 정리하면 됨. 엔진·스냅샷·서버 액션·CSV 가져오기 전부 변경 없음.
  3. 14 도메인 일관성: 채권계산 탭은 14 도메인 중 1 (debt) 에만 의미 있는 부분집합. 회수 탭은 14 도메인 전체에 도메인별 분기로 적합한 UI 노출.
  4. deep link 호환: parseTab 에서 ?tab=debt-settlementrecovery 자동 정규화로 외부 알림·이메일·포털 메시지에 hardcoded 된 링크 보호.

성공 지표

  • 사건 상세 탭 진입 분포에서 recovery 탭 점유율 (이전 두 탭 합계와 동등 이상)
  • ?tab=debt-settlement 정규화 hit 수 (Phase out 추적, 6개월 후 0 도달 목표)
  • 사용자 혼란 보고 0 건 (walkthrough · 인터뷰)

Minority Report

없음. 라이브 walkthrough 에서 사용자 혼란 직접 관찰 + ADR 0010 §1 의 자연스러운 마무리라 5인 회의 절차 생략.

후속 과제

본 ADR 범위 내 (단일 PR)

  1. CaseDetailClient.tsxVALID_TABS · NEXT_ACTION_TABS · parseTab redirect · TabsTrigger · TabsContent · 모바일 더보기 메뉴 정리
  2. use-case-tab-shortcuts.tsc 키 매핑 제거 + cheat sheet 주석 동기화
  3. next-actions.tsNextAction.tab union 에서 "debt-settlement" 제거
  4. notification-deeplink.ts — VALID_TABS 주석 갱신
  5. regression-case-tab-shortcuts.spec.ts — 헤더 주석 갱신 (c 매핑 제거)

본 ADR 범위 외 (별도 PR 후보)

  • apps/docs/content/product/pack-1/screens/case-detail-debt-calc.md — Pack 1 화면 문서. "채권계산 탭" 명칭 → "회수 탭 (debt 분기)" 으로 수정 (문서 cleanup, P3).
  • 외부 deep link 모니터링 6개월 — ?tab=debt-settlement redirect hit 수 감지. 0 도달 시 redirect 제거 가능 (P4).
  • infraHardening.recoveryTypeUi 킬 스위치 — 회수 탭 자체 비활성 시 채권계산 탭이 유일한 회수 진입점이었지만 본 ADR 후 해당 플래그 OFF 시 debt 사건 회수 도구 접근 불가. 플래그 운영 정책 재검토 별건 ADR 후보.

참여자 최종 입장

(라이브 walkthrough 직접 관찰 기반 — 5인 회의 생략)

역할입장
Chair (사용자)✅ 옵션 A 채택, 즉시 ship
시스템 (Claude)✅ 회귀 위험 0 확인, 단일 PR 권장

Anti-Goal 위반 없음. ADR 0002 (전 사용자 무료) 위반 없음. 외부 deep link 호환은 redirect 로 흡수.