# Implementation Report: 국내/국제 시세 페이지 상단 미니 차트

## Summary
금·석유·배출권(국내) + 천연가스·커모디티 7종(국제) 페이지 상단에 Chart.js 라인 차트 추가. 공용 `ChartData` 모델 + `Views/Component/Chart.cshtml` 파셜 + `price-chart.js`로 구성(Pagination 파셜과 동형). 국제는 캐시된 전체 시계열 재사용(Alpha 추가 호출 0회, 최신 60포인트), 국내는 같은 검색조건으로 차트용 1회 추가 조회 후 종목/유종별 다중 시리즈 그룹핑.

## Assessment vs Reality

| Metric | Predicted (Plan) | Actual |
|---|---|---|
| Complexity | Medium | Medium |
| Confidence | 9/10 | 적중 — 계획 그대로, 편차 없음 |
| Files Changed | 13 | 13 |

## Tasks Completed

| # | Task | Status |
|---|---|---|
| 1 | ChartData 모델 | ✅ |
| 2 | View<>에 Chart 프로퍼티 | ✅ |
| 3 | Chart.cshtml 파셜 + price-chart.js | ✅ |
| 4 | GlobalController BuildChart + 2개 액션 연결 | ✅ |
| 5 | Gold/Oil/Emission 차트 조회+그룹핑 | ✅ |
| 6 | 뷰 5개 파셜 include | ✅ |

## Validation Results

| Level | Status | Notes |
|---|---|---|
| Build | ✅ Pass | 0 errors |
| Unit Tests | N/A | repo에 테스트 프로젝트 없음(계획 명시) |
| Integration | ✅ Pass | localhost:5099 스모크 |
| Edge Cases | ✅ Pass | 아래 |

### 스모크 실측 (2026-07-22)
- copper/NaturalGas/Gold/Oil/Emission 5개 페이지: `priceChartData` JSON + `<canvas>` 각 1개, 라벨 오름차순 확인
- 금 페이지: "금 99.99_1kg", "미니금 99.99_100g" 등 종목별 다중 시리즈 ✓
- copper `interval=annual`: 1992~ 연간 포인트 정상 ✓
- FIFA 등 무관 페이지: 차트 요소 0 ✓
- 국내 라벨 "2026-07-20","2026-07-21" — 기본 5일 창의 영업일 2일(주말 제외), 정상

## Files Changed
CREATE: `Models/ChartData.cs`, `Views/Component/Chart.cshtml`, `wwwroot/js/price-chart.js`
UPDATE: `Models/View.cs`, `Controllers/Price/GlobalController.cs`, `Controllers/Price/Domestic/{Gold,Oil,Emission}Controller.cs`, `Views/Price/Domestic/{Gold,Oil,Emission}.cshtml`, `Views/Price/Global/{NaturalGas,Commodity}.cshtml`

## Deviations from Plan
없음 — 계획 그대로 구현. (세션 관례에 따라 feature 브랜치 없이 main에서 작업, 커밋은 사용자 지시 대기)

## Issues Encountered
없음.

## Next Steps
- [ ] 브라우저에서 시각 확인 (호버 툴팁·범례)
- [ ] 커밋 + main 푸시 → Jenkins `economy.web.or.kr` 자동 배포(5분 내)
- [ ] (선택) 국내 페이지 응답 지연 체감 시 표/차트 조회 Task.WhenAll 병렬화
