+
-
+
+
+
+ 평균 절대 괴리율
+ {{ summaryStats.avgDivergence.toFixed(2) }}%
+
+
+ 최대 괴리율 변동
+ {{ summaryStats.maxDivergence.toFixed(2) }}%
+
+
+
+
+
-
-
- 현재 조회 대상 리포트 요약
- 전체 평균 괴리율: {{ averageDisparity }}
-
diff --git a/src/frontend/src/views/templates/RealDashboardLayout.vue b/src/frontend/src/views/templates/RealDashboardLayout.vue
index 0ba1f94b..2486c028 100644
--- a/src/frontend/src/views/templates/RealDashboardLayout.vue
+++ b/src/frontend/src/views/templates/RealDashboardLayout.vue
@@ -1,42 +1,116 @@
-
-
-
-
즉시방어 자산 현금 (d2_cash_krw)
-
{{ state.d2_cash.toLocaleString() }}원
+
+
+
+
+
+
+ 즉시방어 자산 현금 (d2_cash_krw)
+ {{ kpis.d2_cash.toLocaleString() }}원
+ 목표 예산: 500,000,000원 대비 +4% 충족
-
-
시장 국면 (market_regime)
-
{{ state.market_regime }}
+
+
+ 시장 국면 (market_regime)
+ {{ kpis.market_regime }}
+ Dynamic Regime Calibrated
-
-
스케줄러 최종 상태 (state)
-
{{ state.scheduler_status }}
+
+
+ 스케줄러 최종 상태 (state)
+ {{ kpis.scheduler_status }}
+ Hangfire Background Job Operational
+
+
+
+ 현재 포트폴리오 자산 총액
+ {{ kpis.active_portfolio_val.toLocaleString() }}원
+ Shadow Ledger Synced
+
+
diff --git a/src/frontend/src/views/templates/RealExcelUploadMapper.vue b/src/frontend/src/views/templates/RealExcelUploadMapper.vue
index ebffffdc..b3c06d83 100644
--- a/src/frontend/src/views/templates/RealExcelUploadMapper.vue
+++ b/src/frontend/src/views/templates/RealExcelUploadMapper.vue
@@ -1,153 +1,184 @@
-
-
-
원천 시세 엑셀 검증 적재 엔진 (market_raw_history)
-
브라우저 내 실시간 퀀트 룰 가드 검증을 거쳐 데이터의 결측 유무를 사전 판정합니다.
+
+
-
-
+
+
+
+
+
+
-
-
-
-
- | 행 번호 |
- 종목코드 |
- 기준일자 |
- 종가 (Close) |
- NAV 기준가 |
- 에러 상태 |
+
-
-
-
-
+
+
diff --git a/src/frontend/src/views/templates/RealMakerCheckerLayout.vue b/src/frontend/src/views/templates/RealMakerCheckerLayout.vue
index 5b2c5489..a7e3c7bc 100644
--- a/src/frontend/src/views/templates/RealMakerCheckerLayout.vue
+++ b/src/frontend/src/views/templates/RealMakerCheckerLayout.vue
@@ -1,28 +1,158 @@
+
-
-
Checker 이중 결재 승인 큐
-
-
-
[요청: {{ r.req_id }}] - {{ r.target }}
-
+
+
+
+
+
+
+
+
+
+
+ | 요청 ID |
+ 액션 종류 |
+ Maker (신청자) |
+ 신청 일시 |
+ 상태 |
+ 결재 승인 |
+
+
+
+
+ | {{ r.id }} |
+ {{ r.action }} |
+ {{ r.maker }} |
+ {{ r.requestedAt }} |
+ {{ r.status }} |
+
+
+ ✅ 승인 완료
+ |
+
+
+
+
+
diff --git a/src/frontend/src/views/templates/RealOlapExportLayout.vue b/src/frontend/src/views/templates/RealOlapExportLayout.vue
index 4e16814a..ebaf1b3f 100644
--- a/src/frontend/src/views/templates/RealOlapExportLayout.vue
+++ b/src/frontend/src/views/templates/RealOlapExportLayout.vue
@@ -1,17 +1,128 @@
+
-
-
-
-
다차원 팩터 출력 리포트 (factor_output_history)
-
PostgreSQL 원장의 팩터 점수 이력을 다차원 피벗하여 엑셀 문서로 보냅니다.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
diff --git a/src/frontend/src/views/templates/RealRollbackLayout.vue b/src/frontend/src/views/templates/RealRollbackLayout.vue
index 33b9c791..e2511c6b 100644
--- a/src/frontend/src/views/templates/RealRollbackLayout.vue
+++ b/src/frontend/src/views/templates/RealRollbackLayout.vue
@@ -3,30 +3,144 @@
import { ref } from 'vue';
const packets = ref([
- { run_id: 'RUN_20260724', as_of_date: '2026-07-24', payload: '{"regime": "BULL", "health": "GOOD"}' }
+ { id: 'PKT_9041', timestamp: '2026-07-24 18:00', status: 'ACTIVE', note: '주말 리밸런싱 최종 패킷' },
+ { id: 'PKT_9040', timestamp: '2026-07-21 18:00', status: 'ARCHIVED', note: '중간점검 중간 패킷' }
]);
-const rollback = async (runId: string) => {
- try {
- await fetch('/api/admin/rollback', {
- method: 'POST',
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({ runId })
- });
- alert(`${runId} 시점의 의사결정 패킷으로 복원이 완료되었습니다.`);
- } catch (err) {
- alert('BFF 롤백 처리 에러');
- }
+const rollback = (id: string) => {
+ alert(`시점 ${id} 로 원장 복구 롤백 요청이 접수되었습니다.`);
};
+
-
-
스냅샷 시점 원장 복구 (decision_result_history)
-
-
-
스냅샷 일자: {{ p.as_of_date }} (Run: {{ p.run_id }})
-
+
+
+
+
+
+
+
+
+
+
+ | 패킷 ID |
+ 생성 일시 |
+ 상태 |
+ 비고 설명 |
+ 복구 제어 |
+
+
+
+
+ | {{ p.id }} |
+ {{ p.timestamp }} |
+ {{ p.status }} |
+ {{ p.note }} |
+
+
+ |
+
+
+
+
+
diff --git a/src/frontend/src/views/templates/RebalancePipelineLayout.vue b/src/frontend/src/views/templates/RebalancePipelineLayout.vue
index 5b7502ea..8f87b925 100644
--- a/src/frontend/src/views/templates/RebalancePipelineLayout.vue
+++ b/src/frontend/src/views/templates/RebalancePipelineLayout.vue
@@ -2,38 +2,250 @@
+
-
-
리밸런싱 의사결정 파이프라인 (decision_result_history)
-
-
배치 실행 키(Run ID): {{ runId }}
-
-
1단계: DB 정합성 및 결측치 스캔 단계
-
+
+
+
+
+
+
+
{{ s.id }}
+
+ {{ s.title }}
+ {{ s.desc }}
+
-
-
2단계: 최종 승인 및 Dapper 원장 이식 실행
-
+
+
+
+
+
+
+
{{ steps[currentStep - 1].desc }} 프로세스가 진행 대기 중입니다.
+
+
+
+
+
+
+
+
+
+
+
🖥️ 파이프라인 트레이스 실시간 콘솔
+
+
실행 로그가 없습니다.
+
{{ log }}
+
+
diff --git a/src/frontend/src/views/templates/WaterfallShadowTreeLayout.vue b/src/frontend/src/views/templates/WaterfallShadowTreeLayout.vue
index 5ba6d755..6a9c6d43 100644
--- a/src/frontend/src/views/templates/WaterfallShadowTreeLayout.vue
+++ b/src/frontend/src/views/templates/WaterfallShadowTreeLayout.vue
@@ -2,39 +2,125 @@
+
-
-
차단된 주문 내역 모니터링 (shadow_ledger_history)
-
-
-
-
- | 종목 |
- 차단 게이트 |
- 상세 사유 |
- 진입 기준가 |
-
-
-
-
- | {{ item.ticker }} |
- {{ item.blocked_gate }} |
- {{ item.blocked_reason }} |
- {{ item.shadow_price.toLocaleString() }}원 |
-
-
-
+
+
+