feat: connect application input and output boundaries
This commit is contained in:
@@ -130,21 +130,27 @@ bootstrap은 page별 orchestration이나 업무 규칙을 소유하지 않는다
|
||||
- render boundary와 async state surface
|
||||
- route registry와 lazy page
|
||||
|
||||
그러나 현재 실행 경로에는 다음 불일치가 있다.
|
||||
RP-02 구현으로 다음 경계는 실행 경로에 연결됐다.
|
||||
|
||||
1. `src/bootstrap/composition-root.js`가 `application`을 만들지만
|
||||
`src/bootstrap/main.jsx`는 이를 사용하지 않고 `authSession`,
|
||||
`storage`, `telemetry`를 presentation에 직접 전달한다.
|
||||
2. `createApplication`이 input use case 대신 cache, storage, telemetry
|
||||
output port를 그대로 노출한다.
|
||||
3. `QueryClientProvider`는 존재하지만 실제 product route에서
|
||||
- `src/bootstrap/composition-root.js`가 만든 application을 production
|
||||
`ApplicationProvider`가 실제 React tree에 주입한다.
|
||||
- `createApplication`은 session, preference, diagnostics, runtime query의
|
||||
input API만 반환하며 storage, telemetry, release output port를 숨긴다.
|
||||
- bootstrap composition 결과는 raw output port를 반환하지 않고
|
||||
application과 React infrastructure만 반환한다.
|
||||
- presentation의 direct fetch/browser storage/concrete adapter/TanStack import와
|
||||
application의 React/concrete adapter import는 negative fixture가 거절한다.
|
||||
|
||||
후속 브랜치에서 닫아야 할 실행 불일치는 다음과 같다.
|
||||
|
||||
1. `QueryClientProvider`는 존재하지만 실제 product route에서
|
||||
`useQuery` 또는 `useMutation`을 연결하는 query bridge가 없다.
|
||||
4. route registry의 `paramsSchema`, `searchSchema`, `loadingSurface`,
|
||||
2. route registry의 `paramsSchema`, `searchSchema`, `loadingSurface`,
|
||||
`errorSurface`, `chunkId` 일부는 실행 route와 연결되지 않았다.
|
||||
5. 제거 테스트는 `src/sample/contract-fixture`만 제거하며, sample API
|
||||
3. 제거 테스트는 `src/sample/contract-fixture`만 제거하며, sample API
|
||||
operation, Zod schema, mapper, domain model과 query key는 다른 경로에
|
||||
남는다.
|
||||
6. runtime의 `REQUEST_TIMEOUT_MS`, `MAX_RETRY_ATTEMPTS`는 검증되지만
|
||||
4. runtime의 `REQUEST_TIMEOUT_MS`, `MAX_RETRY_ATTEMPTS`는 검증되지만
|
||||
concrete HTTP client 구성에 전달되지 않는다.
|
||||
|
||||
이 문서의 목표 구조는 기존 기반을 폐기하는 것이 아니라 이러한
|
||||
|
||||
Reference in New Issue
Block a user