본문으로 건너뛰기
-
야구를 다르게 보는 시선, 계속 업데이트됩니다.
  • 홈
  • About
  • MLB
  • KBO
  • 세이버메트릭스
  • Best of Yagongso
닫기

검색

야구공작소 야구공작소 야구공작소

YAGONGSO

  • 홈
  • About
  • MLB
  • KBO
  • 세이버메트릭스
  • Best of Yagongso
야구공작소 야구공작소 야구공작소

YAGONGSO

  • 인스타
  • 유튜브
  • 팟캐스트
  • 홈
  • About
  • MLB
  • KBO
  • 세이버메트릭스
  • Best of Yagongso
닫기

검색

야구공작소 야구공작소 야구공작소

YAGONGSO

  • 홈
  • About
  • MLB
  • KBO
  • 세이버메트릭스
  • Best of Yagongso
야구공작소 야구공작소 야구공작소

YAGONGSO

  • 인스타
  • 유튜브
  • 팟캐스트
MLB세이버메트릭스

‘MLB Stats API’라고 혹시 들어보았나요

By 우정호
2021년 12월 28일 6 Min Read
2

새로운 데이터 수집방법

사람들은 여러 방법을 통해 MLB 데이터를 수집한다. 첫째는 홈페이지를 통해 데이터를 수집하는 것이다. 대표적인 홈페이지로는 MLB 자회사인 MLBAM(Major League Baseball Advanced Media)에서 운영하는 베이스볼서번트(Baseball Savant)가 있다. 또한 공식 홈페이지는 아니지만, 팬그래프(Fangraph), 라만 데이터베이스, 레트로시트 등, 여러 방면으로 MLB 데이터를 수집할 수 있다. 이처럼 사용자가 직접 홈페이지에 접속하여 데이터를 수집하는 방법도 있지만, 조금 더 세련된 방법으로, ‘MLB Stats API’라는 것을 이용한 데이터 수집도 가능하다.

MLB Stats API는 무엇인가?

MLB Stats API에 대해 설명하기 전, API에 대해 간략하게 얘기하고자 한다. API는 프로그램과 서버를 연결하는 통로 역할을 한다. 예시로, 프로그램 개발자들이 지도, 주소록 등을 따로 개발할 필요 없이 네이버나 다음 서버에 요청을 보내 데이터나 기능을 사용할 수 있도록 한다. 이처럼 서버와 통신을 주고받아 데이터(또는 기능)를 쓸 수 있도록 하는 것이 API다.

MLB Stats API는 API와 같은 맥락으로, 사용자(또는 프로그램)가 MLB 서버에 필요한 데이터를 요청하고 받기 위해 사용한다. MLB Stats API를 이용한다면, MLB 데이터를 보다 편리하게 수집할 수 있게 된다. 하지만 MLB Stats API는 잘 알려지지 않은 방법이고, 사람들에게 친숙한 방법은 아니다.

따라서 본 칼럼에서는 MLB Stats API를 이용했을 때, 접근가능한 데이터, 서버에 있는 데이터에 접근하는 방법 그리고 MLB Stats API가 가지고 있는 특징에 대해 살펴보고자 한다.

1) 사용가능한 데이터

MLB Stats API를 이용하여 접근할 수 있는 데이터의 목록은 <그림 1>와 같다.

<그림 1> MLB Stats API 구조

접근가능한 데이터는 크게 7개로 분류할 수 있다.  홈페이지에서 수집할 수 있는 경기, 경기일정, 선수 및 팀 정보 같은 기본적인 데이터에 접근이 가능한 점을 확인할 수 있었다. 하지만 MLB Stats API는 추가로 홈페이지에서 볼 수 없는 정보들을 제공하는 것뿐만 아니라, 세부적인 정보에도 접근할 수 있다.

먼저 직군과 관련된 데이터에 접근할 수 있다. API를 이용하여 접근 가능한 직군은 심판을 포함하여, 공식기록원, 데이터캐스트이며 해당 직군에 소속된 사람들의 정보에 접근이 가능하다. 또한 API를 이용하면 리그별 특징 데이터에도 접근할 수 있다. 메이저리그를 포함하여, 마이너리그, 윈터리그 등 각 리그별로 나타난 특징을 확인할 수 있다. 예를 들면, 리그 평균기록과 9이닝당 기록등을 포함하여, 시간 관련 데이터(타석 당 시간, 이닝 당 시간, 경기 평균 소요 시간 등)를 확인할 수 있다. 아래의 <그림 2>는 2021시즌 메이저리그 특징의 일부를 나타낸다.

