본문 바로가기

투수의 투구 분석 프로젝트

6_투수 분석 프로그램 최종 결과 및 보고

728x90

 

 


최종결과 및 보고


투수 분석 프로그램이 완성이 되었습니다.

약 한달 반 기간동안 동료와 함께 진행한 프로젝트를 마무리 해 뿌듯합니다!

 

아래에서 지금까지의 글을 소개 후

최종 기능 및 보고를 시작하겠습니다.

 

1번 https://jihoon44-it.tistory.com/49

 

1_투수의 피칭 분석에 대하여..

이 프로그램을 생각하게 된 이유 안녕하세요! 강동믓재이 입니다. 이 프로젝트는 11월 14일에 시작했으며 한달 반 정도의 시간이 걸려 마무리 되는 프로젝트 입니다. 이 포스팅은 왜 이 프로젝트(

jihoon44-it.tistory.com


2번 https://jihoon44-it.tistory.com/50

 

2_프로그램의 설계, 구상

프로그램 설계단계, 구상하기 먼저 어떤 기록이 필요하고 어떤 형식으로 보여주는지, 설계와 구상을 했습니다.(글씨체가 이상 합니다 ㅠㅠ..;;) 크게 3가지로 나눠서 생각 했습니다. 선수(투수)의

jihoon44-it.tistory.com


3번 https://jihoon44-it.tistory.com/51

 

3_스피드, 타자 유형, 구종 입력 폼 기능 구현 및 상대 팀, 대회 정보

저번에 이어 추가적으로 기능 구현을 한 모습을 보여드리겠습니다! 먼저 분석 할 투수가 어떤 팀을 상대로 투구를 했는지 알 필요를 느꼈습니다. 그래서 상대 정보를 입력 할 수 있는 폼을 추가

jihoon44-it.tistory.com


4번 https://jihoon44-it.tistory.com/52

 

4_전체적인 중간 점검(기능 추가, 미 구현 상황)

첫 화면 입니다. 부트스트랩을 이용해 조금 더 사이트를 다듬었습니다. 정보를 추가해 보겠습니다. 첫 번째 뼈대를 만들때 보다 미관도, 가독성도 훨신 좋은 것 같습니다. 선수 정보를 입력합니

jihoon44-it.tistory.com


5번 https://jihoon44-it.tistory.com/53

 

5_피칭 분석 프로그램 기능 추가 및 구현

안녕하세요 벌써 12월입니다. 추워지는 날씨에 건강 잘 챙기시길 바라며 오늘의 포스팅 시작하겠습니다! 기능 구현 및 새로운 기능 추가 이 11월 14일에 시작한 프로젝트가 벌써 한달이 지나가고

jihoon44-it.tistory.com

 

 

용어 정리

최종 보고에 들어가기전 용어 정리를 하고 시작하겠습니다.

거창한 용어는 없습니다. 상식 내에서 구분할 수 있게 단순하게 만들려고 노력했습니다.

간단히 용어 정리 하겠습니다.

  • FB = Fast Ball 의 약자 (포심 패스트볼, 투심 패스트볼,,,,)
  • BB = Breaking Ball 의 약자 (커브, 슬라이더,,,,)
  • SO = Speed-Off Ball 의 약자 (써클체인지업, 포크,,,,)
  • S = 야구기록의 Strike
  • B = 야구기록의 Ball
  • Hitter = 타자

위 의 용어만 알면  분석지를 보고 충분히 무슨 뜻인지 이해 할 수 있습니다.

 

최초의 기능 과 최종 기능의 차이

먼저 구상 단계에서 생각한 기능들은

  • 선수(투수)의 정보를 받는 폼 (선수정보, 경기정보)
  • 투수의 피칭을 기록하는 폼 (각 구종, 스피드, 코스, 좌타/우타)
  • 기록받은 정보를 분석해 상세한 정보를 나타내는 폼(각 코스 비율, 좌/우타에 따른 구종 비율, 평균 스피드)

이렇게 3가지 였습니다.

 

 

프로젝트를 진행하면서, 직접 제가 사용자의 입장에서 사용성을 생각하다보니

추가한 항목들이 있습니다.

  • 피칭을 기록하는 폼에 스트라이크, 볼 항목 추가, 상대 타자의 타순 추가
  • 상세정보 폼에 구종에 따른 스트라이크 볼 비율, 타순에 따른 스트라이크 볼 비율 추가

스트라이크와 볼을 구분해 입력을 하면 다양한 분석을 추가적으로 진행 할 수 있어 입력을 받고

타순에 따른 상대 투수의 투구 정보도 얻을 수 있어 좀 더 디테일한 정보를 얻을 수 있습니다.

 

아래의 프로그램은 Django와 Python, 를 이용해서 작성했고

입력 받은 정보들은 DB에 저장 되는 형태입니다.

 

 

최총 기능 결과 보고

Pitch rate of a Pitcher(색).pdf
0.25MB

 

 

 

위 PDF 파일을 보면 투수분석 프로그램을 사용하면 최종적으로 얻는 정보들 입니다.

하나씩 둘러 보겠습니다.

 

아래는 PDF의 모습입니다.

 

                                       모든 투구 중 7번 코스에 비율이 25.0% 이다.              7번의 25.0% 안에 Fast Ball이 75.0%,

                                                                                                                            Breaking Ball 이 25.0% 들어 왔다.

 

상세 보기에 들어오면 제일 먼저보이는 화면 입니다.

숫자가 많지만 어렵지 않습니다. 각 설명들을 보면 쉽게 이해 할 수 있습니다.

약자의 의미는 맨 위에 정리 해 놓았습니다.

 

이 테이블에서 각 구종과 구종의 갯수, 코스의 비율들을 상세하게 확인 할 수 있습니다.

 

이어서 설명 하겠습니다.

 

타순 별 구종 비율

 

상대의 타순에 따른 구종 별 투구 비율을 보여주는 그래프 입니다.

 

그래프를 보면 기록된 경기에서

1번 타자에게는 66.7% 직구를 던졌고 33.3% 변화구를 던졌습니다.

패스트 , 브레이킹 , 스피드오프, 3구종으로 나눴고 색상 별로 표시했습니다.

 

이제 상대 투수가 타순에 따라 어디에 무얼 많이 던지는지 알 수 있습니다.

 

계속해서 설명 하겠습니다.

 

스피드 분석

이번엔 스피드 분석을 하는 테이블 입니다.

 

그래프로 각 투구수에 따른 스피드의 변화를 쉽게 알아 볼 수 있습니다.

투구수가 점점 늘어 남에 따라 어느 시점부터 속도가 줄어드는지 파악 할 수 있으며

각 구종의 스피드를 파악 할 수 있습니다.

 

예를 들어 그래프의 선이 급격이 아래로 꺽여진다면, '이 투수는 체력이 약하다' 라고 판단 할 수 있으며

40개 이후에 스피드가 현저히 떨어지기 시작했다면 상대투수를 어떻게 공략 할 것인지 판단 할 수 있습니다.

 

아마추어 특성상 주말에만 경기를하고 연속 투구가 거의 없어 체력적인 부분이 크게 도드라지지 않겠지만

스피드의 추이를 분석하고 파악한다는 것에 큰 의미가 있습니다.

 

다음을 보겠습니다.

 

S/B 비율

 

스트라이크와 볼의 비율 입니다.

우리는 위 쪽에 이미 어디 코스에 뭘 많이 던지는지 알고 있습니다. 추가적으로 스트라이크와 볼의 비율까지 생각한다면

더욱 디테일한 정보를 얻을 수 있습니다.

 

그래프의 아래를 보면 패스트볼 토탈, 브레이킹 볼 토탈, 스피드 오프 볼 토탈 로 나눠져 있으며

각각의 그래프는 토탈을 자세히 풀어놓은 모양 입니다.

 

브래이킹의 볼의 그래프를 보면 커브의 비율은 볼이 많습니다.

'커브의 컨트롤은 잘 안되는 편이라 볼이 많다' 라고 볼 수 있고

 

슬라이더의 비율은 스트라이크가 높은걸로 보아

'스트라이크 카운트와 스윙유도는 슬라이더로 많이 잡는다' 는것을 파악 할 수 있습니다.

 

 

마지막으로 기록 입니다.

총 기록

 

마지막 테이블에서는 각 구마다 어떤 정보가 있는지 알아 볼 수 있는 정보 기록 테이블 입니다.

1구를 예를 들면

1구포심, 144의 스피드7코스, 상대 1번타자 우타 

라는 정보를 확인 할 수 있습니다.

 

상세 보기의 설명을 마치고

피칭 내용 입력 폼의 설명을 시작하겠습니다.

 

 

피칭내용 입력 최종 보고

선수 정보를 등록하고 피칭시작을 눌러

경기정보와 상대팀 명을 입력합니다. 그리고 피칭 시작을 누르면 아래의 화면이 나옵니다.

피칭 입력 폼

 

1번 부터 5번까지의 입력을 수행하면 입력은 끝 입니다.

5번은 상대의 정보를 입력하는데 피칭버튼을 눌러도 타자가 바뀌기 전까지 계속해서 현재 정보를 유지합니다.

 

기능 테스트중 사용자가 잘 못 입력해서 수정의 필요함을 느껴 수정 기능도 넣었습니다.

 

 

 

각 구의 정보마다 수정 할 수 있는 폼을 추가 했습니다.

2구의 정보를 '슬라이더', '7'코스로 수정 해 보겠습니다.

 

 

 

정보를 바꾸고 수정 버튼을 눌러 수정을 완료 했습니다.

실제로 정보가 바뀌었나 확인해 보겠습니다.

 

 

방금 던진 기록을 종료하고 상세 보기에 들어가서 확인한 결과 입니다.

2구 의 정보가 수정한 값으로 저장된 것을 확인 할 수 있습니다.

 


프로젝트를 마치며


 

제가 코치시절 생각만 하던 것을 직접 만들고 구현을 할 수 있다는 것에 큰 흥미와 성취감을 느꼈습니다.

저는 그저 처음 IT 공부를 시작 할 때에는 상상도 못 했던 기능을 구현하고 폼을 만든다는 것이 놀라울 따름입니다.

 

버튼하나, 선택 폼 하나 추가하는 것이 쉬운문제가 아니라는것에 놀라고,

직접 해보고 네이버나 구글, 유명한 웹사이트를 보니 정말 대단하다고 생각이 들었습니다.

제가 크게 느낀것은 4가지 입니다.

 

●  데이터를 입력 받는다라는 개념이 생겼습니다.

필요한 분석을 하기 위해서 원하는 데이터가 필요하다는 것

어떻게 데이터를 얻을 것 인가? 에 대한 답을 찾고

그 데이터들을 어떻게 가공해야 원하는 정보가 나오는지에 대한 개념이 생겼습니다.

 

●  도메인 지식의 중요성을 느꼈습니다.

데이터 분석에 의지를 불태우며 프로젝트를 해 나갔지만 만약 제가 야구를 모르는 상태였다면..

도메인 지식이 없었다면 정말 쉽지 않은 것이 데이터 분석 인 것을 느꼈습니다.

무엇을 분석해야 하는지, 수집된 데이터에 어떻게 의미를 부여 할 것 인지 도메인 지식이 없다면 힘든 문제임이 분명합니다.

 

●  알아가는 만큼 모르는것이 더 쌓여 있다는것을 느꼈습니다.

이 프로젝트를 진행하면서 새로 알게된 것, 다시 찾아보며 알게된 것, 모르는것(제일 많았다.)들 에게 부딪치며

해결하다보니 조금은 실력이 향상 된 것 같습니다. 

그러나 하나씩 해결해 나가면서 '이건 되나?' , '이렇게 가능한가?' 스스로 질문이 생겨지며 욕심이 나는 동시에

아직 갈 길이 멀다는 것을 느꼈습니다..

 

●  혼자만의 힘으로 문제를 해결하는 것은 오래 걸린다.

막힌 부분에서 혼자 해결하려고 하면 시간이 오래 걸리는 것을 느꼈습니다.

처음에는 저의 실력이 뛰어나다면 이런 문제 없이 수월하게 해결한다고 생각했지만

세계적인 선수들도 그 들의 코치와 지도자가 있습니다.

질문하며 서치하고, 동료에게 질문하며 문제를 해결 하는것이 더 효울적인 방법 이라고 느끼고 생각 합니다.

(서치와 질문을 할 때, 질문의 퀄리티가 굉장히 중요하며 질문 하기 위해 내가 먼저 문제를 파악 해야한다.)

 

 

저와 처음부터 끝까지 작업해준 동료 곽병권에게 감사함을 느끼며

추후에 아마추어 야구팀 테스터에게 실제로 이 프로그램을 사용하게 할 것 입니다.

피드백을 받고 보완할 점들을 보완해 잘 다듬어서 프로그램을 키워 나갈 계획입니다.

지금 까지 긴 글 읽어주셔서 감사합니다.

 

ps. 프로그램 사용을 원하시면 jihoon4494@naver.com 으로 메일을 보내주세요.

간단한 사항 확인 후 보내드리겠습니다.

 

동료의 정보

https://k-python-note-taking.tistory.com/

 

나의 공부 일기

혼자 파이썬 공부를 한 것을 정리해봤습니다 : )

k-python-note-taking.tistory.com

 

작성자의 야구 블로그

코치 이지훈

https://blog.naver.com/hit_run_baseball

 

hit_run_baseball님의 블로그 : 네이버 블로그

HIT&RUN BASEBALL 입니다. 저희 HIT&RUN BASEBALL에서는 타격,내야,외야,포수,투수 전문으로 지도하고 있습니다. 상담문의 010-6778-7023

blog.naver.com

 

728x90