<Feature> PRD
Overview
▾root64 공개 랜딩 페이지는 비로그인 방문자가 별도 안내나 영업 접촉 없이 root64가 어떤 RWA 토큰화 서비스인지 이해하고, 플랫폼이 현재 운용 중인 자산 집계 현황과 풀 현황을 스스로 확인할 수 있게 하는 단방향 inbound 소개 페이지다. "투명성으로 신뢰를 만든다"는 root64의 핵심 가치를, 방문자가 직접 검증 가능한 라이브 데이터로 첫 화면에서 증명하는 것이 이 페이지의 존재 이유다.
리테일 투자 권유는 일절 하지 않으며, 투자 행동 유도는 기관·파트너 대상 문의(inquiry)로만 수렴한다. 페이지는 8개 섹션의 단일 스크롤 구조이며, root64 1단계(투명성 플랫폼, 2026 2Q)의 공개 표면을 정의한다.
Source Documents
▾wireframes/2026-05-18-landing/— 본 PRD의 출발점인 sketch 프로토타입(배포 완료,https://root64-proto.pages.dev). 8섹션 단일 스크롤 페이지·6개 state variant·OPEN-QUESTIONS.md의 23개 Q를 본 PRD가 승격·구조화했다.docs/foundation/2026-04-09-mission-vision-core-values.md— 미션·비전·핵심가치. Hero 헤드카피·서비스 소개 문구의 권위 출처.docs/foundation/2026-04-13-product-strategy.md— 프로덕트 전략·차별화·단계별 로드맵. §4.6 Why root64·§4.7 로드맵의 소스.docs/foundation/2026-04-20-business-structure.md— 해외 투자자 → 홍콩 Unit Trust → 한국 SPC → 에잇퍼센트 → 차주 사업구조. §4.3 자금 흐름 다이어그램의 소스.docs/product/2026-04-15-user-personas-and-flows.md— 사용자 페르소나·플로우. §4 단일 페르소나의 권위 출처.docs/design/2026-05-18-design-system.md— 디자인 토큰·컴포넌트 스펙(status: draft, 가안). 비주얼·반응형 spec의 권위 출처.docs/glossary/8percent.md,docs/glossary/rwa-tokenization.md— 브랜드 정의(root64, √64=8)·RWA·토큰화 용어 정의.docs/legal/2026-04-17-legal-overview.md— 적용 법률(자본시장법·온투법 등) 결론. §9 법무 게이트(Q4·Q16·Q18·Q20·Q21)의 검토 근거.
Applied Planning Principles
▾- Source-of-truth: Hero·소개 카피는
docs/foundation/미션·전략 문서를, 자금 구조는docs/foundation/2026-04-20-business-structure.md를, 브랜드 표기(root64·√64=8)는docs/glossary/8percent.md를, 비주얼은docs/design/2026-05-18-design-system.md를 단일 권위로 따랐다. 디자인 시스템이 가안(provisional)이라는 점은 Q10·Q12로 명시했다. - Persona consistency:
docs/product/2026-04-15-user-personas-and-flows.md의 페르소나 체계 안에서 "비로그인 일반 방문자(Visitor)" 단일 페르소나만 사용한다. 잠재 기관 투자자·파트너·기자·규제기관·일반 대중은 같은 Visitor 페르소나의 하위 동기 차이로 다루며 화면 분기를 만들지 않는다. 새 페르소나는 신설하지 않았다. - MVP scope: root64 1단계(투명성 플랫폼, 2026 2Q)의 공개 표면만 다룬다. 2단계(토큰 발행) 이상은 §4.7 로드맵에서 "예정" 레이블로만 노출하며 별도 FR을 만들지 않는다. Stage 2를 여는 다중 풀·다중 투자자·Merkle tree 로직은 본 PRD 범위 밖(§8).
- PII handling: 랜딩 페이지는 PII를 수집하지 않는 것을 원칙으로 한다. 문의 폼은 PII 처리 정책 확정(Q20) 전까지 비활성 스텁(FR-21)으로 유지하며, 로그·트레이스에 PII가 적재되지 않도록 NFR-9가 강제한다.
Personas
▾| Persona | Goals | Pain Points | Permissions | Entry / Exit |
|---|---|---|---|---|
| Visitor 비로그인 일반 방문자 하위 동기: 잠재 기관 투자자·파트너·기자·규제기관·일반 대중 |
root64가 무엇인지 이해한다 · 플랫폼 집계·풀 현황을 스스로 검증한다 · 필요 시 기관·파트너 문의를 보낸다 | RWA·토큰화 개념이 생소함 · 한국 P2P 대출자산의 신뢰성·투명성을 확인할 외부 수단이 없음 · 영업 접촉 없이 자기 주도로 정보를 얻고 싶어 함 | read-only — 서비스 소개·자금 구조·플랫폼 집계·풀 현황·로드맵 열람. 비로그인이므로 NAV·좌당가·개별 거래내역·개별 투자자 정보는 비노출. 문의 폼 작성·전송은 Q20 결정 후 활성화. | Entry: 공개 URL 직접 접근 또는 외부 링크 → 페이지 상단 Hero Exit: Footer 도달 후 종료 · 에잇퍼센트 본사이트로 이탈 · 문의 전송(Q20 후) |
Functional Requirements
▾screens/landing.html의 8개 섹션이다.- 페이지 로드 → nav-shell에 5개 섹션 앵커 링크(#intro·#how·#platform·#pools·#why)와 "Institutional Inquiry" CTA 버튼이 렌더된다
- 방문자 스크롤로 섹션이 뷰포트에 진입 → IntersectionObserver가 해당 nav 링크에 active class를 적용하고 나머지는 해제한다
- nav 링크 클릭 → 해당 섹션으로 부드럽게(smooth) 스크롤한다
- 모바일 뷰포트(< 768px) → nav가 햄버거 메뉴로 전환된다
- JS 비활성(no-JS) → 정적 HTML nav가 그대로 노출되며 앵커 링크는 동작하고 active 표시만 비활성된다
- 페이지 로드 → eyebrow·헤드라인·서브카피가 렌더된다 (카피 영문 — NFR-11)
- Primary CTA("View Platform Status") 클릭 → #platform 섹션으로 부드럽게 스크롤한다
- Secondary CTA("Institutional Inquiry") 클릭 → #contact 섹션으로 부드럽게 스크롤한다
- 리테일 투자 권유·청약 유도 문구는 Hero CTA·서브카피에 포함하지 않는다
- default 상태 → 총 운용자산(₩ 주표기 + ~USD 보조표기, NFR-13)·운용 중 풀 수·집계 연체율·as-of 타임스탬프·"On-chain verification" 링크가 렌더된다
- loading 상태 → 스냅샷 카드 영역에 shimmer 스켈레톤이 표시된다
- stale 상태(데이터가 6시간 이상 경과) → "데이터가 최신이 아닐 수 있음" stale 배너와 새로고침 버튼이 노출된다
- 새로고침 버튼 클릭 →
?state파라미터를 제거하고 default 상태로 데이터를 재요청한다 - "On-chain verification" 링크 클릭 → Kaia Chain 블록 익스플로러(BaseScan)로 새 탭 이동한다 (§10 Q11 결정)
- 페이지 로드 → 3개 Pillar 카드가 노출된다: ① 투명성 플랫폼("Stage 1 · Live" pill), ② 토큰 발행("Stage 2 · Planned" pill), ③ 언더라이팅 우선주의
- Pillar ②(토큰 발행) → "예정" 상태임이 시각적으로 구분된다(별도 배경·"Planned" pill); 토큰 구조 상세(홍콩 Unit Trust·PI 요건 등)는 표시 수준을 Q4 결정 전까지 간략 설명으로 제한한다
- Pillar ①(투명성 플랫폼) → 현재 가동 중임이 명확히 표시된다
- 페이지 로드 → §4.2 하단에 "√64 = 8" 수식 시각 요소와 브랜드 설명 텍스트가 노출된다
- 장식용 수식 시각 요소 →
aria-hidden="true"로 보조기술에서 제외된다
- 페이지 로드 → 5개 엔티티 박스가 connector("→")로 연결되어 순서대로 렌더되고, 각 엔티티 하단에 자금 흐름 설명 텍스트가 표시된다
- 다이어그램 전체 →
role="img"+aria-label로 접근성이 보장된다 - 다이어그램 하단 → "모든 자금 이동은 블록체인에 기록됨 · SPC는 에잇퍼센트와 독립 법인(파산격리)" 보조 문구가 표시된다
- 모바일 뷰포트(< 768px) → 5-엔티티 배열이 수평 → 수직 스택으로 전환된다 (NFR-5)
- 페이지 로드 → 4개 검증 카드가 그리드로 렌더되며 각 카드는 번호·제목·설명 텍스트를 가진다
- 02 On-chain 카드 → "On-chain verification" 링크를 포함하며 클릭 시 BaseScan으로 새 탭 이동한다
- default 상태 → 총 AUM(₩ 주표기 + ~USD 보조)·전체 풀 수·운용 중 풀 수·originator 수·집계 연체율·부도율·평균 LTV·자산 유형 분포 바 차트가 렌더된다
- 분포 바 차트 →
role="progressbar"·aria-valuenow/min/max·aria-label이 부여된다 - "On-chain verification" · "Merkle proof" 링크 → 각각 BaseScan으로 새 탭 이동한다
- stale 상태(데이터 6시간 이상 경과 — NFR-8) → 섹션 상단에 stale 배너와 재시도 버튼이 노출된다
- 재시도 버튼 클릭 →
?state파라미터를 제거하고 데이터를 재요청해 default 상태로 복원한다 - 비로그인 노출 지표는 개별 투자자 역추적이 불가능한 집계 수준으로 제한하며, NAV·좌당가·개별 거래내역은 표시하지 않는다 (지표별 공개 상한은 Q16 법무 검토 확정)
- loading 상태 → 제목·주요 수치·3열 보조 카드 영역에 shimmer 스켈레톤이 표시되고 default 통계 영역은 숨겨진다
- 로딩 영역 →
aria-busy="true"+aria-label="플랫폼 통계 로딩 중"이 부여된다
- empty 상태 → "아직 운용 중인 자산이 없습니다" 제목 + 설명 텍스트 + "Get updates"(→ #contact) 버튼이 노출되고 default 통계 영역은 숨겨진다
- empty는 오류가 아닌 정상 출시 전 상태로 다루며 error 패널과 구분된 메시지를 쓴다
- error 상태 →
role="alert"영역에 "통계를 불러오지 못했습니다" 메시지와 재시도 버튼이 노출된다 - 재시도 버튼 클릭 → 통계 데이터를 재요청하고 성공 시 default 상태로 복원한다
- default 상태 → 풀명·Originator·자산 유형·상태 badge·AUM·평균 LTV·연체율·리스크 dot 컬럼으로 풀 행이 렌더된다
- 상태 badge → "운용중"·"준비중"·"온보딩 중"이 시각적으로 구분된다 (색상 토큰은 Q12)
- 준비 중·온보딩 중 풀 행 → opacity로 흐리게 처리되고 AUM·LTV·연체율·리스크 셀은 "—"로 표시된다
- 테이블 하단 → "개별 투자자 정보·NAV·좌당가·거래내역은 로그인 후 확인 가능" footnote가 표시된다
- 풀 행 클릭 → #contact 섹션(문의)으로 스크롤한다 (단기 동작 — §10 Q17 결정)
- 각 풀 행 →
aria-label이 부여된다 - 모바일 뷰포트(< 768px) → 테이블이 가로 스크롤로 처리된다 (NFR-5)
- 필터 pill 클릭 → 선택한 상태 badge를 가진 행만 표시되고 나머지는 숨겨지며, 활성 pill에 active class가 적용된다
- 필터 결과 0건 → "해당 상태의 풀이 없습니다" 빈 결과 메시지가 표시된다
- JS 비활성 → 필터가 비활동 상태가 되고 전체 풀 행이 그대로 노출된다(정적 폴백)
- loading 상태 → 테이블 헤더와 스켈레톤 3행이 표시되고 default 테이블 본문은 숨겨진다
- 로딩 영역 →
aria-busy="true"+aria-label="풀 목록 로딩 중"이 부여된다
- empty 상태 → "등록된 풀이 없습니다" + "플랫폼 운영 준비 중" 설명 + 문의 버튼(→ #contact)이 노출된다
- error 상태 →
role="alert"영역에 "풀 목록을 불러오지 못했습니다" 메시지와 재시도 버튼이 노출된다 - 재시도 버튼 클릭 → 풀 목록을 재요청하고 성공 시 default 상태로 복원한다
- partial 상태 → 로드에 성공한 풀 행이 표시되고,
role="alert"경고 배너("일부 풀 데이터를 불러오지 못했습니다")가 함께 노출된다 - stale 와 partial 이 동시 성립 → partial 경고 배너를 우선 표시한다(데이터 불완전이 신선도보다 상위 — §7 error path)
- 페이지 로드 → 4개 카드가 그리드로 렌더되며 각 카드는 번호·제목·본문 텍스트를 가진다
- 카드 본문 카피 →
docs/foundation/2026-04-13-product-strategy.md의 차별화 서술을 권위 소스로 한다
- 페이지 로드 → 헤드라인·서브카피·"Institutional Inquiry" 버튼·"View Platform Status" 버튼이 렌더된다
- "View Platform Status" 클릭 → #platform 섹션으로 스크롤한다
- 리테일 투자 권유 문구는 포함하지 않으며 문의 대상이 기관·파트너임을 카피로 명확히 한다
- 페이지 로드 → root64 브랜드 설명·"© 2026 에잇퍼센트(주)"·플랫폼 링크(#platform·#pools·#how·On-chain verification)·회사 링크(#why·#roadmap·#contact·8percent.kr)가 렌더된다
- 외부 링크(8percent.kr 등) → 새 탭 +
rel="noopener noreferrer"로 연다 - 면책 고지 영역 → 법무팀이 확정한 규제·관할권 제한 문구가 삽입된다; Q21 확정 전까지는 스텁 placeholder를 표시한다
- IntersectionObserver 지원 환경 →
.reveal요소가 threshold 0.12로 뷰포트 진입 시 진입 애니메이션 class가 적용된다 - IntersectionObserver 미지원 환경 → 모든
.reveal요소가 즉시 표시된다(폴백) prefers-reduced-motion: reduce환경 → 진입 애니메이션이 비활성화되고 콘텐츠는 즉시 표시된다 (NFR-4)
Non-functional Requirements
▾| ID | Category | Statement | Target |
|---|---|---|---|
| NFR-1 | Performance | 랜딩 페이지 초기 렌더 성능(Core Web Vitals) | LCP ≤ 2.5s (p75) · CLS ≤ 0.1 · INP ≤ 200ms |
| NFR-2 | Performance | 퍼블릭 집계·풀 API 응답 시간 | ≤ 500ms (p95) |
| NFR-3 | Availability | JS 비활성(no-JS) 정적 폴백 — 8개 섹션 전부 정적 HTML로 렌더 | 전 섹션 콘텐츠 접근 가능(데이터 갱신·필터·애니메이션만 비활성) |
| NFR-4 | Accessibility | WCAG 2.1 AA 준수 — prefers-reduced-motion 대응, h1–h6 헤딩 계층, 전체 키보드 내비게이션 + skip-to-content 링크, focus-visible 가시성, ARIA 속성 | WCAG 2.1 AA · axe-core 0 critical |
| NFR-5 | Responsive | docs/design/2026-05-18-design-system.md §2 브레이크포인트 적용 — 풀 테이블 가로 스크롤, 5-엔티티 다이어그램·로드맵 수직 전환, nav 햄버거 전환 | 브레이크포인트 768 / 1024 / 1440px · 터치 타겟 ≥ 44×44px |
| NFR-6 | SEO | 프로덕션: 크롤 허용 robots meta, meta description, canonical URL — 프로토타입: noindex,nofollow | meta description ≤ 160자 · canonical 1개 · 프로덕션 배포 시 robots 교체 필수 |
| NFR-7 | Social | Open Graph + Twitter Card 메타데이터 + 대표 이미지 | og:title/description/image/url + twitter:card 제공 |
| NFR-8 | Data freshness | 퍼블릭 집계·풀 데이터를 CDN 캐시로 제공, TTL 만료 시 재요청. 갱신 후 일정 시간 경과 시 stale 배너 노출 | CDN TTL 3600s · stale 기준 마지막 갱신 후 6시간 (§10 Q8 결정) |
| NFR-9 | Privacy | 랜딩 페이지는 PII를 수집하지 않음(Q20 확정 전 문의 폼 비활성). 로그·트레이스에 PII 비적재 | PII 수집 표면 0 (문의 폼 스텁) · 로그 PII 0건 |
| NFR-10 | Security | Cloudflare Pages _headers로 CSP 헤더 적용 | CSP 헤더 설정 · 인라인 스크립트 최소화 |
| NFR-11 | Localization | 랜딩 페이지 콘텐츠 언어 — 영문 단독(글로벌 기관 투자자·기자·규제기관 타깃) | 전 카피 영문 · KO/EN 토글 미포함(§8) |
| NFR-12 | Browser support | 에버그린 브라우저 최신 2개 버전 + iOS Safari 15+ 지원, IntersectionObserver 미지원 환경 폴백 | 지정 매트릭스 전 기능 동작 · 구형 환경 정적 폴백 |
| NFR-13 | Formatting | 통화·숫자·시각 포맷 규칙 — 통화는 ₩ 주표기 + ~USD 보조표기(환율 as-of 명시), 큰 수 K/M/B 축약·천 단위 구분, 시각은 절대 표기 | 통화 ₩+USD · 타임스탬프 "YYYY-MM-DD HH:mm KST" 절대 표기 |
UI 완결성 커버리지 (D1–D7)
UI 표면이 있는 PRD다. 각 차원이 FR / NFR / §9 Q / §8 중 하나로 귀결된다.
| 차원 | 귀결 | 비고 |
|---|---|---|
| D1 반응형 | NFR-5, FR-1, FR-6, FR-12, FR-19 | 브레이크포인트 = NFR-5, 복합 컴포넌트 동작 = 각 FR Acceptance |
| D2 상태 모델 | FR-3, FR-8~FR-11, FR-14~FR-17 | default·loading·empty·error·stale·partial 6개 상태 모두 FR로 분리. platform·pools 대칭 보장 |
| D3 인터랙션 메커니즘 | FR-1, FR-11, FR-13, FR-16, FR-23 | scroll-spy·필터·retry(데이터 재요청)·reveal 동작 명시 |
| D4 포맷·콘텐츠 | NFR-13, Q21 | 포맷 = NFR-13, 면책·법무 카피 = Q21, 링크 목적지 = §10(Q11·Q17 결정) |
| D5 모션·접근성 | NFR-4 | reduced-motion·헤딩 계층·키보드·focus 명시 |
| D6 페이지 레벨 | NFR-3, NFR-6, NFR-7, NFR-10, NFR-12, §8 | SEO·OG·CSP·no-JS·브라우저. 다크모드 토글·favicon 정책은 §8 |
| D7 데이터 형상 | FR-12, §10 | 풀 3행 mock 형상 = §10. 풀 수 적어 페이지네이션·정렬 불요(§10 가정) |
User Flows & Screens
▾Flow AVisitor 단방향 Inbound 스크롤
- Persona
- Visitor (비로그인 일반 방문자)
- Entry
- 공개 URL 직접 접근 또는 외부 링크 → 페이지 상단 Hero 진입
- 방문자가 페이지에 진입 → 시스템이 §4.1 Hero(헤드라인·집계 스냅샷 카드)를 렌더한다 (FR-2, FR-3)
- 방문자가 스크롤 또는 nav 클릭 → 시스템이 §4.2 root64 소개(Pillar 3카드·브랜드 패널)를 노출한다 (FR-4, FR-5)
- 방문자가 §4.3 진입 → 시스템이 자금 흐름 다이어그램·검증 4카드를 노출한다 (FR-6, FR-7)
- 방문자가 §4.4 진입(또는 Hero Primary CTA 클릭) → 시스템이 플랫폼 집계 통계를 노출한다 (FR-8)
- 방문자가 §4.5 진입 → 시스템이 풀 테이블·상태 필터를 노출한다 (FR-12, FR-13)
- 방문자가 §4.6·§4.7 진입 → 시스템이 Why root64 4카드·로드맵 타임라인을 노출한다 (FR-18, FR-19)
- 방문자가 §4.8 진입 → 시스템이 문의 밴드·문의 폼 스텁을 노출한다; "Institutional Inquiry" CTA → 폼으로 스크롤 (FR-20, FR-21)
- 방문자가 Footer 도달 → 시스템이 브랜드 정보·링크·면책 고지를 노출한다 (FR-22)
- Exit
- Footer 도달 후 종료 · 8percent.kr 외부 링크로 이탈 · 문의 전송(Q20 결정 후 활성화)
- Screens
screens/landing.html— 단일 스크롤 페이지, 8개 섹션 = §5 [화면] 그룹 nav-hero·intro·how·platform·pools·why·roadmap·contact (+ 전역 page-global)- Error
- §4.4 통계 API 실패 → error 상태(FR-11) / 데이터 6h 초과 → stale 상태(FR-8). §4.5 풀 API 실패 → error(FR-16) / 일부 실패 → partial(FR-17). stale+partial 동시 → partial 우선. JS 비활성 → 전 섹션 정적 폴백(NFR-3)
What We're NOT Doing
▾- 로그인 후 프라이빗 대시보드 — NAV·좌당가·개별 포지션·거래내역 등 로그인 후 화면은 별도 PRD(
thoughts/prds/2026-05-19-investor-dashboard.md) 범위. - 리테일 투자 권유·청약 기능 — 투자 행동 유도는 기관·파트너 문의로만 수렴. 리테일 CTA·청약 플로우 없음.
- 토큰 발행·청약 기능 (Stage 2) — 토큰 발행은 §4.7 로드맵에 "Planned" 레이블로만 노출. 다중 풀·다중 투자자·Merkle tree 등 Stage 2 로직 미포함.
- 다국어 토글 — 영문 단독(NFR-11). KO/EN 토글·한국어 별도 URL은 런치 이후 단계로 연기.
- 다크모드 수동 토글 — MVP 미포함(프로토타입 현행 일치). DESIGN-SPEC dark 토큰 스캐폴딩은 주석으로만 유지(§10 Q14).
- 퍼블릭 풀 상세 페이지 — 풀 행 클릭은 단기적으로 #contact 스크롤(§10 Q17). 풀별 독립 상세 페이지는 Q15·Q16 확정 후 별도 검토.
- 문의 폼 백엔드·실 전송 — Q20 확정 전까지 비활성 스텁(FR-21). 실제 PII 수집·저장·전송 미구현.
- 실시간 WebSocket 데이터 — 퍼블릭 집계는 CDN TTL 기반 갱신(NFR-8). 실시간 스트리밍 미포함.
- 검증 프로세스 자체의 구현 — originator 등록·온체인 기록·외부 채널 교차검증의 동작은 백엔드·기술 설계 문서 범위. 본 PRD는 §4.3 설명 카드 렌더링만 다룸.
Open Questions
▾OPEN-QUESTIONS.md의 23개 Q + 추출기 보강 3개 중, 작성자·사용자가 결정 가능한 18개는 §10에 결정 기록으로 옮겼다. 아래 8개는 법무·디자인팀·파트너의 별도 게이트가 필요해 미결로 남긴다. Q 번호는 프로토타입 원본 번호를 유지한다.- A."2026 3Q 예정" pill + 간략 설명 (현재 수준)
- B.홍콩 Unit Trust·PI 요건 등 상세 토큰 구조 설명
- C.토큰화 카드를 비로그인 페이지에서 제외
- D.예정 항목을 greyed-out으로만 표시
docs/design/2026-05-18-design-system.md가 가안(provisional) 상태 — 정식 BI 확정 시 재작업 리스크. 토큰 채택 방식 결정 필요.- A.DESIGN-SPEC §1 토큰을 그대로 채택
- B.토큰명 추상화 레이어 추가(
--brand-primary→--color-accent)로 재작업 범위 완충
styles/tokens.css) · 담당: 디자인팀--color-status-*·--color-risk-* 토큰 미정의. 현재 accent/ink-soft 근사값 사용 중(프로토타입 Pending Tokens). 종속: FR-12.- A.초록(active)/회색(closed)/노랑(pending)/빨강(high-risk) 표준 팔레트를 DESIGN-SPEC 공식 토큰으로 확정
- B.accent 계열 단색 근사 유지
- A.AUM·평균 LTV·연체율 표시 (현재 수준, NAV·좌당가·거래내역 비노출)
- B.AUM만 노출 (LTV·연체율 추가 제한)
- C.집계 수준만 (개별 풀 행 미노출)
- A.4단계 전부 표시 (현재 수준)
- B.1~2단계만 표시 — 미확정 계획 노출 최소화
- C.스텝 클릭 시 모달/아코디언 상세
- A.입력 폼 + 백엔드 API (개인정보 처리방침·보관 정책 필요)
- B.mailto 링크 — PII 수집 표면 최소화
- C.외부 폼 서비스(Google Form 등) — GDPR·PIPA 적용 범위 별도 확인
- D.이메일 주소 텍스트만 노출
- A.현재 스텁 수준 간단 면책 + 법무팀 최종 문구 삽입
- B.자본시장법·홍콩 PI·관할권 제한·개인정보 처리방침 링크 포함 전체 면책 고지
- A."Kaia Loan Pool A" 명칭으로 공개
- B.파트너사명 비공개 — "Pool A" 등 익명 처리
- C.Kaia Foundation 로고·파트너십 배너 추가
Spec-external Decisions
▾소스(프로토타입 OPEN-QUESTIONS.md) 침묵으로 작성자·사용자가 결정한 항목. Q 번호는 프로토타입 원본 번호. 미결 항목은 §9.
사용자 승인 결정 (4건)
- Q22 언어 전략 → 영문 단독. 글로벌 기관 투자자·기자·규제기관 타깃. → NFR-11.
- Q15 풀 공개 범위 → 풀 리스트 테이블 노출. 기관 투자자 실사 수요. 단 컬럼별 공개 상한은 법무 게이트 Q16.
- Q9 통화 표시 → ₩ 주표기 + ~USD 보조표기. mock.json
usd_approx필드 활용. → NFR-13. - Q8 데이터 갱신 → CDN TTL 기반. TTL 3600s, stale 기준 6시간. 실시간 WebSocket 미채택. → NFR-8.
작성자 결정 — 프로토타입 현행 채택 (14건)
- Q1 Nav active = IntersectionObserver scroll-spy / Q2 Hero CTA = 페이지 내 앵커 / Q3 no-JS = 정적 HTML 폴백 유지(NFR-3).
- Q5 브랜드 패널 = §4.2 하단 통합 / Q6 자금 흐름 = 5-엔티티 선형 다이어그램 / Q7 검증 구조 = 4카드 그리드.
- Q11 "온체인 검증" 링크 = Kaia Chain 블록 익스플로러(BaseScan) 새 탭 — 단기 기본값, 내부 검증 페이지는 중장기.
- Q13 첫 딜 전 빈 상태 = "운영 준비 중" 안내 + 문의 CTA(FR-10·FR-15).
- Q14 다크모드 = MVP 제외(프로토타입 현행 일치). 수동 토글 미구현, DESIGN-SPEC dark 토큰 스캐폴딩만 주석 유지 — §8.
- Q17 풀 행 클릭 = #contact 스크롤(단기). 퍼블릭 풀 상세 페이지는 §8로 연기.
- Q19 문의 CTA 레이블 = "Institutional Inquiry"(영문 단독·NFR-11 일치, "기관 대상"임을 명확히).
- Q-D1 반응형 브레이크포인트 = DESIGN-SPEC §2 기준(768/1024/1440) → NFR-5 / Q-D5
prefers-reduced-motion지원 → NFR-4 / Q-D6 OG 태그 추가 → NFR-7.
데이터·토큰 가정
- 풀 데이터 형상: mock.json 기준 풀 3행. 풀 수가 적어 정렬·페이지네이션·가상 스크롤 미적용 — 풀 수가 수십 행 규모로 늘면 별도 검토 필요. 💡 [AI-Assumption]
- Pending 디자인 토큰:
--color-status-active/closed/pending·--color-risk-low/medium/high6개가 DESIGN-SPEC §1.2 미정의 상태로 근사값 사용 중 — Q12 확정 후 공식 토큰 교체. - API 엔드포인트:
GET /v1beta1/public/aggregate·/v1beta1/public/risk-metrics— mock.json의 형상 기준 추론. 실제 퍼블릭 API 계약은 백엔드 확정 필요. 💡 [AI-Assumption]
Dependencies & Integration Points
▾- Auth/Permissions: 없음 — 전 페이지 비로그인 공개. 로그인·역할 권한은 본 PRD 범위 밖(§8).
- API Surface: 퍼블릭 집계 API
GET /v1beta1/public/aggregate, 리스크 지표GET /v1beta1/public/risk-metrics, 풀 목록 endpoint. 전부 개별 투자자 역추적 불가한 집계 데이터만 반환해야 함(Q16 확정 필요). CDN 캐시 대상(NFR-8). - DB/Data: 퍼블릭 집계 데이터셋 — AUM·풀 수·originator 수·연체율·부도율·평균 LTV·자산 유형 분포·풀 메타(풀명·originator·상태·지표). NAV·좌당가·개별 거래내역은 비포함.
- External: Cloudflare Pages(배포·CDN·CSP
_headers) · Kaia Chain 블록 익스플로러 BaseScan(온체인 검증 링크 목적지, §10 Q11) · Kaia 측 파트너십 공개 동의(Q23) · 검증 프로세스(originator 등록·온체인 기록·외부 채널 교차검증)는 별도 백엔드·기술 설계 문서에 의존. - 관련 PRD:
thoughts/prds/2026-05-19-investor-dashboard.md— 로그인 후 프라이빗 대시보드. 본 랜딩 PRD(비로그인 범위)와 상호 보완하며 노출 경계(NAV·좌당가 비노출)를 공유한다.
References
▾wireframes/2026-05-18-landing/— 본 PRD의 출발 sketch 프로토타입 (배포:https://root64-proto.pages.dev).wireframes/2026-05-18-landing/OPEN-QUESTIONS.md— 23개 원본 Q 인벤토리. 본 PRD §9·§10이 이를 승격·구조화.thoughts/prds/2026-05-19-investor-dashboard.md— 관련 PRD (로그인 후 프라이빗 대시보드 — 비로그인/로그인 범위 상호 보완).- 소스 문서 일체 — §2 Source Documents 참조.
- UI 완결성 기준 —
.claude/PRD-UI-CHECKLIST.md(D1–D7).
Self-Eval Scores
▾.claude/evals/rubrics/prd-quality.md 기준 자체 평가.
| Criterion | Weight | Score |
|---|---|---|
| 명료성 | heavy | 5 / 5 |
| 측정가능성 | heavy | 4 / 5 |
| 페르소나 일관성 | light | 5 / 5 |
| 스코프 명확성 | light | 5 / 5 |
| 구조·추적성 | light | 5 / 5 |
| UI 구현 완결성 | light | 4 / 5 |
heavy 항목(명료성·측정가능성) 모두 ≥4 — auto-patch 불필요. 측정가능성 4점: NFR은 정량 target을 갖췄으나 Q16·Q20·Q21·Q23 4개 법무·파트너 게이트가 미해소이므로 일부 FR(FR-4·8·12·19·21·22)의 최종 acceptance가 게이트 해소에 종속된다. UI 완결성 4점: D1–D7 전 차원이 귀결되었으나 Q12(색상 토큰)·Q10(토큰 추상화)이 디자인팀 미확정.