<그림 2> 2021시즌 메이저리그 특징 데이터

또한 기존에 확인할 수 있는 데이터도 세부적으로 접근할 수 있다. 아래의 <그림 3>은 MLB Stats API를 이용하여 수집한 보스턴 레드삭스의 데이터 일부를 나타낸다. 해당 팀의 이름 및 창단 연도, 구장 등 홈페이지에서 확인할 수 있는 정보뿐만 아니라, 스프링캠프, 산하 마이너리그 팀에 대한 세부적인 정보에 접근할 수 있고, 연도별 임직원까지 확인할 수 있다.

<그림 3> 보스턴 레드삭스 팀 정보(좌측), 산하마이너리그(우측)

이처럼 API를 이용한다면, 접근 가능한 데이터가 많고, 보다 세부적인 정보에 대한 접근이 가능하다. 그렇다면, API를 이용하여 어떻게 데이터에 접근할 수 있는지 알아보고자 한다.

2) 접근방법

MLB Stats API에 대한 접근은 URL(인터넷주소)을 이용하며, 아래의 <표 1>은 일부 데이터 항목별 URL을 나타낸다.

<표 1> MLB Stats API 데이터 항목별 URL목록

MLB Stats API는 수집하고자 하는 데이터에 따라 URL이 다르기 때문에, 이를 알고 있어야한다. 박스스코어나 Play By Play같이, 사용자가 명확하게 알아볼 수 있는 항목이 있기도 하지만, gamePace처럼 의미를 명확하게 알 수 없는 항목들이 존재하기도 한다. 또한 API는 접근하는 데이터에 따라 규칙성이 달라진다. 같은 경기 데이터라도 박스스코어와 문자중계에 대한 URL이 달라진다. 또한 로스터를 확인하더라도 팀의 ID가 다르다. 만일 잘못된 변수를 입력하게 된다면, 접근이 안 될 수도 있고, 접근이 되더라도 데이터가 없는 경우가 존재할 수 있다. 따라서 API를 이용하기 전에 데이터 항목에 대한 이해가 필요하다.

또한 MLB Stats API의 URL은 데이터 항목에 따라 필수적으로 포함해야 하는 필수요소와 특정 데이터만을 볼 수 있게 필터의 역할을 하는 선택요소가 존재한다. 예를 들면, Play By Play나 박스스코어는 경기별로 다르기 때문에, 반드시 게임ID를 URL에 포함해야 한다. 반면에 리그별 특징이나 경기일정의 경우, 필수요소 없이 접근 가능하며, 선택요소를 이용하여 필요한 데이터만을 수집할 수 있다.

본 칼럼에서는 예시를 설명하고자, 몇 가지 경우들만 설명했다. MLB Stats API의 자세한 접근방법은 해당 홈페이지를 참고하기 바란다.

3) MLB Stats API의 장점

가) 관대한 API정책

다른 API들과 다르게, 일 허용량 제한과 인증키가 없다. API는 일 허용량이 존재하기 때문에 허용량보다 많은 양을 사용할 경우 사용량에 따른 추가금액이 발생한다. 하지만 MLB Stats API는 일 허용량이 존재하지 않아 과금에 대한 부담이 없다.

또한 일부 API의 경우 허가된 관리자만 접근할 수 있도록 인증키를 부여하고 있다. 만일 인증키가 없다면, API 사용 자체가 불가능하다. 하지만 MLB Stats API는 데이터 접근에 대한 인증키가 따로 존재하지 않는다. 대신 데이터에 대한 저작권이 존재한다. 저작권을 요약하면 ‘개인적으로 사용이 가능하고 데이터를 이용한 상업적인 행위가 없다면, 어느 누구든 사용에 제한이 없다’이다. 이처럼 MLB Stats API는 저작권이 허용하는 범위내에서 누구나 상관없이 접근할 수 있다.

