Skip to content

sungjaep11/nineup

Repository files navigation

⚾ 나인업 (야구 라인업 메이커)

KBO 리그 선수 데이터를 활용한 야구 라인업 구성 및 통계 분석 애플리케이션입니다.

📱 주요 기능

1. 라인업 구성

  • 포지션별 선수 선택 (포수, 내야수, 외야수)
  • 선발 투수 및 불펜 투수 선택
  • 야구장 UI에 선수 아이콘 배치
  • 선수 아이콘 클릭 시 상세 프로필 확인

2. 통계 분석

  • 타자 평균 기록 (타율, 타점, 홈런, 득점)
  • 투수 기록 (평균자책점, 승/패, 세이브, 홀드, 탈삼진)
  • 팀 능력치 오각형 그래프
  • 최적의 타순 추천
  • 예상 승률 및 순위 계산

3. 선수 프로필

  • 선수 상세 정보 (이름, 팀, 포지션)
  • 주요 통계 표시
  • 타자/투수별 오각형 능력치 그래프
    • 타자: 파워, 정확도, 득점력, 수비, 체력
    • 투수: 제구, 탈삼진 능력, 피안타 억제력, 위기관리, 체력
  • 팀 로고 표시

4. 앨범

  • 선택한 선수들의 사진 갤러리
  • 선수별 필터링 기능
  • 이미지 확대 보기

🛠 기술 스택

🧑‍💻 기술 스택

  • Frontend: React Native (Expo, TypeScript)
  • Backend: Python, Django, Django REST Framework
  • Database: MySQL (AWS RDS)
  • Cloud: AWS (RDS, S3)
  • 데이터 통신: REST API
  • 상태 관리: React Hooks
  • 웹 크롤링: Selenium

데이터베이스 테이블

  • kbo_hitters_top150 - 타자 통계
  • kbo_pitchers_top150 - 투수 통계
  • kbo_defense_positions - 포지션 정보

🎨 디자인 특징

  • Glassmorphism 테마 적용
    • 네비게이션 바
    • 슬라이딩 패널
    • 통계 카드
    • 선수 선택 필터
    • 프로필 카드
  • 부드러운 슬라이딩 애니메이션
  • 직관적인 터치 제스처 지원

📦 설치 및 실행

필수 요구사항

  • Node.js 18+
  • Python 3.8+
  • MySQL 8.0+
  • Expo CLI

📁 프로젝트 구조

nineup/
├── app/                    # Expo Router 앱 페이지
│   └── index.tsx          # 메인 야구장 화면
├── components/            # 재사용 가능한 컴포넌트
│   ├── NavBar.tsx         # 하단 네비게이션 바
│   ├── player-selector.tsx # 선수 선택 화면
│   ├── stats.tsx          # 통계 화면
│   ├── profile.tsx        # 선수 프로필 모달
│   └── album.tsx          # 선수 사진 앨범
├── backend/               # Django 백엔드
│   ├── baseball/
│   │   └── views.py      # API 엔드포인트
│   └── config/
│       └── settings.py   # Django 설정
├── assets/               # 이미지 및 리소스
│   └── images/
│       └── logos/        # 팀 로고
└── types/                # TypeScript 타입 정의
    └── player.ts         # Player 인터페이스

🔌 API 엔드포인트

  • GET /api/mysql-players/ - 포지션별 선수 목록 조회
  • GET /api/player-images/ - 선수 이미지 목록 조회

📊 데이터 소스

  • KBO 공식 사이트 크롤링 데이터 (2025 시즌)
  • 타자 상위 150명
  • 투수 상위 150명

🎯 주요 기능 상세

능력치 계산 방식

타자:

  • 파워: (TB-H)/AB 기준 (0-0.350 범위 → 0-100)
    • 총 루타에서 안타를 뺀 값을 타수로 나눈 값 (장타율의 일종)
    • 안타를 제외한 추가 루타(2루타, 3루타, 홈런)의 비율
  • 정확도: 타율 기준 (0-0.400 → 0-100)
  • 득점력: 득점 기준 (0-100점 → 0-100)
  • 수비: 수비율(FPCT) 기준 (0.850-1.000 범위 → 0-100)
  • 체력: 타수(AB) 기준 (0-600 타수 → 0-100)

투수:

  • 제구: BB×9/IP 기준 (0-6 범위를 역으로 변환 → 0-100)
    • 볼넷을 9이닝당으로 환산한 값 (낮을수록 좋음)
  • 탈삼진 능력: 탈삼진 개수 기준 (0-200개 → 0-100)
  • 피안타 억제력: 제구와 탈삼진 능력 기반 (가중 평균)
  • 위기관리: WHIP + ERA 역정규화 (0.5-10 범위 → 0-100)
    • WHIP와 ERA의 합이 낮을수록 높은 점수
  • 체력: 이닝 수(IP) 기준 (0-150 이닝 → 0-100)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors