# 신청
학교 에브리타임 전컴게시판을 들여다 보다가 '리그오브레전드'라는 글자에 이끌려 그 자리에서 비장한 마음으로 구글 폼 신청서를 작성한 교육 프로그램. 눈에 띄는 알맹이가 아직 없어서 자연스레 최대한 읽는 사람의 기억에 남을 만한 '교육 참여의 필요성', '자기 소개'를 작성했다. 모집 마감 이후 괜히 나불댄 게 아닐까 싶어 살짝 불안했지만 어제 반가운 연락이 왔다. 기회가 주어졌다.

https://brena.or.kr/brena/notice.do?mode=view&articleNo=872&article.offset=0&articleLimit=10

# 첫 교육
오늘 이미 10to5을 zoom 실시간 화상회의와 함께 했기 때문에, zoom 화면이 슬슬 질려갈 때였다. op.gg에서 데이터 분석가로 일하시는 분이 강의를 진행해 주셨는데, 처음에는 다소 원론적인 이야기들이라 지루함이 그대로 이어졌지만, 얼마 못가 흥미로운 이야기들을 들을 수 있어 즐겁게 들었다. 물론 그 원론적인 이야기들도 정말 유익한 것들이었다. 첫 시간이라 앞으로 배울 내용을 개괄하여 살펴보는 내용이었는데, 첫 시간에 큰그림을 야무지게 그려주는 강의는 항상 남는 게 많은 강의였기에, 앞으로의 교육이 기대되었다.

Q&A 시간에 '채팅 메시지의 수와 승패 여부의 상관관계', '와드를 설치하는 위치별 승률'이 분석 가능한지 강의자님께 질문했는데 아쉽게도 라이엇게임즈가 제공하는 리그오브레전드 게임 데이터 API에는 채팅 관련 내용이나 와드 위치가 수집되지 않는다고 하셨다. ㅠㅠ 마지막 질문 받는 시간에는 'OP.GG에서 제공하는 통계가 OP.GG 유저의 전적 갱신 내용에 포함되는 게임만을 표본으로 하는지, 아니면 리그오브레전드 서버에 기록이 남은 모든 게임을 표본으로 하는지' 질문했는데 전자였다. 내가 날카로운 질문을 해줬다고 말해주셔서 뿌듯했다. 지금 시점에서는 전자나 후자나 수집되는 데이터의 양에는 별 차이 없다고 하시는걸 보고, OP.GG가 이제는 얼마나 한국의 롤 유저들에게 일상적인 웹 서비스가 되었는지 알 수 있었다.

# 가장 흥미로웠던 교육 내용 : 리그오브레전드 API를 가져와서 데이터를 가공하는 과정 예시
https://www.op.gg/

 

롤 전적 검색 OP.GG - 전적 검색, 관전, 리플레이, 챔피언 공략, 카운터, 랭킹

롤 전적, 모든 게임의 전적, 챔프 평점, KDA, 승률을 볼 수 있고 리플을 보거나 자신의 게임을 녹화를 할 수 있습니다. 지금 바로 당신의 소환사명을 검색해보세요!

www.op.gg

op.gg가 제공하는 깔끔한 게임 정보는 어디서 수집해 오는 걸까 항상 궁금했지만, 그거 알아볼 시간에 게임 한 판 더 한다는 마인드였다. 이번 기회에 그 궁금증을 해소할 수 있었다.

필자가 최근에 플레이한 게임 결과다.

위와 같은 직관적인 정보 제공으로 가공하기 위한 첫 단계는 raw data 수집이다. 라이엇게임즈는 친절하게 게임 데이터를 잘 정리해서 API로 제공한다. 롤 계정이 있다면 누구나 아래 사이트에서 데이터를 수집할 수 있다.
https://developer.riotgames.com/

 

Riot Developer Portal

About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and reliable way. This is just part of our ongoing effort to respond to players' and developers' requests for data and

developer.riotgames.com

로그인을 하고 API 키를 Copy한다. 만약 빨간 글씨로 Expired되어 있다면, API 키를 갱신해주면 된다.

 

SUMMONER 탭으로 가서 계정명으로 소환사 정보를 얻으려면 첫 번째 버튼을, 소환사명으로 정보를 얻으려면 두 번째 버튼을 누르면 된다. 나는 두 번째 버튼을 눌렀다.

 

summonerName 옆의 빈 칸에 소환사명을 입력하고 EXECUTE REQUEST 버튼을 누른다.

 

계정에 대한 정보가 쭈르륵 나오는데, "accountId"만 복사해 놓으면 된다.

 

좌측에서 MATCH-V4 탭을 찾아 들어가 encryptedAccountId 로 게임 정보를 찾는 두 번째 버튼을 누른다.

MATCH-V4가 구 버전이고, MATCH-V5가 새로운 버전인데, 진화를 하는 '케인'이나 팀원을 우물에서 탈출시켜주는 '아크샨'처럼 다양한 Event가 추가되면서 생겨났다고 한다.

encryptedAccountId 옆의 빈 칸에 아까 복사해놓은 accountId 를 붙여넣기 하고, 스크롤을 내려 EXECUTE REQUEST 버튼을 누른다.
RESPONSE BODY 에서 그동안 그 소환사가 진행했던 게임 정보를 얻을 수 있다. 스택 구조처럼 최근 게임이 제일 위에 있다. 원하는 게임의 gameId 를 복사한다.
matchId 옆의 빈 칸에 아까 복사해놓은 gameId 를 붙여넣기 하고, 익숙한 빨간 버튼을 눌러준다.
해당 게임의 정보가 나온다. teamId 의 값은 100 또는 200 인데, 각각 블루팀과 레드팀이다.
http://jsonviewer.stack.hu/ 를 통해 해당 파일의 가독성을 개선할 수 있다. 하지만 챔피언 및 아이템의 이름이 숫자로 된 key 값으로 되어 있는 등등 직관성이 떨어진다.
그럼에도 개발자의 손길이 닿으면 깔끔해진다. 요로코롬 조로코롬 라이엇게임즈에서 제공하는 문서 상의 정보와 mapping하면 인간의 언어로, 그리고 보기 좋은 matrix로 정리할 수 있다...고 한다.
그리고 프론트엔드 개발자의 손길이 닿으면 데이터가 디자인이라는 옷을 입고서, 웹 서비스 이용자의 눈을 만족시켜 주고 있다. 이러케 저러케 라이엇게임즈에서 제공하는 문서 상의 이미지파일과 mapping하면 익숙한 아이콘들로 직관성을 한층 더 높일 수 있다...고 추정된다.

# 한줄평
교육생 선발, 양질의 교육 내용을 향한 두 가지 기대를 모두 아쉬움 한 점 없이 충족한 경험이었다.

# 한줄각오
날카로운 질문했다는 칭찬 또 듣게 열심히 해야지

+ Recent posts