Skip to content

전략: FE de-facto Connector 포트폴리오를 우선 확보 #293

Description

@developer-1px

배경

json-document의 Connector는 database source나 제품별 API를 수집하는 계층이 아니라, FE 생태계의 이름 붙은 de-facto native contract와 json-document public contract를 번역하는 독립 optional package다.

Database Workspace를 향한 기능을 계속 추가하기 전에 주요 FE 계약과의 접점을 먼저 확보해, 같은 headless editing·selection·history가 서로 다른 UI 생태계에서 재사용됨을 증명한다.

Goal Anchor

  • Outcome: Database UI 기능보다 FE de-facto Connector 확보를 우선하는 레포 전략을 참고 이슈로 보존한다.
  • Done:
    • 현재 Connector: React, Zod, TanStack Table
    • 우선 확보 대상: Web Platform, TanStack Virtual, React Hook Form
    • 검증 후보: React Aria, dnd-kit
    • 첫 구현 태스크: Web Platform Connector
    • 승격 조건: public contract만 사용하고 반복 glue, contract test, Connector Live Demo와 browser acceptance로 필요성을 증명한다.
  • Don't:
    • REST, SQL, 회사 API를 Connector 범위에 넣지 않는다.
    • 검증 후보를 구현 확정으로 취급하지 않는다.
    • Connector가 새로운 editing 또는 database semantics를 발명하지 않는다.
    • Kernel의 dependency-free 경계를 바꾸지 않는다.

포트폴리오

구분 대상 상태
Framework lifecycle React 구현됨
Runtime validation Zod 구현됨
Table projection TanStack Table 구현됨
Browser input/clipboard Web Platform 첫 구현 태스크
Large collection viewport TanStack Virtual 우선 확보 대상
Record detail/form React Hook Form 우선 확보 대상
Accessible collection selection React Aria 반복 glue 검증 후보
Drag/reorder interaction dnd-kit 반복 glue 검증 후보

Connector 승격 계약

Connector는 다음 조건을 모두 만족할 때 공식 package로 승격한다.

  • Kernel 또는 companion의 public contract만 사용한다.
  • 대상 생태계의 native API 모양을 유지한다.
  • 외부 runtime을 peerDependency로 격리한다.
  • Connector를 제거하거나 교체해도 canonical JSON, selection topology, command 의미가 바뀌지 않는다.
  • contract test, Connector별 Live Demo, browser acceptance를 제공한다.
  • 제품별 UI, persistence, remote protocol과 interaction policy는 host에 남긴다.

진행 원칙

우선 확보 대상도 미리 일괄 구현하지 않는다. Live Demo에서 반복되는 app-local glue가 확인될 때 하나씩 Connector로 추출한다. React Aria와 dnd-kit은 해당 반복이 증명되기 전까지 후보 상태를 유지한다.

참고

  • README.md
  • docs/public/connectors.md
  • site/src/routes/connectors/connector-catalog.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicTracking issue for multi-step work

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions