1.9 KiB
1.9 KiB
Backend·Frontend·Hangfire 구현 표준
Backend
- FastEndpoints는 HTTP 계약·Auth·Validator·ProblemDetails만 담당한다.
- Application은 멱등키, transaction, Context loading, orchestration을 담당한다.
- Domain Policy는 순수 함수와 상태전이로 구현한다.
- Dapper SQL은 명시 컬럼·명시 transaction·PIT cutoff를 사용한다.
- Decision과 Outbox는 동일 transaction이다.
- Inbox는 message id/version/consumer 기준 중복 side effect를 0으로 만든다.
- 생산형 Command는 PositionLotId, AsOf, IdempotencyKey 등 최소 식별자만 받고 Evidence/VersionSet은 서버가 조회한다.
v12.5 Scheduler 안전장치
- Dispatcher는 configuration에서 기본 OFF다.
- OFF이면 recurring job을 제거한다.
- ShadowEvaluation capability가 꺼져 있으면 Dispatcher를 활성화할 수 없다.
- J10~J30은 평가·제안·훈련만 허용하며 모델/설정/코드·고객공개·주문을 변경하지 않는다.
- 기존 schedule은 migration 후 재승인 전 disabled다.
- default Hangfire blind retry를 제한하고 BusinessHold/Quarantine/Poison을 구분한다.
- 시장캘린더와 source completeness 승인 전 J26을 활성화하지 않는다.
Frontend
| 상태 | 소유자 | 규칙 |
|---|---|---|
| Server state | TanStack Query | query-key registry, staleTime, invalidate, retry |
| Session/Role/UI preference | Pinia | 도메인 서버데이터 복제 금지 |
| Form | vee-validate + Zod | request/response runtime validation |
| URL 공유상태 | vue-router | scope/cohort/window/filter deep link |
| 대량 운영목록 | AG Grid | server-side model과 column-state contract |
고객 화면은 내부 운영 화면과 분리한다. 고객에게는 행동·비중·핵심근거·반대증거·비용·불확실성·유효기간·다음검토·재진입 계약을 제공한다. 운영자에게는 VersionSet, DQ, policy trace, approval, audit를 제공한다.