PitchLab Pro
야구 데이터를 활용하는 프로젝트입니다.
평소 야구를 좋아해서 선수들의 구종이나 구속, 투구 스타일을 비교해 보는 것에 관심이 많았고, 여기서 **‘내가 직접 가상의 투수를 만들고 그 투수의 특징을 분석해 볼 수 있으면 어떨까?’**라는 생각을 하게 되었다. 이 아이디어를 실제 서비스로 구현하기 위해 친구와 함께 **야구 투수 분석 및 시뮬레이션 웹 서비스인 ‘PitchLab Pro’**를 개발했다.
PitchLab Pro에서는 사용자가 투수의 이름, 투구폼, 구종, 구속 등을 직접 설정해 자신만의 가상 투수를 만들 수 있도록 했다. 단순히 입력한 값을 보여주는 것에서 끝내지 않고, 공의 도달 시간과 수직·수평 변화량, 헛스윙 유도 난이도, 제구 난이도 등을 계산해 투수의 특징을 분석하도록 구성했다. 또한 분석된 데이터를 바탕으로 파워 피처, 제구형 투수, 변화구 중심 투수, 밸런스형 투수 등으로 유형을 나누고, 선수의 강점과 약점, 육성 방향 등을 보여주는 스카우트 리포트 기능도 구현했다.
개발은 Python Flask를 기반으로 진행했고, 웹 서버 구축과 데이터 베이스 설계, 데이터 처리와 분석 기능, HTML·CSS·JavaScript를 활용한 화면 구성 등을 구현했다. 특히 투수의 기본 정보뿐만 아니라 구속, 변화량, 난이도, 스트라이크존 좌표와 같은 여러 데이터를 저장할 수 있도록 데이터 모델을 구성했고, 입력된 정보를 바탕으로 결과가 자동으로 계산되어 웹 화면에 표시되도록 연결했다. 스트라이크존 안에서 공의 위치를 시각화하고 스트라이크 여부를 판별하는 기능도 추가하여 단순한 수치 분석보다 실제 야구 데이터 분석에 가까운 느낌을 주고자 했다.
프로젝트를 진행하면서 기능을 한 번 구현하는 것만으로 끝나는 것이 아니라, 사용자가 결과를 얼마나 쉽게 이해할 수 있는지까지 고려해야 한다는 점도 알게 되었다. 팀원과 투수 분석 방식이나 화면 배치, 필요한 기능을 계속 논의하며 수정했고, 그래프와 스트라이크존 시각화 등을 활용해 복잡한 분석 결과도 한눈에 확인할 수 있도록 개선했다.
이 프로젝트를 통해 Flask를 활용한 웹 서비스 개발뿐만 아니라 데이터베이스 설계, 데이터 모델링, 분석 알고리즘 구현과 시각화까지 하나의 서비스 안에서 연결하는 경험을 할 수 있었다. 특히 내가 좋아하는 야구라는 주제를 단순한 관심에서 끝내지 않고 직접 프로그램으로 구현하면서, 데이터가 실제 스포츠 분석에 어떻게 활용될 수 있는지도 배울 수 있었다. 앞으로는 실제 KBO 선수 데이터를 연동하거나 머신러닝을 이용한 승부 예측, 3D 투구 궤적 시각화 등의 기능을 추가하여 더 실제 야구 분석에 가까운 플랫폼으로 발전시켜 보고 싶다.