Product Requirements Document

<Feature> PRD

§1

Overview

root64 공개 랜딩 페이지는 비로그인 방문자가 별도 안내나 영업 접촉 없이 root64가 어떤 RWA 토큰화 서비스인지 이해하고, 플랫폼이 현재 운용 중인 자산 집계 현황과 풀 현황을 스스로 확인할 수 있게 하는 단방향 inbound 소개 페이지다. "투명성으로 신뢰를 만든다"는 root64의 핵심 가치를, 방문자가 직접 검증 가능한 라이브 데이터로 첫 화면에서 증명하는 것이 이 페이지의 존재 이유다.

리테일 투자 권유는 일절 하지 않으며, 투자 행동 유도는 기관·파트너 대상 문의(inquiry)로만 수렴한다. 페이지는 8개 섹션의 단일 스크롤 구조이며, root64 1단계(투명성 플랫폼, 2026 2Q)의 공개 표면을 정의한다.

§2

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)의 검토 근거.
소스와 본 PRD가 충돌하는 항목은 §10에 기재한다. 현재 식별된 충돌: 없음. (소스 침묵으로 작성자가 결정한 항목은 §10에 별도 기재)
§3

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가 강제한다.
§4

Personas

PersonaGoalsPain PointsPermissionsEntry / Exit
Visitor
비로그인 일반 방문자
하위 동기: 잠재 기관 투자자·파트너·기자·규제기관·일반 대중
root64가 무엇인지 이해한다 · 플랫폼 집계·풀 현황을 스스로 검증한다 · 필요 시 기관·파트너 문의를 보낸다 RWA·토큰화 개념이 생소함 · 한국 P2P 대출자산의 신뢰성·투명성을 확인할 외부 수단이 없음 · 영업 접촉 없이 자기 주도로 정보를 얻고 싶어 함 read-only — 서비스 소개·자금 구조·플랫폼 집계·풀 현황·로드맵 열람. 비로그인이므로 NAV·좌당가·개별 거래내역·개별 투자자 정보는 비노출. 문의 폼 작성·전송은 Q20 결정 후 활성화. Entry: 공개 URL 직접 접근 또는 외부 링크 → 페이지 상단 Hero
Exit: Footer 도달 후 종료 · 에잇퍼센트 본사이트로 이탈 · 문의 전송(Q20 후)
단일 페르소나 PRD다. 하위 동기 그룹별로 화면이 분기하지 않으며, 동기 차이는 §4.6 Why root64의 4개 차별화 카드(언더라이팅·투명성·규제·플랫폼 구조)가 암묵적으로 흡수한다.
§5

Functional Requirements

모든 FR의 Actor: Visitor (비로그인 일반 방문자 — 단일 페르소나이므로 여기 한 번만 명시하고 FR별 Actor 필드는 생략한다). 화면 그룹은 단일 스크롤 페이지 screens/landing.html의 8개 섹션이다.
화면 필터
§4.1 Nav + Hero
FR-1글로벌 내비게이션 + 스크롤 연동 active 표시
Statement 시스템은 모든 스크롤 위치에서 sticky 네비게이션 바를 렌더하고, 현재 뷰포트 섹션에 대응하는 링크에 active 스타일을 적용한다.
Acceptance Criteria
  • 페이지 로드 → 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 표시만 비활성된다
FR-2Hero 섹션 + Primary/Secondary CTA
Statement 시스템은 Hero 섹션에 헤드라인·서브카피·Primary CTA·Secondary CTA를 렌더하고, 각 CTA가 지정된 페이지 내 앵커로 이동한다.
Acceptance Criteria
  • 페이지 로드 → eyebrow·헤드라인·서브카피가 렌더된다 (카피 영문 — NFR-11)
  • Primary CTA("View Platform Status") 클릭 → #platform 섹션으로 부드럽게 스크롤한다
  • Secondary CTA("Institutional Inquiry") 클릭 → #contact 섹션으로 부드럽게 스크롤한다
  • 리테일 투자 권유·청약 유도 문구는 Hero CTA·서브카피에 포함하지 않는다
