우리가 전적 사이트에서 보는 게임 데이터는 어디서, 어떻게 가져오는 걸까요?
당연히 게임 데이터는 <리그 오브 레전드>(이하 롤)의 개발사인 '라이엇 게임즈'가 수집합니다. 하지만, OPGG와 같은 전적 사이트에서 보이는 것처럼 바로 깔끔하게 정리되어 공개될까요? 비교적 쉽게 볼 수 있는 데이터도 존재하지만 대부분은 그렇지 않습니다. 데이터가 가공되기 전의 형태를 보면 전적 사이트가 얼마나 중요한지 알 수 있죠.
그리고 이런 데이터는 사업적 용도가 아니라면 개인도 간단한 신청을 통해 열람할 수 있습니다. 이번 기사를 통해 <롤>의 데이터를 어떻게 볼 수 있는지, 간단한 활용 예시엔 무엇이 있는지 살펴보고자 합니다. /주보국 필자(Amitis), 편집= 디스이즈게임 김승주 기자
(출처: 라이엇 게임즈)
# 데이터와 친해지기 - 준비편
준비물은 간단합니다. <롤> 계정과 메모장이죠. 더 많은 도구를 사용할 수도 있지만, 이 정도면 충분합니다.
우선 '라이엇 디벨로퍼 포털' 사이트를 검색해 들어가 로그인을 해 봅시다. 로그인에 성공했다면 라이엇 데이터를 읽을 수 있도록 허가증을 받아야 합니다. 허가증은 ‘API key’라고 불리는데요. 간단히 말해 라이엇의 데이터가 쌓여있는 창고를 열 수 있는 열쇠라는 뜻입니다.
로그인에 성공하면 보이는 페이지 (출처: 라이엇 게임즈)
열쇠를 받는 단계. 제공 받은 열쇠는 타인과 공유해선 안 된다. (출처: 라이엇 게임즈)
이 단계에서 우리가 준비해온 메모장을 활용합시다.
위 사진처럼 점으로 처리된 번호를 복사한 후 붙여넣기를 하면 끝입니다(보통 로그인을 하시면 자동으로 되어 있으실 겁니다). 그리고 이 열쇠에는 중요한 특징이 있습니다. 사진처럼 열쇠 아래에 ‘Expired’라는 빨간색 문구가 있는데, 열쇠를 사용할 수 있는 기간을 나타냅니다. 기간이 만료되면 아래에 있는 버튼을 통해 열쇠를 새로 받으면 됩니다.
또한, 이 열쇠는 시간당 사용 횟수가 정해져 있고, 이를 넘어갈 경우 키를 사용할 수 없게 되는 제한이 존재합니다. ‘RATE LIMITS’로 표시해 둔 기준을 살펴보면 1초에 20번의 요청 제한이 있고, 2분마다 100회까지 사용할 수 있다는 뜻입니다. 이번 기사에서 1초에 20건의 데이터를 확인할 일은 없기 때문에 크게 신경 쓸 필요는 없습니다.
다만, 이런 요청 횟수의 제한 때문에 타인에게 열쇠를 공유해서는 안 됩니다. 열쇠의 주인이 1초에 1건의 데이터만 쓸 것이라고 약속한 것이기에 다른 사람과 공유하여 사용할 경우 기준을 초과할 수 있기 때문이죠. 문제가 심각해질 경우 열쇠의 주인 계정은 더 이상 데이터를 볼 수 없게 될 수도 있습니다.
# 데이터와 친해지기 - 탐색편
이제 준비된 열쇠를 활용해 데이터를 파악할 차례입니다.
상단 메뉴에 존재하는 APIS 로 접속해보자. (출처: 라이엇 게임즈)
상단에 존재하는 APIS로 들어가면 다양한 방법으로 데이터를 찾아볼 수 있는 선택지가 있습니다.
아직 접근할 수는 없습니다. 우리는 먼저 계정 정보를 알아야 합니다. 왼쪽 메뉴에서 ‘SUMMONER-V4’를 찾아서 들어가 봅시다.
잘 찾아왔다면 이런 창이 보일겁니다. (출처: 라이엇 게임즈)
많은 주소들이 보이지만, 가장 쉽게 접근할 수 있는 3번째 주소를 활용할 겁니다. 지금 우리는 닉네임을 제외하곤 계정에 대한 정보가 없기 때문이죠. 갖고 있는 정보인 닉네임을 활용해 봅시다.
열쇠가 아닌 닉네임을 입력하자. (출처: 라이엇 게임즈)
3번째 주소로 들어가 ‘PATH PARAMETERS’ 항목을 보면 ‘VALUE’라는 입력 창이 존재할 겁니다. 닉네임을 적는 공간입니다. 좋아하는 선수나 친구의 데이터를 알고 싶다면 이 공간에 닉네임을 입력하면 됩니다. 닉네임을 입력했으면 ‘EXECUTE REQUEST’를 누르면 됩니다.
이제 몇 개의 노란색 상자가 나타날 겁니다. 두 가지만 확인하면 됩니다. 먼저 ‘RESPONSE CODE’에 나타난 번호가 200인지 확인해야 합니다. 우리가 흔히 만나볼 수 있었던 '404 에러'의 성공 버전입니다. 적절한 요청을 보냈고, 적절한 응답을 받았다는 뜻이죠. 200이라는 숫자를 확인했다면 가장 아래에 있는 ‘RESPONSE BODY’에 적혀있는 내용을 메모장에 적어서 필요한 부분을 활용할 겁니다.
정상적인 응답을 가져온 경우 위와 같은 화면을 볼 수 있다. (출처: 라이엇 게임즈)
이 내용도 메모장에 적어두고 넘어가죠.
이제 앞서 얻은 데이터를 바탕으로 우리가 해왔던 경기 혹은 보고 싶은 소환사의 최근 데이터를 불러와 보겠습니다.
MATCH-V5의 첫 번째 주소 (출처: 라이엇 게임즈)
다시 왼쪽 메뉴에서 ‘MATCH-V5’를 찾아봅시다. 이 메뉴에는 총 3개의 주소가 존재하는데요. 먼저 접근해야 하는 주소는 첫 번째 주소입니다. 그 이유는 2번째 주소를 활용하기 위해서입니다. 앞서 입력했던 닉네임처럼 2번째 주소에는 경기 이름을 적어야 하기 때문이죠. 우리는 지금 열쇠와 아이디 정보밖에 없어 접근할 수 없습니다.
앞 단계에서 얻은 puuid 정보를 활용해서 접속해 보자. (출처: 라이엇 게임즈)
앞선 단계에서 기록해둔 puuid 정보를 잘 적어오셨다면, 필수 입력란인 puuid를 쉽게 입력할 수 있을 겁니다. 입력을 올바르게 했고 다른 입력란을 건드리지 않았다면 아까와 같은 200의 신호와 함께 20개의 게임 이름이 나타나게 되죠. “KR_xxxx”의 형태로 된 메시지가 20개 보인다면 성공입니다. 최근 20개의 게임 기록을 불러오는데 성공! (출처: 라이엇 게임즈)
여기서 20개의 데이터를 가져왔으니 내 열쇠는 망가진 것일까요? 그렇지 않습니다. 지금 했던 과정은 라이엇이 제시한 활용 기준인 1회 요청에 해당할 뿐이니까요. 즉, 우리는 방금 1초(혹은 1초가 넘는 시간)동안 1회의 요청을 보낸 것 뿐입니다. 20개의 요청을 보낸 뜻이 아니란 얘기죠.
이제 이 경기 이름들도 메모장에 옮겨 적어 둡시다. 모든 경기를 볼 것이 아니라면 하나의 경기만 적어둬도 충분합니다.
이제 마지막으로 경기 데이터를 불러올 겁니다. 앞서 언급했던 2번째 주소로 들어가 보시죠. 이제는 익숙해진 입력 창이 나타나는데, 방금 구한 경기 이름 데이터를 활용하는 곳입니다. 그러면 우리가 편하게 보던 전적의 원래 형태가 나타나게 되죠.
엄청난 길이의 데이터가 여러분을 반길 겁니다. (출처: 라이엇 게임즈)
이 데이터의 형태는 JSON이라고 합니다. 인터넷으로 데이터를 주고받을 때 가장 최적화된 형태의 데이터인 것만 언급하죠. 이 형태의 데이터를 간단히 설명해드리면 “우리가 습득한 값의 이름"을 제목으로 쓰고 “:” 뒤에 습득한 값의 수치나 기록을 나타냅니다. {“킬" : 3} 이런 식으로 말이죠. 즉, OPGG는 과거의 데이터를 모두 수집해 따로 기록하고 있고, 보기 어려운 JSON 형태의 데이터를 가공하여 유저들이 편하게 볼 수 있도록 만든 겁니다.
습득한 값의 제목과 데이터를 몇 가지 살펴봅시다.
다양한 값을 측정한 데이터 (출처: 라이엇 게임즈)
“제어 와드 설치 개수”(첫 번째 행)과 “더블 킬"(두 번째 행) 처럼 꽤 직관적이고 OPGG에서 쉽게 볼 수 있었던 데이터부터 “적 사라짐 알림 핑 횟수"(다섯 번째 행)이나 “상대 와드 발견 핑"(여섯 번째 행)처럼 핑을 얼마나 활용했는지에 대한 데이터도 있죠. 게임 내내 핑을 찍은 아군이 있었다면, 이 아군이 몇 번이나 핑을 찍어 우리의 귀를 괴롭혔는지 알 수 있는 셈입니다.
그 밖에도 “전령이 춤을 췄는가?”에 대한 값도 존재하며, 게임에서 가장 보기 싫은 “15분 전 항복으로 인한 게임 패배 여부" 또한 데이터에 들어있습니다.
그리고 저 데이터를 열심히 가공하면, 이렇게 우리에게 익숙한 모습을 출력할 수 있습니다. (출처: 라이엇 게임즈)
# 데이터와 친해지기 - 발전편
지금까지 본 내용이 우리가 구할 수 있는 라이엇 API 데이터의 일부였습니다. 이밖에도 이번 주 로테이션 챔피언들은 누구인지, 어떤 경기에서 1분당 기록된 데이터를 파악하는 것 등 매우 다양한 데이터를 찾아볼 수 있습니다.
앞서 소개했던 경기 데이터를 보기 쉽게 만드는 것도 좋은 활용 방법입니다. 먼저 경기 데이터를 살펴보기 위해 경기 이름이 기록된 데이터에서 경기 이름을 표로 정리해 둡니다. 보고 싶은 경기를 찾아서 미리 정리해두면 보기에도 수월하고, 데이터가 쌓여야 유의미한 정보를 찾을 확률이 올라가기 때문이죠. 경기 이름을 따로 모아 표로 만들고 (출처: 라이엇 게임즈)
특정 경기에 있었던 시야 데이터와 생존 시간에 관한 데이터만 뽑아서 볼 수도 있다. (출처: 라이엇 게임즈)
간단히 가장 최근에 치렀던 경기에서 수집된 데이터를 활용해 봤습니다. 위 사진처럼 보고 싶은 값만 따로 뽑아서 표로 정리해 본다면 상대 팀과 우리 팀이 어디서 차이가 벌어졌는지 확인하기 쉽죠. 예시로 찾은 데이터는 “가장 오래 살았던 시간"과 “회색 화면으로 보낸 시간"입니다.
전자의 경우 일반적으로 숫자가 클수록 오래 살았다는 뜻이니 게임 내에서 긍정적인 영향이 컸다고 볼 수 있지만, 후자의 경우 죽어있는 시간이 길수록 값이 많을 테니 부정적인 영향을 미쳤을 확률이 높죠. 필자가 가져온 게임에서는 피들스틱의 생존 시간이 길고 죽어있는 시간이 매우 적은 것으로 보아 해당 경기에서 잘했을 확률이 높습니다.
실제 데이터를 살펴보니 피들스틱은 해당 게임에서 MVP를 받으며 게임을 캐리했습니다.
이처럼 데이터를 다루는 데 더 익숙해진다면 '자기만의 전적 분석 사이트'를 만들어볼 수도 있고 승리보다는 재미에 더 집중한 데이터 분석을 해볼 수도 있습니다. 최근 100경기에서 전령이 춤췄던 횟수는 어떻게 될까? 등의 주제도 데이터를 통해 알아볼 수 있으니까요.
그리고 <롤> 이외에도 <전략적 팀 전투>나 <발로란트>, <레전드 오브 룬테라>의 데이터도 해당 사이트에서 확인할 수 있습니다. 활용하는 방법은 모두 똑같습니다. 입력해야 할 데이터를 찾아서 보관한 뒤, 보고 싶은 데이터가 요구하는 입력 칸을 채워주면 끝이죠.
다가올 23년도 시즌은 나만의 데이터 분석을 통해 즐겨보는 것은 어떨까요?