KBO 경기 승부 예측 시스템 개발기 - AI와 데이터로 야구 승부를 예측하다
프로젝트 개요
최근 AI와 데이터 분석 기술이 발전하면서 스포츠 경기 결과를 예측하는 다양한 서비스들이 등장하고 있습니다.
저 역시 개인 프로젝트로 KBO 경기 승부 예측 시스템(KBO Predictor) 을 개발하게 되었습니다.
이 시스템은 단순히 팀 순위만 보는 것이 아니라,
- 팀 전력
- 최근 경기 흐름
- 홈/원정 여부
- 선발 투수 성적
- ELO 레이팅
- 날씨 정보
등 다양한 데이터를 종합하여 승부를 예측합니다.
시스템 목표
이 프로젝트의 목표는 크게 3가지입니다.
1. 경기 승패 예측
오늘 예정된 KBO 경기의 승리 확률 계산
예시)
| 경기 | 승리확률 |
|---|---|
| LG vs KIA | LG 61% |
| 두산 vs SSG | SSG 55% |
| 삼성 vs 롯데 | 삼성 68% |
2. 데이터 자동 수집
매일 수동으로 데이터를 입력하는 것은 현실적으로 불가능합니다.
따라서 KBO 공식 사이트의 공개 데이터를 활용하여 자동 수집 기능을 구축했습니다.
수집 데이터
- 경기 일정
- 경기 결과
- 팀 순위
- 투수 성적
- 선수 정보
- 날씨 정보
3. 장기적인 예측 모델 고도화
초기 버전은 규칙 기반 모델로 시작했지만,
향후에는 머신러닝 모델을 추가하여 예측 정확도를 향상시킬 계획입니다.
예를 들어
- RandomForest
- XGBoost
- LightGBM
등을 활용하여 승률을 계산할 수 있습니다.
전체 시스템 구조
KBO 공식 데이터
│
▼
데이터 수집(Crawler)
│
▼
PostgreSQL 저장
│
▼
예측 엔진(ELO)
│
▼
FastAPI API 서버
│
▼
Next.js 웹 서비스
기술 스택
Backend
- Python 3.11
- FastAPI
- SQLAlchemy
- Alembic
- APScheduler
Database
- PostgreSQL
Cache
- Redis
Frontend
- Next.js 14
- React
- TypeScript
- TailwindCSS
Infra
- Docker
- Docker Compose
- Render
예측 엔진 핵심
ELO 레이팅
체스에서 사용하는 ELO 점수 방식을 응용했습니다.
경기 결과에 따라 팀 점수가 상승하거나 하락합니다.
예시
LG : 1600
KIA : 1550
두 팀이 경기할 경우
LG의 승리 확률이 더 높게 계산됩니다.
홈 어드밴티지
야구는 홈 경기 이점이 존재합니다.
따라서 단순 전력뿐 아니라
- 홈 경기 여부
- 원정 경기 여부
를 반영합니다.
예시
LG ELO : 1600
KIA ELO : 1600
홈팀 LG
실제 계산:
LG 53%
KIA 47%
최근 경기 흐름
시즌 전체 성적만 보면 현재 컨디션을 알 수 없습니다.
예를 들어
최근 10경기
LG 8승 2패
KIA 3승 7패
라면 현재 전력은 상당한 차이가 있다고 볼 수 있습니다.
따라서 최근 경기 결과도 반영합니다.
데이터 자동 수집
매일 새벽 스케줄러가 실행됩니다.
자동 작업
- 경기 일정 수집
- 경기 결과 수집
- 팀 순위 갱신
- 투수 성적 갱신
- 예측 데이터 생성
개발자는 별도 작업 없이 최신 데이터를 유지할 수 있습니다.
Docker 기반 운영
모든 서비스는 Docker로 구성했습니다.
docker-compose up -d
명령어 한 번으로
- PostgreSQL
- Redis
- API 서버
를 동시에 실행할 수 있습니다.
웹 서비스 기능
현재 구현된 주요 기능
오늘 경기 조회
오늘 예정된 경기 확인
승부 예측
예측 승률 제공
팀 정보
팀 순위 조회
선수 정보
주요 선수 기록 확인
관리자 페이지
데이터 수집 상태 확인
향후 개발 계획
현재는 1차 버전입니다.
앞으로 추가하고 싶은 기능은 다음과 같습니다.
선발 투수 반영
현재 시즌 성적 기반
향후
- 선발 맞대결
- 상대 전적
추가 예정
타선 분석
예상 라인업 반영
- 타율
- OPS
- 최근 타격감
분석 예정
머신러닝 모델 도입
현재 ELO 기반 예측
향후
- XGBoost
- LightGBM
- 앙상블 모델
적용 예정
백테스트 기능
과거 시즌을 대상으로
예측 적중률 검증 기능 추가 예정
마무리
이번 프로젝트는 단순한 야구 정보 사이트가 아니라
데이터 수집 → 저장 → 분석 → 예측 → 서비스 제공
전 과정을 경험하기 위해 개발한 시스템입니다.
FastAPI, PostgreSQL, Docker, Next.js 등을 활용하여 실제 서비스 수준의 구조로 구성하였으며, 향후 AI 기반 예측 모델까지 추가할 계획입니다.
야구를 좋아하거나 데이터 분석에 관심 있는 개발자라면 스포츠 예측 시스템을 한 번쯤 만들어 보는 것도 좋은 경험이 될 것 같습니다.
제가 만든 사이트 입니다.
https://lee-kbo-web.onrender.com/
'스포츠 분석' 카테고리의 다른 글
| KBO 팀 순위와 AI 전력 비교 [2026-06-08] (0) | 2026.06.08 |
|---|---|
| 2026-06-06 KBO 승부 예측 AI — SSG 랜더스 vs KT 위즈 외 오늘 경기 (0) | 2026.06.06 |
| 2026-06-05 KBO 오늘의 한판 — AI 전력 분석 (0) | 2026.06.05 |
| [여자농구 허예은] KB스타즈의 미래라고 생각되는 선수 (1) | 2024.09.15 |
| [여자농구 김소니아] 개인적으로 올해 기대되는 여자 농구 선수 (0) | 2024.09.14 |
| [24-25년도 여자프로농구 이적현황] 계약 연봉과 보상선수 및 트레이드 (1) | 2024.09.05 |
| [9월 5일] 정식 스포츠 분석 (박신자컵 ,하나은행, 우리은행, 삼성생명) - 현재 3승2패 (0) | 2024.09.05 |