FR-3Hero 집계 스냅샷 카드
Statement 시스템은 Hero 섹션 우측에 플랫폼 총 운용자산·운용 중 풀 수·집계 연체율을 as-of 타임스탬프와 함께 표시한다.
Acceptance Criteria
  • default 상태 → 총 운용자산(₩ 주표기 + ~USD 보조표기, NFR-13)·운용 중 풀 수·집계 연체율·as-of 타임스탬프·"On-chain verification" 링크가 렌더된다
  • loading 상태 → 스냅샷 카드 영역에 shimmer 스켈레톤이 표시된다
  • stale 상태(데이터가 6시간 이상 경과) → "데이터가 최신이 아닐 수 있음" stale 배너와 새로고침 버튼이 노출된다
  • 새로고침 버튼 클릭 → ?state 파라미터를 제거하고 default 상태로 데이터를 재요청한다
  • "On-chain verification" 링크 클릭 → Kaia Chain 블록 익스플로러(BaseScan)로 새 탭 이동한다 (§10 Q11 결정)
§4.2 root64란?
FR-4서비스 소개 Pillar 카드
Statement 시스템은 서비스 소개 섹션에 3개의 Pillar 카드(투명성 플랫폼·토큰 발행·언더라이팅 우선주의)를 렌더한다.
Acceptance Criteria
  • 페이지 로드 → 3개 Pillar 카드가 노출된다: ① 투명성 플랫폼("Stage 1 · Live" pill), ② 토큰 발행("Stage 2 · Planned" pill), ③ 언더라이팅 우선주의
  • Pillar ②(토큰 발행) → "예정" 상태임이 시각적으로 구분된다(별도 배경·"Planned" pill); 토큰 구조 상세(홍콩 Unit Trust·PI 요건 등)는 표시 수준을 Q4 결정 전까지 간략 설명으로 제한한다
  • Pillar ①(투명성 플랫폼) → 현재 가동 중임이 명확히 표시된다
FR-5브랜드 컨셉 패널 (√64 = 8)
Statement 시스템은 서비스 소개 섹션 하단에 root64 브랜드 컨셉(√64 = 8) 패널을 통합 배치한다.
Acceptance Criteria
  • 페이지 로드 → §4.2 하단에 "√64 = 8" 수식 시각 요소와 브랜드 설명 텍스트가 노출된다
  • 장식용 수식 시각 요소 → aria-hidden="true"로 보조기술에서 제외된다
§4.3 자금·검증 구조
FR-65-엔티티 자금 흐름 다이어그램
Statement 시스템은 자금·검증 구조 섹션에 해외 투자자 → 홍콩 Unit Trust → 한국 SPC → 에잇퍼센트 → 차주의 5-엔티티 선형 자금 흐름 다이어그램을 렌더한다.
Acceptance Criteria
  • 페이지 로드 → 5개 엔티티 박스가 connector("→")로 연결되어 순서대로 렌더되고, 각 엔티티 하단에 자금 흐름 설명 텍스트가 표시된다
  • 다이어그램 전체 → role="img" + aria-label로 접근성이 보장된다
  • 다이어그램 하단 → "모든 자금 이동은 블록체인에 기록됨 · SPC는 에잇퍼센트와 독립 법인(파산격리)" 보조 문구가 표시된다
  • 모바일 뷰포트(< 768px) → 5-엔티티 배열이 수평 → 수직 스택으로 전환된다 (NFR-5)
FR-7검증 구조 4-카드 그리드
Statement 시스템은 자금 흐름 다이어그램 하단에 4단계 검증 구조를 설명하는 카드 그리드(01 Register · 02 On-chain · 03 Verify · 04 Audit)를 렌더한다.
Acceptance Criteria
  • 페이지 로드 → 4개 검증 카드가 그리드로 렌더되며 각 카드는 번호·제목·설명 텍스트를 가진다
  • 02 On-chain 카드 → "On-chain verification" 링크를 포함하며 클릭 시 BaseScan으로 새 탭 이동한다
