PRD ↔ TRD 추적성 매트릭스
이 페이지는 제품 진실원(PRD)과 기술 진실원(TRD)을 잇는 척추다. 새 ID를 정의하지 않고(참조·집계 전용), 11개 에픽과 주요 유저스토리를 페르소나 → 충족 JTBD → 구현 TRD(FR-*/RR-*/KPI-*/SLO-*/GATE-*) → 구현상태(DONE/PARTIAL/STUB/ABSENT)로 한눈에 매핑한다. PRD ID(EPIC-*·US-*·JTBD-* 등)는 해당 소유 페이지로 상대링크, TRD ID는 loginippon-trd.pages.dev로 외부 링크한다(§13 규칙). 모든 KPI/SLO 목표 수치는 진입 단계 초기 설계 목표이며 달성치가 아니다.
DONE 라이브 검증 PARTIAL 일부 구현 STUB 스캐폴드/ack-only ABSENT 미구현 설계 초기 목표(달성치 아님)
1. 추적성 원칙
PRD와 TRD는 별도 레포로 배포되며, 각 ID 네임스페이스는 정확히 한 문서가 소유한다(중복 금지). PRD는 "무엇을·누구를 위해·왜"를, TRD는 "어떻게(규범 명세)"를 소유한다. 추적성은 양방향으로 닫혀야 한다 — 모든 PRD 에픽은 적어도 하나의 TRD 항목으로 구현 매핑되고, 모든 핵심 TRD 그룹은 적어도 하나의 PRD 에픽이 소비한다.
| 문서 | 소유 진실원 | 네임스페이스(소유) | 소유 페이지 |
|---|---|---|---|
| PRD(제품) | 페르소나·JTBD·여정·에픽/스토리+수용기준·범위·GTM·성공지표·제품 리스크 | PRS-* · JTBD-* · JRN-* · EPIC-* · US-* · GOAL-* · NG-* · PR-* · OQ-* |
personas · jobs · journeys · epics-stories · scope · risks/oq |
| TRD(기술) | 기능/데이터/API/비기능 명세·보안·규제·SLO·KPI 정의·게이트 DoD·결정 | FR-* · DM-* · IR-* · NFR-* · SR-* · RR-* · SLO-S1..S8 · KPI-* · GATE-* · BIZ-* · OD-* · RISK-R* |
loginippon-trd.pages.dev (외부) |
FR-*→02-requirements/functional.html · RR-*→03-quality/regulatory.html · SLO-Sn→03-quality/slo-catalog.html#Sn · KPI-*→01-product/north-star-kpi.html · GATE-*→04-delivery/phase-gates-roadmap.html. 게이트의 DoD는 TRD phase-gates-roadmap.html가 소유하고, 스펙 본문은 중복하지 않는다.
2. 마스터 추적성 매트릭스 (EPIC · 주요 US → TRD → 상태)
각 에픽 헤더 행(짙은 배경) 아래에 주요 유저스토리 행이 이어진다. 페르소나는 personas.html, JTBD는 jobs-to-be-done.html, EPIC/US 진술·수용기준은 epics-stories.html가 소유한다. 상태는 §14 as-built 사실 기준이다.
| EPIC / US | 이름·범위 | 페르소나 | JTBD | 구현 TRD (FR/RR/KPI/SLO/GATE) | 상태 |
|---|---|---|---|---|---|
| EPIC-CONTROL-TOWER — 컨트롤 타워·실시간 가시성 P0 Phase 1 | |||||
| — | FleetMap(never-empty) + ShipmentsTable, 6s 폴링 | PRS-SHIPPER | JTBD-01 | FR-DLV-WS-001 · FR-INGEST-001/002/003 · FR-GEO-001/002/003 · FR-DLV-TRACK-001 · SLO-S6 | DONE |
| US-CT-01 | 실시간 화물 지도(다단계 하청 관통, 한 화면) | PRS-SHIPPER | JTBD-01 | FR-DLV-WS-001 · SLO-S6(WS p95≤1.5s) | DONE |
| US-CT-02 | 화물 목록 drill-down(ShipmentsTable→맵 포커스) | PRS-SHIPPER | JTBD-01 | FR-DLV-TRACK-001 · FR-DLV-WS-001 | DONE |
| US-CT-03 | 위치 인제스트 파이프라인(202 ACK→DO→queue→R2) | PRS-SHIPPER | JTBD-01 | FR-INGEST-001/002/003 | DONE |
| US-CT-04 | H3 지오펜스 enter/exit/dwell 히스테리시스 | PRS-SHIPPER | JTBD-01 | FR-GEO-001/002/003 · SLO-S2(지오펜스 lag p95≤5s) | DONE |
| EPIC-REGULATORY — 규제=킬러앱: 荷待ち/NIMACHI·実運送体制管理簿·拘束時間 P0 P1→P2 | |||||
| — | 규제 산출물 묶음(NIMACHI 유일 완성 킬러) | PRS-SHIPPER | JTBD-02 · JTBD-03 | FR-RPT-NIMACHI-001 · RR-NIMACHI-001 · FR-RPT-JITSUUNSO-001 · RR-JITSUUNSO-001 · FR-RPT-KOSOKU-001 · RR-KOSOKU-001 · FR-RPT-RANGE-001 · RR-CSV-001 · RR-LIFECYCLE-001 · RR-PROV-001 · RR-LEGAL-001 · KPI-DWELL-001 | PARTIAL |
| US-REG-01 | 荷待ち/NIMACHI CSV(法定2시간 표시·report_id·JST·UTF-8 BOM) | PRS-SHIPPER | JTBD-02 | FR-RPT-NIMACHI-001 · RR-NIMACHI-001 · RR-CSV-001 · FR-RPT-RANGE-001(≤92일) | DONE 유일 완성 |
| US-REG-02 | 納品処별 荷待ち 측정→단축 ROI 근거(협상) | PRS-SHIPPER | JTBD-03 | KPI-DWELL-001(>120min) · RR-LIFECYCLE-001 | DONE |
| US-REG-03 | 実運送体制管理簿 자동생성(청부체인+GPS검증) | PRS-SHIPPER | JTBD-02 | FR-RPT-JITSUUNSO-001 · RR-JITSUUNSO-001 · RR-PROV-001 | STUB 501 |
| US-REG-04 | 拘束時間 보조 export(2024년문제 노무 보조) | PRS-SHIPPER | JTBD-02 | FR-RPT-KOSOKU-001 · RR-KOSOKU-001 | ABSENT |
| EPIC-ONBOARDING — 0→1 온보딩·cold-start(ShipmentFactory+초대코드) P0 P0/1 | |||||
| — | cold-start 셋업 묶음(AdminPanel+ShipmentFactory) | PRS-PLATFORM | JTBD-06 · JTBD-07 | FR-AUTH-005 · FR-PROV-001/002 · GATE-P0 · FR-AUTH-001/004 | DONE |
| US-ONB-01 | 캐리어·컨사이니·거점(지오펜스) 셋업(AdminPanel) | PRS-PLATFORM | JTBD-06 | FR-PROV-001/002 | DONE |
| US-ONB-02 | 일회용 DRIVER 초대코드(max_uses 1·ttl 30d) | PRS-PLATFORM | JTBD-06 | FR-AUTH-005 · FR-AUTH-001 | DONE |
| US-ONB-03 | ShipmentFactory 4스텝 end-to-end 실증(실 GPS 전 데모) | PRS-PLATFORM | JTBD-07 | FR-PROV-001/002 · FR-INGEST-001(위치 시뮬) | DONE |
| US-ONB-04 | Phase 0 제휴 게이트(미서명 시 Phase 1 보류) | PRS-PLATFORM | JTBD-06 | GATE-P0(하드 게이트) | PARTIAL 비즈니스 |
| EPIC-CARRIER-OPS — 캐리어 자산·일정 관리(CarrierManager) P1 P1→P2 | |||||
| — | 드라이버/차량 CRUD·비번리셋·일정·active/history | PRS-PLATFORM | JTBD-08 | FR-PROV-001/002 · FR-GEO-CRUD-001 · FR-AUTH-005 | DONE |
| US-CAR-01 | 드라이버·차량 CRUD + 비밀번호 리셋 | PRS-PLATFORM | JTBD-08 | FR-PROV-001 · FR-AUTH-005 | DONE |
| US-CAR-02 | 운송 일정·inline stop 관리(active/history) | PRS-PLATFORM | JTBD-08 | FR-PROV-002 · FR-GEO-CRUD-001 | DONE |
| US-CAR-03 | 캐리어 셀프서비스 콘솔(Phase 2 — 현재 플랫폼 운영) | PRS-CARRIER | JTBD-11 | FR-AUTH-004(역할 스코프) | ABSENT Phase 2 |
| EPIC-CONSIGNEE — 컨사이니 경험: inbound 큐+캐리어 비교 대시보드 P0 P1 | |||||
| — | InboundView 라이브 큐 + Dashboard 캐리어 비교 | PRS-CONSIGNEE | JTBD-04 · JTBD-05 | FR-GEO-003 · FR-RPT-ANALYTICS-001 · KPI-DWELL-001 · KPI-OTD-001 · KPI-OTP-001 · KPI-ETA-001 | DONE |
| US-CON-01 | 다캐리어 inbound 라이브 큐(到着便·상태·ETA+추정플래그) | PRS-CONSIGNEE | JTBD-04 | FR-GEO-003 · KPI-ETA-001 | DONE |
| US-CON-02 | 캐리어 비교 대시보드(건수·평균dwell·정시%·ETA MAE) | PRS-CONSIGNEE | JTBD-05 | KPI-DWELL-001 · KPI-OTD-001 · KPI-OTP-001 | DONE |
| US-CON-03 | 화주向 캐리어 스코어카드(병렬 뷰 — 화주 surface) | PRS-SHIPPER | JTBD-05 | FR-RPT-ANALYTICS-001 | ABSENT |
| EPIC-DRIVER-APP — 드라이버 앱: 잡 라이프사이클+배경 위치(1차 데이터원) P0 P1 · 최대 갭 | |||||
| — | 案件→수락 자동공유→배경 GPS→서버 지오펜스→完了+증빙 | PRS-DRIVER | JTBD-09 · JTBD-10 | FR-ACQ-AUTOSHARE-001 · FR-ACQ-GPS-001 · FR-ACQ-CONSENT-001 · FR-ACQ-OFFLINE-001 · FR-ACQ-API-001 · FR-DLV-WS-001 | STUB 최대 갭 |
| US-DRV-01 | 案件 수신·큰 버튼 수락(고령 드라이버 UX) | PRS-DRIVER | JTBD-09 | FR-ACQ-API-001(案件 목록/수락/완료) | STUB |
| US-DRV-02 | 잡 기간 위치 자동 공유(공유 버튼 없는 자동화) | PRS-DRIVER | JTBD-09 | FR-ACQ-AUTOSHARE-001 · FR-ACQ-GPS-001 | STUB 배경 위치 주석 |
| US-DRV-03 | 오프라인 버퍼·적응 샘플링(터널/오프라인 추적 유지) | PRS-DRIVER | JTBD-10 | FR-ACQ-OFFLINE-001 | STUB |
| US-DRV-04 | 完了報告+증빙사진(도착/배달 증명) | PRS-DRIVER | JTBD-10 | FR-ACQ-API-001 · FR-DLV-WS-001 | STUB 증빙 미배선 |
| EPIC-TRACKING-ENGINE — 트래킹 엔진: ETA·예외 감지·Tracking Rate 정직 P1 P1→P2 | |||||
| — | 룰 ETA(eta_is_estimate)·예외 감지·Tracking Rate | PRS-SHIPPER | JTBD-01 | FR-ENG-ETA-001/002 · FR-ENG-EXC-001..006 · KPI-TRACK-001 · KPI-ETA-001 · SLO-S7 | PARTIAL |
| US-ENG-01 | 룰 기반 ETA(추정 라벨)→Phase 2 ML ETA | PRS-SHIPPER | JTBD-01 | FR-ENG-ETA-001/002 · KPI-ETA-001(룰≤25%→ML≤15%) · SLO-S7 | STUB handleEtaBatch ack-only |
| US-ENG-02 | 예외 감지(지연/dwell/추적손실/이탈/정차/픽업) | PRS-SHIPPER | JTBD-01 | FR-ENG-EXC-001..006 | PARTIAL |
| US-ENG-03 | Tracking Rate 정직(staleness·tracking-loss sweep) | PRS-SHIPPER | JTBD-01 | KPI-TRACK-001 · SLO-S4 | STUB 빈 cron sweep |
| EPIC-NOTIFY-EXC — 알림·예외 분류(LINE 1순위+커스텀 규칙) P1 P1 | |||||
| — | 예외→LINE/메일/웹훅 알림(handleNotifyBatch) | PRS-CARRIER | JTBD-11 | FR-DLV-NOTIFY-001 · FR-ENG-EXC-001/002/003 · SLO-S3 | STUB |
| US-NTF-01 | LINE 1순위 알림 전달(예외 발생 시) | PRS-CARRIER | JTBD-11 | FR-DLV-NOTIFY-001 · SLO-S3(전달≥99%) | STUB ack-only |
| US-NTF-02 | 커스텀 규칙 기반 예외 분류·심각도 큐 | PRS-CARRIER | JTBD-11 | FR-ENG-EXC-001/002/003 | PARTIAL |
| EPIC-AUTH-TENANCY — 인증·역할/스코프 게이트·테넌트 격리(셀프가입 없음) P0 P1 | |||||
| — | JWT 역할/스코프·refresh·테넌트 격리(404) | PRS-PLATFORM | JTBD-06 | FR-AUTH-001/002/003/004/005 | DONE |
| US-AUTH-01 | 로그인·JWT 발급·refresh(셀프가입 없음 ADR-0001) | PRS-PLATFORM | JTBD-06 | FR-AUTH-001/002 | DONE |
| US-AUTH-02 | 역할/스코프 게이트(UI 게이팅·서버 인가 강제) | PRS-PLATFORM | JTBD-06 | FR-AUTH-004 | DONE |
| US-AUTH-03 | 테넌트 격리(교차 테넌트 404) | PRS-PLATFORM | JTBD-06 | FR-AUTH-003 · FR-AUTH-004 | DONE |
| EPIC-INTEGRATIONS — 퍼블릭 API·웹훅·3PL 멀티테넌시(overlay) P2 P2 | |||||
| — | REST 폴링·HMAC 웹훅·멀티테넌트 분리(overlay) | PRS-3PL | JTBD-12 · JTBD-14 | FR-DLV-WH-001 · FR-DLV-WS-001 · FR-RPT-ANALYTICS-001 · SLO-S3 | STUB 웹훅 CRUD 501 |
| US-INT-01 | 퍼블릭 API Key·토큰 교환·REST 폴링 | PRS-3PL | JTBD-14 | FR-DLV-WS-001 · FR-AUTH-004 | STUB |
| US-INT-02 | HMAC 서명 웹훅(등록·멱등·정렬) | PRS-3PL | JTBD-12 | FR-DLV-WH-001 · SLO-S3 | STUB 501 |
| US-INT-03 | 3PL 멀티테넌시 overlay(정산 근거) | PRS-3PL | JTBD-12 | FR-RPT-ANALYTICS-001 | ABSENT Phase 2 |
| EPIC-CONSENT-PRIVACY — APPI 동의·드라이버 위치 프라이버시·受取人 마스킹 P0 P1 · ingest 갭 | |||||
| — | APPI consent 게이트·위치 마스킹·受取人 ETA-only | PRS-LEGAL | JTBD-13 | FR-ACQ-CONSENT-001 · FR-DLV-TRACK-001 · RR-LEGAL-001 · FR-AUTH-004 | PARTIAL |
| US-PRV-01 | APPI 동의 하드게이트 ingest 배선(consentGate) | PRS-LEGAL | JTBD-09 | FR-ACQ-CONSENT-001 | STUB ingest 미호출(R9) |
| US-PRV-02 | 受取人 위치 마스킹·ETA-only surface(個人情報保護法) | PRS-CONSIGNEE | JTBD-13 | FR-DLV-TRACK-001 | DONE |
| US-PRV-03 | 공식 포맷·인코딩 서명 게이트("官庁 제출가능" 광고 금지) | PRS-LEGAL | JTBD-02 | RR-LEGAL-001 · FR-AUTH-004 | PARTIAL 미서명(R10) |
3. 역방향 색인 (TRD 그룹 → 소비 PRD 에픽)
각 핵심 TRD 그룹이 어떤 PRD 에픽에 소비되는지의 역방향 매핑이다. 어떤 TRD 그룹도 고아(소비처 없음)가 아님을 확인하고, 한 TRD 그룹이 여러 에픽에 걸칠 때 추적성을 닫는다.
측정 차단: KPI-*·SLO-*는 OBS-METRICS-001(METRICS.writeDataPoint)이 TODO여서 SLI가 아직 미측정 — 전부 설계 목표.
4. 미충족·갭 강조 (MVP exit 차단)
추적성 매트릭스가 드러내는 핵심 갭이다. 모두 GATE-P1(MVP-exit)을 막거나 정직 포지셔닝의 전제다. 제품 리스크 렌즈는 risks-open-questions.html(PR-*)가 소유한다.
| 갭 | 영향 에픽/US | 차단 TRD | 상태 | 제품 리스크 |
|---|---|---|---|---|
| Flutter 드라이버 앱 = scaffold STUB (배경 위치 주석·hasConsent→false·token→null·JobsRepository []) — GPS가 1차 데이터원이라 최대 갭 |
DRIVER-APP 전체(US-DRV-01..04) | FR-ACQ-AUTOSHARE/GPS/OFFLINE/API-001 | STUB | PR-02 |
| 実運送体制管理簿 미구현 ( GET /v1/reports/jitsuunso 501) |
US-REG-03 | FR-RPT-JITSUUNSO-001 · RR-JITSUUNSO-001 | STUB 501 → Phase 2 | PR-07 |
| APPI consentGate ingest 미배선 (ingest에서 미호출 — 라이브 전 배선 필수) |
US-PRV-01 | FR-ACQ-CONSENT-001 | STUB (R9) | PR-06 |
| 웹훅 전달 ack-only ( handleNotifyBatch ack-only·웹훅 CRUD 501) |
US-NTF-01 · US-INT-02 | FR-DLV-NOTIFY-001 · FR-DLV-WH-001 · SLO-S3 | STUB | PR-08 |
| 룰 ETA ack-only ( handleEtaBatch ack-only) |
US-ENG-01 | FR-ENG-ETA-001/002 · SLO-S7 | STUB | PR-08 |
| tracking-loss sweep 빈 cron (Tracking Rate 정직 노출의 전제) |
US-ENG-03 | KPI-TRACK-001 · SLO-S4 | STUB | PR-08 |
| rate limit 없음 (MVP-exit 게이트 5 STUB 중 하나) |
INTEGRATIONS | NFR-RATE-001 | ABSENT | PR-08 |
| SLI 미측정 ( METRICS.writeDataPoint TODO — 모든 KPI/SLO 미측정) |
전 에픽(지표) | KPI-* · SLO-S1..S8 · OBS-METRICS-001 |
설계 미측정 | PR-09 |
| 화주向 캐리어 스코어카드 미구현 (컨사이니 Dashboard에 병렬 뷰 존재) |
US-CON-03 | FR-RPT-ANALYTICS-001 | ABSENT | OQ |
| POST /v1/shipments 500 (API 화물 생성 — ShipmentFactory는 별도로 DONE) |
US-INT-01 | IR-SHIP-001 | STUB 500 | PR-08 |
근거·상호참조
- 마스터 스펙 §13(PRD→TRD 링크 규칙·prdToTrdSeed)·§5(에픽→US→TRD FR 매핑)·§14(as-built 구현 상태)·§9(범위·게이트)·§8(KPI 트리).
- PRD 소유 페이지(상대링크 참조): epics-stories.html(
EPIC-*·US-*소유) · jobs-to-be-done.html(JTBD-*) · personas.html(PRS-*) · journeys.html(JRN-*) · scope-nongoals.html(GOAL-*·NG-*·게이트 DoD) · success-metrics-kpi.html(KPI 트리) · risks-open-questions.html(PR-*·OQ-*). - TRD 교차참조(§13 Pages URL): 02-requirements/functional.html(
FR-*) · 03-quality/regulatory.html(RR-*) · 03-quality/slo-catalog.html(SLO-S1..S8) · 01-product/north-star-kpi.html(KPI-*) · 04-delivery/phase-gates-roadmap.html(GATE-*DoD 소유) · 02-requirements/nonfunctional.html(NFR-*) · 02-requirements/api-contracts.html(IR-*). - 코드 기준 상태(읽기 참조):
console(FleetMap·NIMACHI CSV·AdminPanel·ShipmentFactory·CarrierManager·InboundView·Dashboard·auth)·server(ingest·지오펜스·DO/WS, 5개 STUB)·app(Flutter 드라이버 scaffold STUB). github.com/LogiNippon/console - 이 페이지는 새 PRD ID를 정의하지 않는다(참조·집계 전용). 네임스페이스 소유는 §3/§15에 따른다.