Files
clean-architecture-frontend…/src/features/reference-feature

Reference feature ownership and removal

이 모듈은 제품 도메인이 아니라 새 기능의 수직 경계를 검증하는 제거 가능한 reference implementation이다.

소유 경계

  • domain: 외부 DTO와 React를 모르는 불변 model
  • application: UI가 호출하는 list/get/create input과 gateway 계약
  • adapters: HTTP executor를 gateway로 투영하는 outbound adapter
  • contracts: route/API/query contribution, Zod DTO와 request schema, mapper
  • presentation: route input을 query/form controller로 연결하는 inbound adapter, 독립 form schema/command mapper와 list/detail/form/status page

generic application은 features.get(featureId) catalog만 제공한다. feature hook이 자신의 input shape를 확인하며 page는 HTTP client, storage, auth owner, output port나 TanStack API를 직접 import하지 않는다.

설치 지점

  • 직렬화 계약: src/features/installed-feature-contracts.js
  • component/codec: src/features/installed-feature-runtimes.tsx
  • bootstrap input 조립: src/features/installed-feature-adapters.ts

새 기능도 이 세 지점에 contribution을 합성하되 feature ID를 generic application, router나 HTTP client에 하드코딩하지 않는다.

검증과 제거

corepack pnpm test:reference-feature
corepack pnpm test:sample-removal

첫 명령은 URL filter와 query key/HTTP request의 동일성, schema/mapper, 모든 query/mutation/form 상태와 production composition을 검증한다. 두 번째 명령은 임시 복제본에서 이 source/test 디렉터리를 제거하고 installed catalog를 빈 목록으로 재생성한 뒤 typecheck, architecture, registry, unit/integration, home smoke, production build와 source/built fixture ID 잔여 0개를 검사한다.