이스포츠 뷰어십을 볼수 없을까? 소프트콘 이스포츠 제작기(1)

정연진·2024년 4월 17일
4
post-thumbnail
post-custom-banner

2024년,
90년대부터 시작했던 이스포츠의 파이는 더더욱 커지고 상금과 규모는 계속 확대되어지고 있습니다.
하지만 우리가 볼수 있는 객관적인 지표는 부족하거나, 아쉬운 경우가 대부분입니다.

그렇다면 이 부분을 제가 직접 만들어보면 어떨까요?

이 생각에서 시작하게된 프로젝트가 바로 소프트콘 이스포츠 프로젝트입니다!


( 잠깐! )

해당 내용은 소프트콘 뷰어십의 연장선 프로젝트인, 소프트콘 이스포츠를 다루고 있습니다! 기존 소프트콘 뷰어십 프로젝트에 대한 내용이 궁금하시다면 다음의 시리즈를 확인해보세요!

velog 소프트콘 뷰어십 제작기 시리즈


소프트콘 뷰어십, 스트리밍 뷰어십을 한눈에!

https://viewership.softc.one/
소프트콘 뷰어십은 아프리카, 치지직, 트위치, 유튜브에서 방송중인 크리에이터들의 정보를 실시간으로 수집하여 해당 크리에이터의 데이터 및 순위를 보여주는 뷰어십 어플리케이션입니다.

지금부터 연재할 이 시리즈는, 뷰어십의 파생이자 원 기획이였던 소프트콘 이스포츠에 대해 어떻게 기획하고, 디자인하고, 개발하게 되었는지 풀어볼 계획입니다!


2023년 9월, 뷰어십의 시작


2023년 9월, 소프트콘 뷰어십 프로젝트를 만들게된 계기중 하나는 이스포츠 뷰어십의 측정이였습니다. 전 이스포츠에 관심이 많았고 이 분야를 굉장히 좋아했기 때문에 개발을 하기 전에도 이스포츠와 관련된 여러 데이터를 모아 카드뉴스 형식으로 만드는 일도 해왔었죠.



5년전, OP.GG에 올렸던 THIS.WEEK 연재 자료

소프트콘 뷰어십은 소프트콘 이스포츠라는 이스포츠 뷰어십 프로젝트를 하기위해 반드시 해야하는 일이자, 부수적으로 따라오는 프로젝트기도 했습니다.

특정 뷴야의 뷰어십 측정을 위해선, 일단 전세계 스트리밍 데이터를 먼저 수집하는것이 필요했으니까요.

뷰어십 프로젝트의 마무리

소프트콘 뷰어십.
사실 어느정도 구성해놓고 마무리 지은 후 이스포츠 뷰어십 개발로 넘어가고자 했지만, 생각보다 너무나 커졌습니다.

일반 시청자 뿐만 아니라 MCN, 네이버, 숲 등 여러 회사들에서 사용중이고 수많은 언론에서 소프트콘 뷰어십의 지표를 이용해 기사를 내기도 했습니다. 이와 더불어 여러 커뮤니티와 방송중인 스트리머들 역시 저희 사이트의 지표를 참고하기 시작했죠.

이러다 보니 조금 더 적극적으로 필요한 지표를 보여주기 위해 조금씩 개발을 연장했고, 그 상황이 현재까지 이어졌습니다. 이제 어느정도 마무리된 시점에서 제가 하고싶었던 이스포츠 개발을 본격적으로 진행하기 시작하게 되었습니다.

이스포츠 시장

이스포츠.
인터넷 방송과 굉장히 밀접한 관계를 가지고 있는 분야입니다.

대한민국에서 가장 인기있는 LCK는 스트리머들의 중계가 허용되어있고, 이로 인해 수많은 스트리머들이 LCKWatchParty 라는 이름으로 동시 중계를 진행하고 있습니다.

이와 더불어 네이버와 아프리카(숲) 모두 적극적으로 이스포츠를 홍보하고 있고, 치지직아프리카TV앱 모두 이스포츠 탭이 들어가 있는 것을 볼 수 있습니다.


실제 LCK 패자 최종전 ( T1 vs HLE )과 결승전 ( GEN.G vs T1 ) 당시 전체 인터넷 방송 그래프가 각 세트 별로 요동친다는 것을 확인해볼 수 있습니다. 토요일 그래프의 4개의 홈,일요일 그래프의 5개의 홈은 각각 4세트와 5세트가 펼쳐졌다는 것을 바로 알수 있을 정도로 네이버 치지직, 아프리카TV 모두 굉장히 강력한 영향을 받는 다는 것을 알 수 있죠.

즉, 이스포츠 시장과 인터넷방송은 굉장히 중요한 연관성이 있다라는 결과가 나옵니다.

2024년 1월, 이스포츠 데이터 수집 준비

이제 머리를 굴려봅시다.
이스포츠 데이터는 어떻게 수집해야 할까요?

소프트콘 뷰어십은 이미 스트리밍 데이터를 수집하고 있습니다. 즉, 해당 방송에 대한 기록을 쭉 가지고 있는 상황이고 해당 데이터중 일부를 이스포츠 데이터로 활용할 수 있도록 분류하는 작업이 필요할것으로 판단했습니다.


