Skip to content

Repository files navigation

WC2026 Web — 월드컵 예측 대시보드

wc2026-predictor 모델의 예측 결과를 누구나 볼 수 있게 보여주는 웹 플랫폼. 모델 vs 베팅 시장 정확도 검증 프로젝트의 공개 대시보드다.

🔗 라이브 데모: wc2026-web.vercel.app

⚠️ 실제 베팅용이 아니며, 모델 정확도 검증·학습 목적입니다.

무엇을 보여주나

  • 🏆 대시보드 — 우승 확률(몬테카를로), 모델 vs 시장 견해차 그래프, Elo Top12, 72경기 확률
  • 🔴 라이브 (/live) — 실시간 스코어 · 경기별 3-way 배당 · 모델 예측 오버레이 · 실시간 조별 순위 (named.com API, 약 5초 폴링)
  • 🧪 모델 비교 (/models) — 여러 모델 walk-forward Brier 리더보드 + 모델별 우승 확률
  • 🪜 토너먼트 (/bracket) — 32강~우승 단계별 진출 확률 히트맵
  • 수식 해설 (/math) — Elo·확률변환·Davidson·Brier·몬테카를로 전 수식

라이브 데이터

/api/live 라우트 핸들러가 named.com 스포츠 API(sports-api.named.com/v1.0, league.id=639)를 서버에서 호출(CORS 회피)해 월드컵 경기·배당·실시간 순위를 정규화한다. 키 불필요. 클라이언트(/live)는 탭이 보일 때만 약 5초마다 폴링하고, 라우트는 s-maxage=5로 캐싱해 외부 호출을 억제한다. 팀명 매핑은 lib/teams.ts(영↔한 48팀), 조 복원·순위 계산은 lib/groups.ts.

기술 스택

  • Next.js 15 (App Router) · React 19 · TypeScript
  • 정적 생성(SSG) — 서버리스, 모든 페이지 prerender
  • 예측 데이터는 data/*.json (모델 레포 CSV에서 변환한 개막 시점 고정 스냅샷)

로컬 실행

npm install
npm run dev      # http://localhost:3000
npm run build    # 정적 빌드

데이터 갱신

모델 레포의 CSV가 갱신되면 data/*.json 을 다시 생성한다. (championship.json, matches.json, elo.json, modelVsMarket.json)

자동 갱신

.github/workflows/refresh-predictions.yml 가 6시간마다(+수동 버튼) 예측 레포를 clone해 파이프라인을 돌리고 export_web.pydata/*.json 을 갱신·커밋한다. 모델은 요청마다가 아니라 이 스케줄로만 돌고(무거운 학습 없음, CPU로 충분), 프론트는 정적 JSON을 읽는다. 커밋되면 Vercel이 자동 재배포한다.

배포

Vercel에 연결되어 main 브랜치 푸시 시 자동 배포된다.


모델·수식 상세: wc2026-predictor / docs/MATH.md


👤 기여도 & 개발 환경

항목 내용
기여 비율 100% (단독 개발)
커밋 43 / 43 (본인 / 전체 사람 커밋)
참여 인원 1명
AI 코딩 도구 Claude Code
자동화 커밋 155건 (본인이 구성한 GitHub Actions 자동 수집/갱신 — 집계 제외)

기여 비율은 커밋 author 이메일 기준 집계이며 봇·자동화 커밋은 제외했습니다.

About

2026 월드컵 예측 웹 대시보드 — 모델 vs 베팅 시장 (Next.js)

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages