Woozy_DevLog
article thumbnail

데이터 수집 세부 설명

  1. Riot Games는 Riot API를 통해 리그오브레전드와 관련한 다양한 데이터를 제공합니다.
  2. 챔피언 듀오 승률, 챔피언 승률, 스펠 데이터를 분석하기 위해서는 한 소환사가 플레이한 게임 1개의 로우데이터를 반복적으로 수집해야 합니다.
    • Carryduo의 데이터 분석 기준에 따르면, 플래티넘과 다이아 랭크에 소속된 모든 소환사들이 플레이한 모든 게임 로우데이터들을 수집해야하는 것입니다.
  3. Riot API를 통해 한 소환사의 리그오브레전드 게임 로우데이터 1개를 수집/분석하기 위해 요구되는 절차는 다음과 같습니다. 각 절차 모두 Riot API와의 통신을 요구합니다.
    1. 특정 랭크와 티어에 소속된 소환사들의 고유 ID값 조회(summonerId)
    2. summonerId로 개별 소환사의 게임 데이터를 조회하기 위한 key값 조회(puuId)
    3. puuId로 개별 소환사의 게임 로우데이터 고유 ID값 조회(matchId)
    4. matchId로 게임 로우데이터 조회

데이터 분석 세부 설명

로우데이터 샘플

챔피언 듀오 승률 분석 방식

위와 같이 챔피언 듀오 승률 티어리스트를 추출하기 위해서는 다음과 같은 과정을 거칩니다.

  1. 게임 로우데이터에서 게임에 참여한 10개 챔피언들의 고유 Id, 포지션, 승/패 여부에 대한 값을 추출합니다.
  2. 추출한 데이터를 포지션 카테고리에 따라 묶고, 다음과 같이 DB에 저장하고 승률과 티어를 가공합니다.

챔피언 듀오 쌍을 이루는 챔피언들의 고유 Id, 포지션 카테고리, 표본 수, 승/패 수를 저장합니다.
저장된 데이터에서 승리 수/표본 수로 승률을 계산하고, 승률에 대응하여 아래 로직을 통해 티어를 계산합니다.

챔피언 듀오 승률 티어계산 로직 코드 스니펫

챔피언 승률/ 벤률/ 픽률/ 선호 포지션, 스펠 데이터 분석 방식

위와 같은 챔피언 승률/벤율/픽률/선호 포지션 그리고 스펠 데이터를 추출하기 위해서는 다음과 같은 과정을 거칩니다.

챔피언 승률/ 벤률/ 픽률/ 선호 포지션

  1. 게임 로우데이터에서 게임에 참여한 10개 챔피언들의 고유 Id, 승/패, 벤처리된 챔피언의 고유Id, 포지션에 대한 값을 추출합니다
    • 필요 데이터
      • 승률 - 추출한 챔피언의 승/패 데이터, 게임 플레이 표본 수
      • 벤률 - 챔피언의 벤 처리된 횟수, 전체 게임 표본 수
      • 픽률 - 챔피언의 게임 플레이 표본 수, 전체 게임 표본 수
      • 선호 포지션 - 플레이 한 챔피언의 포지션 데이터, 게임 플레이 표본 수게임 로우데이터에서 게임에 참여한 10개 챔피언들의 고유 Id, 승/패, 벤처리된 챔피언의 고유Id, 포지션에 대한 값을 추출합니다

champion 전적 기록 테이블 예시) 선호 포지션 - 챔피언 별 고유Id를 추출하고 포지션 데이터에 따라 해당되는 포지션 합계를 통해 산출합니다.
버전 별 분석한 게임 수
champion 밴 기록 테이블 (champion 고유 Id와 분석한 게임 수, banCount를 통해 벤률을 추출합니다.)

챔피언별 스펠 통계 분석 방식

  1. 게임 로우데이터에서 게임에 참여한 10개 챔피언들의 고유Id, 스펠1,스펠2에 대한 스펠 Id 값을 추출합니다.
    • 필요 데이터
      1. 스펠1 Id
      2. 스펠2 Id
      3. 1,2번에 대한 게임 플레이 표본 수
      4. 전체 게임 표본 수
  2. 추출한 데이터를 연산을 통해 사용에 알맞은 데이터로 변환 합니다.
    • 챔피언의 스펠1,스펠2 데이터가 3,4 또는 4,3은 사용자 입장에서 같은 데이터라고 판단되기에 두 데이터를 합쳐서 연산합니다.

챔피언 별 고유Id를 추출하고 스펠Id를 저장하여 해당 스펠로 플레이한 표본 수를 계산하며 저장합니다.

챔피언 상세정보 데이터분석 코드스니펫

 

데이터 관리 세부 설명

서비스 DB로 이관

  • 안정적인 서비스 운영을 위해, DB를 서비스용과 데이터 분석용으로 분리했습니다.

Outdated한 데이터 관리

  • 분석이 완료된 데이터 중 분석이 잘못되거나 패치버전이 오래된 데이터는 주기적으로 폐기처분하여, DB 용량을 관리합니다.
profile

Woozy_DevLog

@Woozy_Dev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!