feat: add optional frontend adapter recipes

This commit is contained in:
donghyeon-ka
2026-07-26 17:57:04 +09:00
parent 638f5f71bd
commit 6c73b845bd
29 changed files with 2291 additions and 45 deletions
@@ -885,27 +885,32 @@ capability의 기본 정책, port 또는 안전한 no-op 구현과 composition
| Adapter | 도입 조건 | 기본 상태 |
| --- | --- | --- |
| WebSocket/SSE | 실시간 server event 필요 | 미설치 recipe |
| IndexedDB | 큰 offline data 또는 durable queue 필요 | 미설치 recipe |
| Service Worker/PWA | offline shell과 installability 필요 | 미설치 recipe |
| WebSocket/SSE | 실시간 server event 필요 | opt-in recipe 제공, 미설치 |
| IndexedDB | 큰 offline data 또는 durable queue 필요 | opt-in recipe 제공, 미설치 |
| Service Worker/PWA | offline shell과 installability 필요 | opt-in recipe 제공, 미설치 |
| Offline mutation queue | 재연결 후 명령 재처리 필요 | 미설치 recipe |
| Feature flag | remote rollout/kill switch 필요 | 미설치 recipe |
| Feature flag | remote rollout/kill switch 필요 | opt-in recipe 제공, 미설치 |
| Translation catalog vendor | 원격 catalog·복수 namespace 운영 필요 | 기본 locale facade 뒤에 미설치 |
| Analytics | 사용자 동의 기반 product analytics 필요 | 미설치 recipe |
| Error-reporting SDK | 운영 예외 집계 필요 | 미설치 recipe |
| OpenTelemetry | 조직 trace 연계 필요 | 미설치 recipe |
| Web Worker | CPU 작업이 main thread를 막음 | 미설치 recipe |
| Notification | 사용자 권한 기반 browser notification 필요 | 미설치 recipe |
| Clipboard/File/Media | 해당 browser capability 필요 | 미설치 recipe |
| Analytics | 사용자 동의 기반 product analytics 필요 | opt-in recipe 제공, 미설치 |
| Error-reporting SDK | 운영 예외 집계 필요 | opt-in recipe 제공, 미설치 |
| OpenTelemetry | 조직 trace 연계 필요 | opt-in recipe 제공, 미설치 |
| Web Worker | CPU 작업이 main thread를 막음 | opt-in recipe 제공, 미설치 |
| Notification | 사용자 권한 기반 browser notification 필요 | opt-in recipe 제공, 미설치 |
| Clipboard/File/Media | 해당 browser capability 필요 | opt-in recipe 제공, 미설치 |
| Image CDN adapter | responsive image transform 필요 | 미설치 recipe |
| Virtualization | 대량 list rendering이 측정상 병목 | 미설치 recipe |
| OpenAPI generator | backend 계약에서 client 생성 필요 | 미설치 recipe |
| Zustand/Redux/Jotai | 복잡한 cross-page client state 확인 | 미설치 recipe |
| XState 등 state machine | 장기 workflow 상태 전이가 복잡함 | 미설치 recipe |
| Virtualization | 대량 list rendering이 측정상 병목 | opt-in recipe 제공, 미설치 |
| OpenAPI generator | backend 계약에서 client 생성 필요 | opt-in recipe 제공, 미설치 |
| Zustand/Redux/Jotai | 복잡한 cross-page client state 확인 | opt-in recipe 제공, 미설치 |
| XState 등 state machine | 장기 workflow 상태 전이가 복잡함 | opt-in recipe 제공, 미설치 |
| Cloud visual-review service | 외부 승인·호스팅 workflow 필요 | 로컬 Storybook/visual gate 뒤에 미설치 |
선택 adapter는 “나중에 쓸 수 있으므로” 기본 bundle에 넣지 않는다. 도입
조건, 보안 영향, bundle 비용과 제거 방법이 확인된 경우에만 추가한다.
현재 구현된 공통 catalog, TypeScript contract/fake와 blocking gate는
`docs/architecture/optional-adapter-recipes.md`
`config/recipes/frontend-capability-recipes.json`을 따른다. 이 recipe source를
production에서 직접 import하는 것은 금지하며 선택한 contract만 application
소유 경계로 이동한다.
## 19. 새 outbound adapter 추가 recipe