Files
test-mcp/templates/analysis.html

145 lines
7.2 KiB
HTML

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>데이터 분석 - Project Master Sabermetrics</title>
<link rel="stylesheet" as="style" crossorigin
href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css" />
<link rel="stylesheet" href="style/common.css">
<link rel="stylesheet" href="style/analysis.css">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2"></script>
</head>
<body>
<nav class="topbar">
<div class="topbar-header">
<a href="/">
<h2>Project Master Test</h2>
</a>
</div>
<ul class="nav-list">
<li class="nav-item" onclick="location.href='/dashboard'">대시보드</li>
<li class="nav-item" onclick="location.href='/inquiries'">문의사항</li>
<li class="nav-item" onclick="location.href='/mailTest'">메일관리</li>
<li class="nav-item active" onclick="location.href='/analysis'">분석</li>
</ul>
</nav>
<main class="analysis-content wide">
<header class="analysis-header">
<div class="title-group">
<div class="ai-badge">AI Sabermetrics</div>
<h2>시스템 운영 빅데이터 분석</h2>
<p>수집된 활동 로그 및 문의사항 데이터를 기반으로 한 통계적 성능 지표 (Beta)</p>
</div>
<div class="analysis-actions">
<button class="btn-refresh" onclick="location.reload()">데이터 갱신</button>
</div>
</header>
<div class="top-info-grid">
<!-- 딥러닝 모델 상세 설명 섹션 -->
<section class="dl-model-info compact">
<div class="card-header">
<h4><i class="ai-icon">AI</i> Hybrid Prediction Engine</h4>
</div>
<div class="card-body">
<div class="model-desc-vertical">
<div class="model-item-vertical">
<span class="model-tag">알고리즘</span>
<p>최근 9회차 시계열의 <strong>Velocity</strong> 및 가속도 분석</p>
</div>
<div class="model-item-vertical">
<span class="model-tag">판단 로직</span>
<p>활동 시 <strong>'선형 추세'</strong>, 정체 시 <strong>'지수 감쇄'</strong> 가중치 적용</p>
</div>
</div>
</div>
</section>
<!-- SOI 심층 설명 섹션 (AAS 모델 반영) -->
<section class="soi-deep-dive compact">
<div class="card-header">
<h4><i class="info-icon">i</i> AI 위험 적응형 모델 (AAS) 기반 지표 정의</h4>
</div>
<div class="card-body">
<div class="soi-info-columns">
<div class="soi-info-column">
<h6>1. AI 자산 가치 평가 (Scale)</h6>
<p>단순 방치가 아닌 <strong>자산의 크기</strong>를 감지합니다. 파일 수가 많은 프로젝트는 관리 공백 시 데이터 가치 하락 속도를 AI가 자동으로 <strong>가속(Acceleration)</strong>시켜 경고를 강화합니다.</p>
</div>
<div class="soi-info-column">
<h6>2. 조직 위험 전염 (Contagion)</h6>
<p>부서별 평균 활동성을 분석하여 <strong>조직적 방치</strong>를 포착합니다. 소속 부서의 전반적인 SOI가 낮을 경우, 개별 프로젝트의 위험 지수를 상향 조정하여 시스템적 붕괴를 예보합니다.</p>
</div>
<div class="soi-info-column">
<h6>3. 동적 위험 계수 (Adaptive Lambda)</h6>
<p>기존의 고정된 공식을 폐기하고, 프로젝트마다 <strong>개별화된 위험 곡선</strong>을 생성합니다. AI가 실시간으로 위험 계수를 재산출하여 가장 실무적인 가치 보존율을 제공합니다.</p>
</div>
</div>
</div>
</section>
</div>
<!-- 메인 분석 영역 -->
<div class="analysis-main-full">
<div class="analysis-card timeline-analysis">
<div class="card-header">
<div style="display: flex; flex-direction: column; gap: 4px;">
<h4>Project Stagnation Objective Index (P-SOI Status)</h4>
<p style="font-size: 11px; color: #888; margin: 0;">이상적 관리 상태(100%) 대비 현재의 활동 가치 보존율 및 14일 뒤 미래를 예측합니다.</p>
</div>
<div class="card-tools">
<span id="avg-system-info" style="font-size: 11px; color: #888;">* SOI (Project Health Score)</span>
</div>
</div>
<div class="card-body">
<div class="d-war-guide">
<div class="guide-item active-low"><span>70%↑</span> 정상</div>
<div class="guide-item warning-mid"><span>30~70%</span> 주의</div>
<div class="guide-item danger-high"><span>10~30%</span> 위험</div>
<div class="guide-item hazard-critical"><span>10%↓</span> 사망</div>
</div>
<!-- 차트 그리드 레이아웃 도입 -->
<div class="analysis-charts-grid">
<div class="chart-container-box">
<h5>건강 상태 분포 (Project Distribution)</h5>
<canvas id="statusChart"></canvas>
</div>
<div class="chart-container-box">
<h5>관리 사각지대 진단 (Vitality Scatter Plot)</h5>
<canvas id="forecastChart"></canvas>
</div>
</div>
<div id="p-war-table-container">
<!-- 테이블은 기존처럼 동적 삽입 -->
</div>
</div>
</div>
</div>
</main>
<!-- 분석 상세 설명 모달 -->
<div id="analysisModal" class="modal-overlay" onclick="closeAnalysisModal(event)">
<div class="modal-content" onclick="event.stopPropagation()">
<div class="modal-header">
<h3 id="modalTitle">지표 상세 설명</h3>
<button class="modal-close" onclick="closeAnalysisModal()">&times;</button>
</div>
<div class="modal-body" id="modalBody">
<!-- 내용 동적 삽입 -->
</div>
</div>
</div>
<script src="js/common.js"></script>
<script src="js/analysis.js"></script>
</body>
</html>