배경
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
배경
json-document의 Connector는 database source나 제품별 API를 수집하는 계층이 아니라, FE 생태계의 이름 붙은 de-facto native contract와json-documentpublic contract를 번역하는 독립 optional package다.Database Workspace를 향한 기능을 계속 추가하기 전에 주요 FE 계약과의 접점을 먼저 확보해, 같은 headless editing·selection·history가 서로 다른 UI 생태계에서 재사용됨을 증명한다.
Goal Anchor
포트폴리오
Connector 승격 계약
Connector는 다음 조건을 모두 만족할 때 공식 package로 승격한다.
peerDependency로 격리한다.진행 원칙
우선 확보 대상도 미리 일괄 구현하지 않는다. Live Demo에서 반복되는 app-local glue가 확인될 때 하나씩 Connector로 추출한다. React Aria와 dnd-kit은 해당 반복이 증명되기 전까지 후보 상태를 유지한다.
참고
README.mddocs/public/connectors.mdsite/src/routes/connectors/connector-catalog.ts