나) 다양하고 많은 데이터에 접근이 가능

MLB Stats API를 이용한다면, 메이저리그를 포함하여, 마이너리그의 데이터도 사용할 수 있다. 마이너리그의 범위는 가장 높은 단계인 트리플A부터 가장 하위인 루키리그 또한 도미니카 윈터리그까지 가능하다. 물론 리그가 많아, 많은 데이터를 얻을 수 있지만, 제공하지 않는 데이터도 존재한다. 트래킹데이터는 메이저리그의 Play By Play에 포함돼있지만, 마이너리그나 윈터리그 데이터에는 없다. 대신, 대략적인 투구의 위치, 타구의 위치, 타구의 질(땅볼/라인드라이브 등) 등 간략한 위치들을 확인할 수 있다.

또한 메이저리그는 오랜 역사를 지닌 리그이기 때문에 많은 데이터를 가지고 있다. MLB Stats API를 통해 접근 가능한 Play by Play 데이터는 최소 1980시즌까지 수집이 가능하며, 박스스코어 데이터는 1980시즌 이전까지 가능하다. 이처럼 접근할 수 있는 데이터의 양이 많아, 연도별로 나타난 리그의 특징을 확인할 수 있다.

다) 다양한 활용

API는 어플리케이션이나 웹을 활용한 서비스에 활용되기도 하고 최근에는 빅데이터 분석이 활발하게 이루어지면서 프로그램 개발자나 데이터 분석가들이 쓸 수 있도록 프로그래밍 패키지(라이브러리)를 만드는 데 사용한다. MLB Stats API를 이용하여 만든 대표적인 서비스로는 문자중계가 있다. 프로그래밍 패키지에 활용된 예시는 파이썬의 MLB-StatsAPI, R은 baseballr이 존재한다. 이처럼 MLB Stats API는 목적에 맞게 여러 방면으로 활용할 수 있는 장점이 있다.

4) MLB Stats API의 진입장벽

MLB Stats API는 이처럼 기존의 방법과 다르게 장점이 존재하지만, 일반적인 방법은 아니기 때문에, MLB Stats API를 이용하기 위해서는 필요한 사항이 있다.

가) 코딩을 활용할 줄 알아야한다.

API는 프로그래밍 개발을 위해 제작되었기 때문에, 가급적 프로그래밍언어를 통해 API에 접근해야 한다. 코딩을 활용할 줄 안다면, 프로그래밍언어의 패키지를 이용해서 데이터를 수집할 수 있다. 물론 이전에 설명했듯이, URL을 통해 접근하는 방법도 존재한다. 하지만 일일이 손수 파일들을 처리해야 하기에 가급적 코딩을 활용하는 것을 추천한다.

나) 데이터 구조에 대한 이해

아래 <그림 4>와 <그림 5>는 API를 이용하여 접근한 박스스코어 데이터 일부를 나타낸다. <그림 4>는 박스스코어 데이터에 속한 대분류, <그림 5>는 대분류 중 ‘teams’에 속한 분류들을 나타낸다.

<그림 4> MLB Stats API를 이용하여 접근한 박스스코어 데이터의 분류
<그림 5> MLB Stats API를 이용하여 접근한 박스스코어 데이터 일부

<그림 5>를 보면, 각각 어웨이 팀과 홈팀에 대한 정보 외에도 다양한 분류들을 포함한다. 대표적으로 팀의 기록, 선수별 기록, 로스터에 등록된 선수, 기타 정보 등이 있다. 이처럼 박스스코어 데이터라도 수많은 분류들을 포함하고 있으며, 그 외에도 그림 상으로 나타나지 않은 다양한 내용들이 있다. 프로그래밍언어의 패키지를 사용한다면, 필요한 데이터들이 이미 전처리 되어 나오기에 따로 작업할 필요가 없다. 하지만 패키지를 사용하지 않고 URL을 통해 접근한다면, 데이터가 수많은 분류들로 나뉘어져 있기 때문에, 반드시 구조에 대한 이해가 필요하다.

결론