기존 방송 데이터에 특정 id값을 추가하고, 해당 id가 존재하면 이스포츠 데이터로 확정하는 구조가 최적의 구조로 판단되었습니다.

근데.. 이스포츠 데이터라는 이름으로 한번에 판단하기에는 조금더 확장해서 생각해볼 필요가 있습니다.

기본적인 이스포츠는 다음의 구조가 있습니다

  1. 게임
  2. 리그
  3. 경기

이 모든 분류는 서로 어느정도 연관성이 있기도, 단방향의 연관을 가지기도 합니다. 일단 이걸 한번 정리해봅시다.

게임 ( ex. LOL )

리그와 팀은 하나의 게임을 가지고 있습니다. 가령 T1이라는 팀과 LCK라는 리그는 리그 오브 레전드라는 게임을 종목으로 만들어졌죠.

리그 ( ex. LCK 2024, LCK 2023 ... )

하나의 게임을 가진 리그는 여러 개의 팀이 소속되어 있습니다. 가령, LCK 2024 리그엔 GEN.G, T1, HLE 등 총 10개 팀이 소속되어 있습니다.

팀 ( ex. T1, GEN.G ... )

하나의 게임을 가진 팀은 여러개의 리그에 소속되어 있습니다. ( LCK 2024 SPRING, SUMMER.. )

경기 ( ex. 1주차1경기, 2경기, 2주차 1경기, 2경기 ... )

하나의 리그에 소속된 한 경기엔 여러개의 팀이 경기를 펼칩니다. 보편적으로 GEN.G vs T1, DRX vs BRO와 같이 2개의 팀이 하나의 경기에 속해 있으나 종목에 따라 4개, 8개 등 다양할 수 있습니다.

이중, 스트림 데이터로 만들어지는 항목은 바로 경기 데이터 입니다.

조금전 자료와 합쳐보도록 하겠습니다.


이스포츠 데이터의 구조이자 모든 스포츠의 기본적인 구조는 다음의 형태로 정리가 가능합니다.
이 이상을 벗어날수 없고, 이 구조에서 대부분의 경기 처리가 가능합니다!

각각, games leagues teams matches 정도의 테이블로 정리가 되겠군요!

참 쉽죠!

서버를 수정하자

소프트콘 뷰어십은 다음과 같은 수집 절차로 이루어 집니다.

모든 플랫폼 수집이 시작되고, 수집이 종료되는것을 내부 로직을 통해 확인하고 모두 완료되었다고 판단되면 Vercel Data Cache의 재갱신 요청을 보내게 되죠.

이후 Vercel은 기존 Data Cache를 무효화 시키고, 새로운 데이터를 받아 사이트를 만들어 소프트콘 뷰어십 사이트가 수정되는 로직입니다.

이제 만들 이스포츠 데이터는 어떻게 처리해야할까요?

새로운 이스포츠 로직 추가


이스포츠 데이터를 따로 처리하기 위해, 해당 데이터 수집 이후 이스포츠 로직만 따로 처리하는 분류 로직을 새롭게 추가하였습니다.

수집된 데이터 중 가령 LCKWatchParty가 붙어있는 방송, 혹은 공식 방송임을 확인하는 태그등을 추가하여 해당 이스포츠 분류 로직에서 데이터를 처리하여 만약 이스포츠 데이터면 이스포츠 경기라는 분류를 추가하도록 수정했죠.

이렇게 하면 몇천만 ~ 억이 넘어가는 DB에서도, 경기 ID가 추가된 레코드만 따로 분류하여 이스포츠 데이터를 빠르게 만들 수 있습니다.

경기 데이터를 모아도 몇개 되지도 않는데다가, 모든 리그는 정해진 기간이 있기 때문에 DB 부담도 매우 적은 방법이기도 하죠.

인덱싱만 잘 걸면 어차피 기대되는 시간복잡도는 O(logN) 일 뿐입니다. 사용하고 있는 PostgresQL은 기본적으로 B+Tree를 이용하기 때문에 연속적인 데이터 추적에도 용이합니다.

데이터는 있는데, 어떤 정보가 중요할까?

이제 데이터를 수집할 준비는 끝났습니다.

문제는 데이터를 시각화 하여 사용자들이 원하는 정보를 만드는 것인데, 이스포츠 시장에서 가장 중요하게 여기는 요소와 필요한 정보에 대한 지식이 없습니다.

이스포츠 뷰어십 사이트의 레퍼런스는 전세계에서 이스포츠 차트이스포츠 해치 단 2개 뿐인데, 이마저도 유료 버전으로 꽁꽁 감추어져 있는 상황입니다.

이스포츠를 보는 시청자, 그리고 이 데이터를 향유하는 미디어와 언론, 그리고 스폰서.
어떤 정보를 필요로 하고 있을까요?


( 다음편에 계속... )

profile
소프트콘 뷰어쉽 절찬리 운영중! https://viewership.softc.one
post-custom-banner

0개의 댓글