새소식

Discord Bot/LOL-Searcher

[23년 추가]롤 전적검색 파이썬 디스코드 봇 2.0 - Riot API 이용, 분석

  • -
반응형

League of Legends game Python Discord Bot Code, Example

 


23년 추가 글

 

기존 인터넷 환경을 Wi-Fi에서 유선 LAN 방식으로 변경

+

Riot API 코드 일부 수정

 

위와 같이 환경을 변경한 후 테스트를 해보니

평균 0.75초 정도가 나옴

 

=> 서버의 인터넷 상황에 따라 시간차 발생으로 유추


기존 1.0~ 버전에서 op.gg 사이트에서 beautiful soup를 이용한 반면

2.0 버전은 Riot API를 활용하여 제작했다.

 

op.gg 를 활용할 때보다 더 빠르게 반응하기 원했고

이를 위해 Riot API를 직접 받아 사용하는 봇을 제작했다.

 

기존 봇에서는 주목할 만한 챔피언으로

자체 알고리즘으로 뽑은 챔피언을 출력했는데

직접 Riot API를 받아오는 경우

시즌 별 챔피언 전적 데이터 추출 부분을 찾지 못해서
가장 높은 숙련도를 가진 챔피언을 출력했다.

 

봇 제작 후

op.gg를 파싱하는 버전과 api를 직접 받아오는 버전의 속도를

비교해보았다.

 

 


데이터 추출 속도 비교

 

op.gg의 경우 beautiful soup를 이용한 html parsing

riot api의 경우 json에서 데이터를 추출하였다.

 

측정 결과

예상과는 다르게 op.gg의 봇이 더 빨랐다.

 

이에 대한 문제점을 파악하기 위해

ver2 코드에 시간을 설정하여 확인해 본 결과코드에서 여러 데이터를 받기 위해

4개의 json에서 데이터를 추출하였다.

반면에 ver1 코드는

op.gg 한 사이트에서 모든 데이터를 받아왔기 때문에

상대적으로 시간이 덜 걸렸다.

 

실제로 이를 확인하기 위해

ver2 코드에서 숙련도 부분을 빼고 진행한 결과

ver1 결과와 거의 유사했고

 

하나의 json당 데이터를 추출하는 시간이 0.8초 이상의 시간이 걸린다는

사실을 알게되었다.

 

추가적으로 ver1에서

주목할 만한 챔피언 데이터 가공 시에도

거의 시간이 걸리지 않았고 ver2에서도 마찬가지였고

데이터를 추출하는 시간이 가공하는 시간보다 월등히 많이 걸렸다.

 

 


Ver 1과 Ver 2의 비교

 

 

결론적으로는 ver1이 더 빨랐다.

 

다만, ver1에도 단점은 있었다.

 

op.gg 내 사이트에서 직접 갱신을 해주지 않으면

데이터의 차이가 발생한다는 것이다.

 

 

실제로 소환사 아이콘의 경우

갱신을 해주지 않아 바꾸기 전 소환사 아이콘을 받아왔고

 

Ver2의 경우에는 현재 소환사 아이콘을 받아왔다.

 

json도 이번에 처음 다루어보고

직접 api를 통해 받아오는 프로그래밍도 처음 해봤는데

ver2의 경우가 조금 더 느린 점이 아쉬웠지만

나름대로 만족할 만한 결과를 얻었다.

 

 

 

아래 GitHub 링크에 해당 봇에 사용한 코드가 있습니다.

 

https://github.com/CuriHuS/lol-searcher/blob/main/riotapi.py

참고 사이트

 

https://sungw.tistory.com/9

반응형

'Discord Bot > LOL-Searcher' 카테고리의 다른 글

롤 전적검색 파이썬 디스코드 봇 1.1  (0) 2020.10.29
롤 전적검색 디스코드 봇 1.0  (0) 2020.10.26
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.