MLBAM의 CEO 밥 바우먼은 “미가공 상태의 데이터는 누구에게나 접근을 허용할 것”이라고 밝혔다. 그리고 그중 하나가 MLB Stats API다. MLB Stats API를 통해 메이저리그의 데이터뿐만 아니라, 마이너리그, 독립리그의 데이터도 수집할 수 있고, 선수 또는 팀에 대한 세부적인 정보도 얻을 수 있다. 이후, 사람들은 수집한 데이터를 이용하여 분석하고 결과를 만들어 여러 사람과 공유하고 있고 새로운 아이디어들을 위한 바탕으로 사용하고 있다. 물론 KBO리그도 최근 데이터 분석 열풍이 불면서, 야구 데이터분석에 관심이 많은 사람들이 직접 분석하여 블로그나 커뮤니티 등을 통해 자신의 결과물들을 나타내고 있다.

하지만 MLB와 달리 KBO는 공개된 API가 존재하지 않아서, 데이터 수집에 오랜 시간을 쏟아내고 있다. 만일 KBO도 MLB처럼 사람들이 접근할 수 있는 API가 있다면, 더욱더 활발한 분석이 이뤄지고, 지금보다 더 빠르게 데이터 분석 영역이 발전할 수 있다고 생각된다.

야구공작소 우정호 칼럼니스트

에디터 = 야구공작소 장원영, 송인호

참조

– MLB Stats API의 저작권, http://gdx.mlb.com/components/copyright.txt

– MLB-StatsAPI, https://github.com/toddrob99/MLB-StatsAPI

– baseballr, https://billpetti.github.io/baseballr/

– 베이스볼 서번트, https://baseballsavant.mlb.com/

– 팬그래프, https://www.fangraphs.com/

ⓒ야구공작소. 출처 표기 없는 무단 전재 및 재배포를 금합니다. 상업적 사용은 별도 문의 바랍니다.

이 글 공유하기:

  • Facebook으로 공유하기 (새 창에서 열림) Facebook
  • X에 공유 (새 창에서 열림) X

이것이 좋아요:

좋아하기 로드 중...
작성자

우정호

Follow Me
다른 기사
Previous

[야구유감(有感)]연극이 끝난 후

Next

낭만에 대하여

2 댓글
  1. 익명 댓글:
    2024년 10월 21일, 3:14 오후

    안녕하세요 최근 세이버메트릭스에대해 궁금증이 생겨 공부하고 있는 고등학생입니다. 궁금한게 있어, 여쭤보고자 댓글 남깁니다! 데이터 분석을 하는 이유가 무엇이고 데이터분석을 통해 얻을 수 있는 정보가 무엇인가요?? 그리고 코딩을 배워야한다고 하셨는데 프로그래밍 언어에 굉장히 다양한 언어가 있는 것으로 알고있습니다. 어떤 언어를 배우는게 도움이 될까요?

    가져오는 중...
    응답
    1. 익명 댓글:
      2024년 11월 5일, 1:57 오후

      스포츠에서 데이터 분석을 하는 이유는 더 뛰어난 선수를 찾고, 잠재력이 높은 선수를 발굴하거나 팀의 승률을 올리기 위해서도 있고 데이터 분석을 통해 선수의 약점이나 보완점을 파악하여 경기력을 높이는 데 도움을 주기도 해요.

      예를 들어, 예전에는 타자의 타율이 주요 지표로 쓰였지만, 현재는 장타력, 출루율, 타구 속도, 타구 분포도 등 다양한 요소를 종합적으로 고려해 선수의 가치를 평가하고 있고 또한 이 요소들에 각각의 가중치를 더하거나 곱해 OPS나 WAR 같은 스탯을 계산하며, 이를 선수 평가와 전략 수립에 중요한 요소로 활용하고 있어요

      코딩 언어는 R, 루비 등 통계 분석에 적합한 언어도 많지만, 데이터 분석 분야에서 가장 널리 쓰이는 언어는 파이썬이에요. 파이썬은 초보자도 배우기 쉽고, Matplotlib과 Pandas 같은 데이터 분석 관련 라이브러리가 있어 파이썬을 추천드려요.

      본문에 나와있는 MLB API를 사용해 데이터를 불러와 그래프를 그려보고 여러 가지 분석을 하면 코딩 실력도 많이 늘어날 거에요.

      만약 데이터 분석 직무에 관심이 있다면 이 사이트의 로드맵을 참고하시는게 좋으실 거에요!
      https://roadmap.sh/data-analyst

      가져오는 중...
      응답