Assumption 검증 카드는 플랫폼의 검증 프로세스를 설명하는 콘텐츠다. originator 데이터 등록·온체인 기록·외부 채널 교차검증의 실제 동작 스펙은 백엔드·기술 설계 문서의 범위이며, 본 랜딩 PRD는 카드 렌더링만 다룬다(§11 의존). 💡 [AI-Assumption]
§4.4 플랫폼 현황
FR-8플랫폼 집계 통계 — default / stale
Statement 시스템은 플랫폼 현황 섹션에 총 AUM·풀 수·리스크 지표·자산 유형 분포를 as-of 타임스탬프와 함께 표시한다.
Acceptance Criteria
  • 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 법무 검토 확정)
FR-9플랫폼 집계 통계 — loading
Statement 시스템은 플랫폼 통계 데이터 로드 중에 스켈레톤 UI를 표시한다.
Acceptance Criteria
  • loading 상태 → 제목·주요 수치·3열 보조 카드 영역에 shimmer 스켈레톤이 표시되고 default 통계 영역은 숨겨진다
  • 로딩 영역 → aria-busy="true" + aria-label="플랫폼 통계 로딩 중"이 부여된다
FR-10플랫폼 집계 통계 — empty
Statement 시스템은 운용 중인 자산이 없을 때(첫 딜 전) 빈 상태 안내 패널과 문의 CTA를 표시한다.
Acceptance Criteria
  • empty 상태 → "아직 운용 중인 자산이 없습니다" 제목 + 설명 텍스트 + "Get updates"(→ #contact) 버튼이 노출되고 default 통계 영역은 숨겨진다
  • empty는 오류가 아닌 정상 출시 전 상태로 다루며 error 패널과 구분된 메시지를 쓴다
FR-11플랫폼 집계 통계 — error
Statement 시스템은 플랫폼 통계 로드 실패 시 오류 패널과 재시도 버튼을 표시한다.
Acceptance Criteria
  • error 상태 → role="alert" 영역에 "통계를 불러오지 못했습니다" 메시지와 재시도 버튼이 노출된다
  • 재시도 버튼 클릭 → 통계 데이터를 재요청하고 성공 시 default 상태로 복원한다
§4.5 풀 현황
FR-12풀 현황 테이블 — default
Statement 시스템은 풀 현황 섹션에 등록된 풀 목록을 테이블로 렌더하되, 비로그인에 공개 가능한 컬럼만 표시하고 개별 투자자 정보·NAV·좌당가·거래내역은 표시하지 않는다.
Acceptance Criteria
  • default 상태 → 풀명·Originator·자산 유형·상태 badge·AUM·평균 LTV·연체율·리스크 dot 컬럼으로 풀 행이 렌더된다
  • 상태 badge → "운용중"·"준비중"·"온보딩 중"이 시각적으로 구분된다 (색상 토큰은 Q12)
  • 준비 중·온보딩 중 풀 행 → opacity로 흐리게 처리되고 AUM·LTV·연체율·리스크 셀은 "—"로 표시된다
  • 테이블 하단 → "개별 투자자 정보·NAV·좌당가·거래내역은 로그인 후 확인 가능" footnote가 표시된다
  • 풀 행 클릭 → #contact 섹션(문의)으로 스크롤한다 (단기 동작 — §10 Q17 결정)
  • 각 풀 행 → aria-label이 부여된다
  • 모바일 뷰포트(< 768px) → 테이블이 가로 스크롤로 처리된다 (NFR-5)
FR-13풀 현황 상태 필터 pill
Statement 시스템은 풀 테이블 상단에 상태 필터 pill(전체·운용 중·준비 중)을 제공하고, 선택 시 해당 상태의 풀만 표시한다.
Acceptance Criteria
  • 필터 pill 클릭 → 선택한 상태 badge를 가진 행만 표시되고 나머지는 숨겨지며, 활성 pill에 active class가 적용된다
  • 필터 결과 0건 → "해당 상태의 풀이 없습니다" 빈 결과 메시지가 표시된다
  • JS 비활성 → 필터가 비활동 상태가 되고 전체 풀 행이 그대로 노출된다(정적 폴백)
FR-14풀 현황 — loading
Statement 시스템은 풀 목록 로드 중에 스켈레톤 행을 표시한다.
Acceptance Criteria
  • loading 상태 → 테이블 헤더와 스켈레톤 3행이 표시되고 default 테이블 본문은 숨겨진다
  • 로딩 영역 → aria-busy="true" + aria-label="풀 목록 로딩 중"이 부여된다
FR-15풀 현황 — empty
Statement 시스템은 등록된 풀이 없을 때 빈 상태 안내 패널과 문의 CTA를 표시한다.
Acceptance Criteria
  • empty 상태 → "등록된 풀이 없습니다" + "플랫폼 운영 준비 중" 설명 + 문의 버튼(→ #contact)이 노출된다
FR-16풀 현황 — error
Statement 시스템은 풀 목록 로드 실패 시 오류 패널과 재시도 버튼을 표시한다.
Acceptance Criteria
  • error 상태 → role="alert" 영역에 "풀 목록을 불러오지 못했습니다" 메시지와 재시도 버튼이 노출된다
  • 재시도 버튼 클릭 → 풀 목록을 재요청하고 성공 시 default 상태로 복원한다
FR-17풀 현황 — partial
Statement 시스템은 풀 데이터가 일부만 로드된 경우 로드된 풀을 표시하고 경고 배너를 함께 노출한다.
Acceptance Criteria
  • partial 상태 → 로드에 성공한 풀 행이 표시되고, role="alert" 경고 배너("일부 풀 데이터를 불러오지 못했습니다")가 함께 노출된다
  • stale 와 partial 이 동시 성립 → partial 경고 배너를 우선 표시한다(데이터 불완전이 신선도보다 상위 — §7 error path)
§4.6 Why root64
FR-18차별화 4-Pillar 카드
Statement 시스템은 Why root64 섹션에 차별화 근거 4개 카드(언더라이팅 역량·투명성 우선 접근·규제 위에서 구축·플랫폼 구조)를 렌더한다.
Acceptance Criteria
  • 페이지 로드 → 4개 카드가 그리드로 렌더되며 각 카드는 번호·제목·본문 텍스트를 가진다
  • 카드 본문 카피 → docs/foundation/2026-04-13-product-strategy.md의 차별화 서술을 권위 소스로 한다
§4.7 로드맵
FR-19로드맵 타임라인
Statement 시스템은 로드맵 섹션에 단계별 발전 계획을 수평 타임라인으로 렌더한다.
Acceptance Criteria
  • 페이지 로드 → 단계별 roadmap-step이 role="list" / role="listitem"으로 렌더된다
  • 1단계(2026 2Q) → active 스타일 + "Live" pill이 표시된다
  • 2단계 이상 → "Planned"(예정) 레이블이 표시되고 active 스타일은 적용되지 않는다
  • 각 스텝 → 시기 태그·제목·설명 텍스트를 가진다
  • 모바일 뷰포트(< 768px) → 타임라인이 수평 → 수직으로 전환된다 (NFR-5)
  • 공개할 단계 수와 미확정 단계의 레이블링은 Q18 법무 검토로 확정한다
§4.8 문의 + Footer
FR-20기관 문의 밴드
Statement 시스템은 문의 섹션에 기관 투자자·파트너 대상 문의 헤드라인·서브카피·CTA를 렌더한다.
Acceptance Criteria
  • 페이지 로드 → 헤드라인·서브카피·"Institutional Inquiry" 버튼·"View Platform Status" 버튼이 렌더된다
  • "View Platform Status" 클릭 → #platform 섹션으로 스크롤한다
  • 리테일 투자 권유 문구는 포함하지 않으며 문의 대상이 기관·파트너임을 카피로 명확히 한다
FR-21기관 문의 폼 (스텁)stub
Statement 시스템은 문의 섹션에 기관명·이름·이메일·문의 내용 입력 폼을 렌더하되, PII 처리 정책 확정 전까지 제출을 비활성화하고 스텁 안내 문구를 표시한다.
Acceptance Criteria
  • 페이지 로드 → 소속 기관·이름·이메일·문의 내용 필드가 각각 적절한 autocomplete 속성과 함께 렌더된다
  • 제출 버튼 → disabled + aria-disabled="true"로 비활성 상태이며, 폼 제출 이벤트는 차단된다
  • 폼 하단 → "본 양식은 프로토타입 스텁이며 데이터가 전송되지 않습니다" 안내가 표시된다
  • 문의 폼의 최종 형태(입력 폼/mailto/외부 폼)와 PII 처리 표면은 Q20 결정 후 확정하며, 개인정보 처리방침 링크는 Q21과 연동한다
FR-22Footer + 규제 면책 고지
Statement 시스템은 Footer에 브랜드 정보·플랫폼 링크·회사 링크·규제 면책 고지·저작권 표기를 렌더한다.
Acceptance Criteria
  • 페이지 로드 → root64 브랜드 설명·"© 2026 에잇퍼센트(주)"·플랫폼 링크(#platform·#pools·#how·On-chain verification)·회사 링크(#why·#roadmap·#contact·8percent.kr)가 렌더된다
  • 외부 링크(8percent.kr 등) → 새 탭 + rel="noopener noreferrer"로 연다
  • 면책 고지 영역 → 법무팀이 확정한 규제·관할권 제한 문구가 삽입된다; Q21 확정 전까지는 스텁 placeholder를 표시한다
전역 (Page-global)
FR-23스크롤 진입 reveal 애니메이션
Statement 시스템은 콘텐츠 블록이 뷰포트에 진입할 때 진입 애니메이션을 적용한다.
Acceptance Criteria
  • IntersectionObserver 지원 환경 → .reveal 요소가 threshold 0.12로 뷰포트 진입 시 진입 애니메이션 class가 적용된다
  • IntersectionObserver 미지원 환경 → 모든 .reveal 요소가 즉시 표시된다(폴백)
  • prefers-reduced-motion: reduce 환경 → 진입 애니메이션이 비활성화되고 콘텐츠는 즉시 표시된다 (NFR-4)
§6

Non-functional Requirements

IDCategoryStatementTarget
NFR-1Performance랜딩 페이지 초기 렌더 성능(Core Web Vitals)LCP ≤ 2.5s (p75) · CLS ≤ 0.1 · INP ≤ 200ms
NFR-2Performance퍼블릭 집계·풀 API 응답 시간≤ 500ms (p95)
NFR-3AvailabilityJS 비활성(no-JS) 정적 폴백 — 8개 섹션 전부 정적 HTML로 렌더전 섹션 콘텐츠 접근 가능(데이터 갱신·필터·애니메이션만 비활성)
NFR-4AccessibilityWCAG 2.1 AA 준수 — prefers-reduced-motion 대응, h1–h6 헤딩 계층, 전체 키보드 내비게이션 + skip-to-content 링크, focus-visible 가시성, ARIA 속성WCAG 2.1 AA · axe-core 0 critical
NFR-5Responsivedocs/design/2026-05-18-design-system.md §2 브레이크포인트 적용 — 풀 테이블 가로 스크롤, 5-엔티티 다이어그램·로드맵 수직 전환, nav 햄버거 전환브레이크포인트 768 / 1024 / 1440px · 터치 타겟 ≥ 44×44px
NFR-6SEO프로덕션: 크롤 허용 robots meta, meta description, canonical URL — 프로토타입: noindex,nofollowmeta description ≤ 160자 · canonical 1개 · 프로덕션 배포 시 robots 교체 필수
NFR-7SocialOpen Graph + Twitter Card 메타데이터 + 대표 이미지og:title/description/image/url + twitter:card 제공
NFR-8Data freshness퍼블릭 집계·풀 데이터를 CDN 캐시로 제공, TTL 만료 시 재요청. 갱신 후 일정 시간 경과 시 stale 배너 노출CDN TTL 3600s · stale 기준 마지막 갱신 후 6시간 (§10 Q8 결정)
NFR-9Privacy랜딩 페이지는 PII를 수집하지 않음(Q20 확정 전 문의 폼 비활성). 로그·트레이스에 PII 비적재PII 수집 표면 0 (문의 폼 스텁) · 로그 PII 0건
NFR-10SecurityCloudflare Pages _headers로 CSP 헤더 적용CSP 헤더 설정 · 인라인 스크립트 최소화
NFR-11Localization랜딩 페이지 콘텐츠 언어 — 영문 단독(글로벌 기관 투자자·기자·규제기관 타깃)전 카피 영문 · KO/EN 토글 미포함(§8)
NFR-12Browser support에버그린 브라우저 최신 2개 버전 + iOS Safari 15+ 지원, IntersectionObserver 미지원 환경 폴백지정 매트릭스 전 기능 동작 · 구형 환경 정적 폴백
NFR-13Formatting통화·숫자·시각 포맷 규칙 — 통화는 ₩ 주표기 + ~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-17default·loading·empty·error·stale·partial 6개 상태 모두 FR로 분리. platform·pools 대칭 보장
D3 인터랙션 메커니즘FR-1, FR-11, FR-13, FR-16, FR-23scroll-spy·필터·retry(데이터 재요청)·reveal 동작 명시
D4 포맷·콘텐츠NFR-13, Q21포맷 = NFR-13, 면책·법무 카피 = Q21, 링크 목적지 = §10(Q11·Q17 결정)
D5 모션·접근성NFR-4reduced-motion·헤딩 계층·키보드·focus 명시
D6 페이지 레벨NFR-3, NFR-6, NFR-7, NFR-10, NFR-12, §8SEO·OG·CSP·no-JS·브라우저. 다크모드 토글·favicon 정책은 §8
D7 데이터 형상FR-12, §10풀 3행 mock 형상 = §10. 풀 수 적어 페이지네이션·정렬 불요(§10 가정)
횡단 차원은 가능한 한 NFR로 귀결시키고 FR 신설은 최소화했다. 반응형은 NFR-5 + 복합 컴포넌트 FR의 Acceptance Criteria 보강으로 처리했다.
§7

User Flows & Screens

Flow AVisitor 단방향 Inbound 스크롤

Persona
Visitor (비로그인 일반 방문자)
Entry
공개 URL 직접 접근 또는 외부 링크 → 페이지 상단 Hero 진입
  1. 방문자가 페이지에 진입 → 시스템이 §4.1 Hero(헤드라인·집계 스냅샷 카드)를 렌더한다 (FR-2, FR-3)
  2. 방문자가 스크롤 또는 nav 클릭 → 시스템이 §4.2 root64 소개(Pillar 3카드·브랜드 패널)를 노출한다 (FR-4, FR-5)
  3. 방문자가 §4.3 진입 → 시스템이 자금 흐름 다이어그램·검증 4카드를 노출한다 (FR-6, FR-7)
  4. 방문자가 §4.4 진입(또는 Hero Primary CTA 클릭) → 시스템이 플랫폼 집계 통계를 노출한다 (FR-8)
  5. 방문자가 §4.5 진입 → 시스템이 풀 테이블·상태 필터를 노출한다 (FR-12, FR-13)
  6. 방문자가 §4.6·§4.7 진입 → 시스템이 Why root64 4카드·로드맵 타임라인을 노출한다 (FR-18, FR-19)
  7. 방문자가 §4.8 진입 → 시스템이 문의 밴드·문의 폼 스텁을 노출한다; "Institutional Inquiry" CTA → 폼으로 스크롤 (FR-20, FR-21)
  8. 방문자가 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)
단일 페르소나·단일 플로우 PRD다. 풀 행 클릭은 단기적으로 #contact 스크롤이며(§10 Q17), 별도 풀 상세 페이지로의 분기 플로우는 본 PRD 범위 밖(§8).
§8

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 설명 카드 렌더링만 다룸.
§9

Open Questions

프로토타입 OPEN-QUESTIONS.md의 23개 Q + 추출기 보강 3개 중, 작성자·사용자가 결정 가능한 18개는 §10에 결정 기록으로 옮겼다. 아래 8개는 법무·디자인팀·파트너의 별도 게이트가 필요해 미결로 남긴다. Q 번호는 프로토타입 원본 번호를 유지한다.
Q4토큰화 Pillar 카드·로드맵 2단계의 표현 수준법무 검토 권장
비로그인 공개 페이지에서 토큰 발행(Stage 2) 구조를 어느 수준까지 설명할지. 한국 자본시장법상 비로그인 페이지의 PI 대상 투자 구조 설명이 공모 권유 트리거가 될 수 있는지 확인 필요. 종속: FR-4, FR-19.
  • A."2026 3Q 예정" pill + 간략 설명 (현재 수준)
  • B.홍콩 Unit Trust·PI 요건 등 상세 토큰 구조 설명
  • C.토큰화 카드를 비로그인 페이지에서 제외
  • D.예정 항목을 greyed-out으로만 표시
👉 추천: A 유지 (또는 D) — 공모 트리거 리스크를 피하는 최소 노출. 단 법무팀이 A 수준도 권유로 해석될 여지가 있는지 최종 확인.
종속: FR-4 · FR-19 · 담당: 법무팀
Q10DESIGN-SPEC 가안 토큰 채택 방식디자인팀 확인
docs/design/2026-05-18-design-system.md가 가안(provisional) 상태 — 정식 BI 확정 시 재작업 리스크. 토큰 채택 방식 결정 필요.
  • A.DESIGN-SPEC §1 토큰을 그대로 채택
  • B.토큰명 추상화 레이어 추가(--brand-primary--color-accent)로 재작업 범위 완충
👉 추천: B — 정식 BI 확정 시 전면 재작업을 추상화 레이어로 완충. 단기 토큰 구조는 유지 가능.
종속: 전역 스타일(styles/tokens.css) · 담당: 디자인팀
Q12풀 상태 배지·리스크 지표 색상 토큰디자인팀 확인
DESIGN-SPEC §1.2에 --color-status-*·--color-risk-* 토큰 미정의. 현재 accent/ink-soft 근사값 사용 중(프로토타입 Pending Tokens). 종속: FR-12.
  • A.초록(active)/회색(closed)/노랑(pending)/빨강(high-risk) 표준 팔레트를 DESIGN-SPEC 공식 토큰으로 확정
  • B.accent 계열 단색 근사 유지
👉 추천: A — 상태·리스크 구분은 색상 의미가 중요. DESIGN-SPEC §1.2에 공식 토큰 확정 권장. Q10과 함께 결정.
종속: FR-12 · 담당: 디자인팀
Q16비로그인 공개 가능 풀 지표 상한법무 필수
풀별로 AUM·평균 LTV·연체율 중 어디까지 비로그인에 공개 가능한가. "개별 투자자 역추적 불가한 집계 수준만 공개" 원칙(api-public.md 방침) 하에 LTV·연체율이 역추적 소지가 있는지 법무 확인 필요. 종속: FR-8, FR-12.
  • A.AUM·평균 LTV·연체율 표시 (현재 수준, NAV·좌당가·거래내역 비노출)
  • B.AUM만 노출 (LTV·연체율 추가 제한)
  • C.집계 수준만 (개별 풀 행 미노출)
👉 추천: A를 출발점으로 법무 검토 — 기관 투자자 실사 수요와 역추적 리스크를 병행 평가. LTV·연체율의 개별 역추적 가능성을 확정.
종속: FR-8 · FR-12 · 담당: 법무팀 — 해소 전 in-review 승격 불가
Q18로드맵 공개 단계 수·미확정 단계 레이블링법무 검토 권장
규제기관·기자 대상 페이지이므로 미확정 계획을 확정 계획으로 오독하지 않도록 공개 범위·레이블 검토 필요. 종속: FR-19.
  • A.4단계 전부 표시 (현재 수준)
  • B.1~2단계만 표시 — 미확정 계획 노출 최소화
  • C.스텝 클릭 시 모달/아코디언 상세
👉 추천: A + 미확정 레이블 명시 — 3·4단계에 "검토 중"·"예정"을 명시. 법무가 미확정 단계 문구를 검토.
종속: FR-19 · 담당: 법무팀
Q20문의 형태·PII 처리 표면법무·백엔드 필수
문의를 입력 폼/mailto/외부 폼 중 무엇으로 받을지, PII(이름·이메일·기관명) 처리 정책을 어떻게 둘지. 개인정보 처리방침 법무 검토 필요. 종속: FR-21.
  • A.입력 폼 + 백엔드 API (개인정보 처리방침·보관 정책 필요)
  • B.mailto 링크 — PII 수집 표면 최소화
  • C.외부 폼 서비스(Google Form 등) — GDPR·PIPA 적용 범위 별도 확인
  • D.이메일 주소 텍스트만 노출
👉 추천: B를 단기 기본값 — PII 미수집으로 처리 정책 불필요. 장기 A 전환 시 Q21과 동시에 개인정보 처리방침 확정.
종속: FR-21 · 담당: 법무팀 + 백엔드 — 해소 전 in-review 승격 불가
Q21규제 면책·관할권 제한 고지 수준법무 필수
한국 자본시장법(49인 이상 거주자 권유 시 공모 트리거)·홍콩 PI 요건·관할권 제한·개인정보 처리방침 링크 등 Footer 면책 고지 범위 확정 필요. 종속: FR-22.
  • A.현재 스텁 수준 간단 면책 + 법무팀 최종 문구 삽입
  • B.자본시장법·홍콩 PI·관할권 제한·개인정보 처리방침 링크 포함 전체 면책 고지
👉 추천: B — 타깃에 규제기관·기자가 포함되므로 면책·관할권 고지를 완비. Q4·Q18과 함께 법무팀 원스톱 검토.
종속: FR-22 · 담당: 법무팀 — 해소 전 in-review 승격 불가
Q23Kaia 파트너십·첫 Kaia 딜 명시 여부Kaia 확인 필요
풀 테이블·자금 구조 섹션에서 "Kaia Loan Pool A" 등 파트너사명·첫 딜을 공개적으로 명시할지. 파트너사명 공개는 상대방 동의 없이 선행 불가. 종속: FR-12.
  • A."Kaia Loan Pool A" 명칭으로 공개
  • B.파트너사명 비공개 — "Pool A" 등 익명 처리
  • C.Kaia Foundation 로고·파트너십 배너 추가
👉 추천: B를 기본값으로 유지하다 Kaia 측 공개 동의 확인 후 A/C로 전환.
종속: FR-12 · 담당: BD/파트너십 (Kaia 측 확인) — 해소 전 in-review 승격 불가
§10

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/high 6개가 DESIGN-SPEC §1.2 미정의 상태로 근사값 사용 중 — Q12 확정 후 공식 토큰 교체.
  • API 엔드포인트: GET /v1beta1/public/aggregate·/v1beta1/public/risk-metrics — mock.json의 형상 기준 추론. 실제 퍼블릭 API 계약은 백엔드 확정 필요. 💡 [AI-Assumption]
소스(docs/)와 본 PRD 간 직접 충돌 항목: 없음. 위는 소스가 침묵한 영역의 결정 기록이다.
§11

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·좌당가 비노출)를 공유한다.
§12

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 기준 자체 평가.

CriterionWeightScore
명료성heavy5 / 5
측정가능성heavy4 / 5
페르소나 일관성light5 / 5
스코프 명확성light5 / 5
구조·추적성light5 / 5
UI 구현 완결성light4 / 5
Weighted Average = 4.6 / 5.0 — Pass

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(토큰 추상화)이 디자인팀 미확정.