본문으로 건너뛰기
-
야구를 다르게 보는 시선, 계속 업데이트됩니다.
  • 홈
  • 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, July/August [7, 8월의 칼럼]

    ›
  • KBO

    8강의 문보경, 애국가에 나올 자격이 있을까요

    ›
  • 세이버메트릭스

    구위는 복합체다

    ›
  • 세이버메트릭스

    득점가치 돌아보기

    ›
  • MLB

    어쩌면 마리아노 리베라는 보다 불멸일지도 모른다

    ›
  • MLB

    유망주 타이쿤, 근데 이제 경제 가치를 곁들인

    ›
  • MLB

    슬라이더라고 불리는 것들

    ›
  • MLB

    투수의 DNA : Supinator vs Pronator

    ›
  • KBO

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

    ›
  • KBO

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

    ›
  • KBO

    2026 KBO리그 외국인 선수 스카우팅 리포트 – 두산 베어스 유니오 세베리노

    ›

YOUTUBE

PODCAST

INSTAGRAM

yagongso

[야구공작소 인포그래픽] KBO 최초 한 시즌 두 타자 200안타 2026년 10월 6일 [야구공작소 인포그래픽]
KBO 최초 한 시즌 두 타자 200안타

2026년 10월 6일, KT 위즈의 최원준과 롯데 자이언츠의 빅터 레이예스가 나란히 200안타 고지를 밟으며 KBO 45년 역사상 최초로 한 시즌에 200안타 타자 2명이 동시 탄생했습니다.

빅터 레이예스 선수의 경우 2024년 200안타 이후 개인 통산 두 번째 200안타를 기록했고, 최원준 선수의 경우는 개인 통산 첫 번째이자 국내 선수 중에서는 2014년 서건창 선수 이후 12년 만의 기록입니다.

두 선수가 같은 날 동시에 최초의 기록을 달성하며 이번 시즌 안타왕 경쟁이 뜨거워지고 있습니다. 과연 시즌이 끝나고 안타왕이라는 타이틀홀더를 거머쥘 선수는 누가 될까요?

제작: 야구공작소 김수환
#KBO #안타왕 #200안타 #최원준 #레이예스
[야구공작소 인포그래픽] 2026시즌, 곽빈은 자신의 이름을 제대로 각인시켰습니다. FI [야구공작소 인포그래픽] 
2026시즌, 곽빈은 자신의 이름을 제대로 각인시켰습니다.
FIP 2.69, 197탈삼진, 평균자책점 2.24, WHIP 1.04로 주요 투수 지표에서 리그 선두에 오르며 커리어 최고의 시즌을 만들어가고 있습니다. WAR 6.59와 11승까지 더하며 두산 마운드를 이끄는 에이스이자 팀의 든든한 기둥으로 활약했습니다.

소속팀에서의 활약은 태극마크를 달고도 이어졌습니다. 아시안게임에서 대표팀 마운드의 중심을 맡아 인상적인 투구를 선보인 곽빈은 이제 국내 무대를 넘어 메이저리그 관계자들의 시선까지 사로잡아 더 넓은 무대에서도 주목받고 있습니다.

원빈, 현빈 그리고 곽빈.
2026년, 또 하나의 ‘빈’이 자신의 이름을 증명하고 있습니다.

제작: 야구공작소 서영채
#KBO #KBO리그 #두산베어스 #곽빈
‘역체킅’, 역대 최고의 KT 위즈. 2026 시즌 현재 KT 위즈는 87승으로 구단 역 ‘역체킅’, 역대 최고의 KT 위즈.

2026 시즌 현재 KT 위즈는 87승으로 구단 역대 최다 승, 승률 .640으로 구단 역대 최고 승률을 기록했습니다.

홈 관중 100만 명을 돌파하며 구단 역대 최다 관중 기록도 새로 썼고, 2021년에 이어 구단 통산 두 번째 정규시즌 우승을 차지했습니다.

구단 역사에 새로운 기준을 세운 2026 KT 위즈.
이 기세로 한국시리즈 우승까지 이어갈 수 있을까요?

*2026. 10. 7. 기준

제작 : 야구공작소 홍기민
[야구공작소 인포그래픽] 김도영의 홈런은 개수만으로 가치가 전부 설명되지 않습니다. K [야구공작소 인포그래픽] 김도영의 홈런은 개수만으로 가치가 전부 설명되지 않습니다. 

KIA타이거즈의 김도영이 오늘(10/5) LG와의 경기에서 42호 포를 터뜨리며 다시 홈런 단독 선두로 올라섰습니다.

9회초 1점차 뒤진 상황에서 극적인 역전 쓰리런으로 팀의 승리를 이끌어낸 김도영

김도영의 홈런은 팀의 승리를 가져오는 결정적인 순간에 자주 등장합니다.

2026시즌 김도영이 홈런을 기록한 38경기의 결과는 27승 11패 승률 71.1%

1점차 이내 상황에서의 홈런은 23개(54.8%), 3점차 이내 상황에서의 홈런은 33개(78.6%), 결승 홈런은 7개를 기록하고 있습니다. 

팀의 승리를 견인하며 슈퍼스타의 존재감을 확실하게 보여주고 있는 김도영, 과연 몇 개의 홈런으로 이번 시즌을 마무리하게 될까요?

제작: 야구공작소 윤나영

#KBO #KBO리그 #KIA타이거즈 #기아타이거즈 #김도영
[야구공작소 승부예측 - 디비전 시리즈] 오늘 시작된 MLB 포스트시즌 디비전 시리즈! 뉴 [야구공작소 승부예측 - 디비전 시리즈]
오늘 시작된 MLB 포스트시즌 디비전 시리즈!
뉴욕 양키스 vs 탬파베이 레이스, 어느 팀이 챔피언십 시리즈로 진출할까요?

야구공작소 공작원들의 예측을 살펴봅니다!
여러분의 생각도 투표로 남겨주세요!
#MLB #디비전시리즈 #nyy #tb
[야구공작소 승부예측 - 디비전 시리즈] 오늘 시작된 MLB 포스트시즌 디비전 시리즈! 애 [야구공작소 승부예측 - 디비전 시리즈]
오늘 시작된 MLB 포스트시즌 디비전 시리즈!
애틀란타 브레이브스 vs LA 다저스, 어느 팀이 챔피언십 시리즈로 진출할까요?

야구공작소 공작원들의 예측을 살펴봅니다!
여러분의 생각도 투표로 남겨주세요!
#MLB #디비전시리즈 #atl #lad
인스타그램 팔로우하기
Copyright 2026 — 야구공작소. All rights reserved. WPTEAM
%d