댓글 남기기응답 취소

  • Best of Yagongso

    [BOY] The Best of Yagongso, March/April [3, 4월의 칼럼]

    ›
  • MLB

    무라카미 무네타카의 도박은 성공할 수 있을까

    ›
  • MLB

    소토의 빈자리는 채워져도, 오타니의 빈자리는 채울 수 없다

    ›
  • KBO

    수다쟁이 계약서 안에는 어떤 진실이

    ›
  • KBO

    정말 어깨는 쓸수록 약해질까?

    ›
  • MLB

    피안타율 0.045 체인지업은 왜 최악의 구종일까

    ›
  • MLB

    투수를 복사하는 피칭머신: 트라젝트 아크

    ›
  • KBO

    2026 KBO리그 외국인 선수 스카우팅 리포트 – 키움 히어로즈 케스턴 히우라

    ›
  • MLB

    투수의 DNA : Supinator vs Pronator

    ›
  • KBO

    2026 KBO리그 외국인 선수 스카우팅 리포트 - LG 트윈스 약셀 리오스

    ›
  • KBO

    2026 KBO리그 외국인 선수 스카우팅 리포트 – 한화 이글스 오웬 화이트

    ›

YOUTUBE

PODCAST

INSTAGRAM

yagongso

[야구공작소 인포그래픽] 롯데 자이언츠 전민재의 올 시즌 8개의 홈런은 경기 흐름을 바꾸는 [야구공작소 인포그래픽] 롯데 자이언츠 전민재의 올 시즌 8개의 홈런은 경기 흐름을 바꾸는 장면에서 나왔습니다. 동점과 역전, 선취점과 추가점까지 필요할 때마다 영양가 있는 중요한 한 방을 기록했으며, 특히 7번째 홈런은 팀을 단숨에 앞서게 만든 데뷔 첫 만루홈런이었습니다.

올 시즌 전민재는 공격과 수비에서 모두 준수한 활약을 보여줬던 마차도에 버금가는 시즌을 만들어가고 있습니다. 현재의 홈런 페이스가 이어진다면 시즌 14홈런도 기대할 수 있으며 이는 2020년 딕슨 마차도가 기록한 롯데 유격수 한 시즌 최다 홈런 12개를 넘어설 수 있는 수치입니다.

전민재가 남은 시즌에도 지금의 흐름을 이어가 롯데 역대 유격수 반열에 오를 시즌을 완성할 수 있을지 주목됩니다.

제작: 야구공작소 박경진

#KBO #야구 #야구공작소 #롯데 #전민재
[야구공작소 인포그래픽] 다음은 오스틴이 LG 트윈스에서 새롭게 쓴 기록입니다. • 구 [야구공작소 인포그래픽] 
다음은 오스틴이 LG 트윈스에서 새롭게 쓴 기록입니다.

• 구단 최초 외국인 선수 골든글러브 수상 (2023)
• 구단 최초 30홈런-100타점, 구단 최초 타점왕(2024)
• 구단 최초 2년 연속 30홈런(2024-2025)

그리고 2026년 6월 2일, 수원 KT전에서 외국인 타자 9번째, LG 소속 선수 9번째로 통산 100홈런을 달성했습니다.

#야구공작소 #야구 #KBO #LG트윈스 #오스틴
[야구공작소 인포그래픽] 두산 베어스가 이틀 연속 역전 만루홈런이라는 믿기 힘든 드라마를 [야구공작소 인포그래픽] 두산 베어스가 이틀 연속 역전 만루홈런이라는 믿기 힘든 드라마를 써냈습니다. 5월 29일 강승호가 9회초 역전 만루홈런을 터뜨린 데 이어, 다음날인 30일에는 정수빈이 6회초 역전 만루홈런을 쏘아 올리며 팀 승리를 이끌었습니다. KBO 역사상 두 번째로 나온 ’2경기 연속 역전 만루홈런‘ 입니다.

흥미로운 점은 종전 기록과 이번 기록 모두 상대가 삼성 라이온즈였다는 것입니다. 2002년 롯데의 박정태와 김응국이 삼성을 상대로 같은 기록을 세운 이후 24년 만에 다시 삼성을 상대로 역사가 반복됐습니다. 삼성 입장에서는 아쉬운 기록이 추가됐고, 두산은 짜릿한 역전극으로 위닝시리즈까지 확보하는 데 성공했습니다.

순위 경쟁이 치열한 지금, 한 경기의 흐름을 뒤집는 홈런 한 방은 그 이상의 의미를 가집니다. 이틀 연속 터진 역전 만루홈런은 단순한 기록을 넘어 두산의 저력과 집중력을 보여준 장면이었습니다. 과연 이 기세가 앞으로의 순위 경쟁에서도 이어질 수 있을지 기대가 됩니다.

제작: 야구공작소 김은빈

#KBO #두산베어스 #삼성라이온즈 #만루홈런 #야구
[야구공작소 인포그래픽] KIA 타이거즈가 새로운 아시아 쿼터 선수로 시라카와 게이쇼를 영 [야구공작소 인포그래픽] KIA 타이거즈가 새로운 아시아 쿼터 선수로 시라카와 게이쇼를 영입했습니다.

지난 26일 기존 아시아 쿼터 선수 제리드 데일과 결별한 뒤 빠르게 대체 자원을 찾았는데요. 시라카와는 2024시즌 SSG 랜더스에서 5경기 2승 2패 평균자책점 5.09를 기록했고, 두산 베어스에서는 7경기 2승 3패 평균자책점 6.03을 기록했습니다.

시라카와는 29일 2군에 합류해 컨디션을 점검한 뒤, 1군 콜업 시기를 조율할 예정입니다.

#야구공작소 #KBO리그 #시라카와 #KIA타이거즈 #갸감자
제작 : 야구공작소 최은혜
[야구공작소 인포그래픽] 긴 연패에 빠진 SSG. 그 배경에는 외국인 선수들의 부진도 적지 [야구공작소 인포그래픽] 긴 연패에 빠진 SSG. 그 배경에는 외국인 선수들의 부진도 적지 않은 영향을 미치고 있습니다.

전체적으로 낮은 WAR 수치가 이를 보여주고 있으며, 현재 SSG의 팀 외국인 WAR는 리그 최하위권이라고 봐도 무방한 상황입니다.

특히 베니지아노, 타케다 쇼타, 대체 외국인 선수 긴지로는 마이너스 수치를 기록하며 고전하고 있습니다. 미치 화이트도 부상 전까지 1선발로 보기에는 아쉬운 성적을 남겼고, 에레디아 또한 예년과 비교하면 기대에 미치지 못하는 모습입니다.

SSG가 연패 탈출을 넘어 순위 싸움에 다시 뛰어들기 위해서는, 외국인 선수들의 반등 혹은 교체 승부수 역시 반드시 필요해보입니다.

집 나간 WAR, SSG는 다시 찾아올 수 있을까요?

제작: 야구공작소 변영아

#야구공작소 #KBO #KBO리그 #SSG랜더스
[야구공작소 인포그래픽] 2026 KBO 리그 신인왕 레이스, 5월 25일 기준 가장 눈에 [야구공작소 인포그래픽] 2026 KBO 리그 신인왕 레이스, 5월 25일 기준 가장 눈에 띄는 루키들을 정리했습니다.

시즌 초반부터 존재감을 보여주고 있는 선수들.
마운드에서는 우강훈, 박준현, 장찬희, 임지민이 안정적인 이닝 소화와 홀드, 승리로 팀에 힘을 보태고 있고, 타석에서는 허인서가 강한 장타력과 생산력으로 신인왕 경쟁에 불을 붙이고 있습니다.

아직 시즌은 많이 남았지만,
초반 흐름만큼은 충분히 신인왕 경쟁을 뜨겁게 만들고 있습니다.

과연 2026 KBO 신인왕의 주인공은 누가 될까요?

제작: 야구공작소 박경진

#우강훈 #박준현 #허인서 #장찬희 #임지민
인스타그램 팔로우하기
Copyright 2026 — 야구공작소. All rights reserved. WPTEAM
%d