StarLog.GG 개발기

HYEONG HWAN, MUN/ 2월 7, 2019/ 미분류/ 3 comments

지금은 사라진 사이트 “StarLog.GG” 의 개발 후기를 적고자 한다.

 

StarCraft는 Blizzard 에서 개발한 게임 이름이자, 상표이다.

1998년에 출시된 게임이며, 스토리와 그래픽도 좋았고, 당시에 경쟁 게임이 없었기 때문에 그 시절 컴퓨터를 접한 사람은 모를 수가 없는 필수적인 게임이었다.
놀랍게도 20여년이 지난 지금까지도 즐기는 사람이 많다. 게임에 접속해보면, 아직도 초보방이 많다.(하지만 모두 굇수들..)
간혹, “OO맵 고수만 오세요” 라는 방이 있다면 이건 “프로게이머 들어오세요” 라는 뜻이다.

개발사(Blizzard)에서는 이렇게 지속적으로 이용하는 사용자들을 위해 그래픽 + 음성이 개선된 버전을 만들었다. 이것이 “스타크래프트 리마스터”이다.
공식 담당 부서는 Blizzard classic game team 이다.

 

1. 선행사례 조사 및 예상 이용자 파악

이런 종류의 게임은 실력을 나타내는 지표가 중요하다. 승무패, 승률, 랭킹 같은 통계가 나와주어야 한다.
이런 종류의 사이트는 대부분 .gg 도메인을 사용하고 있었고, 게임 이름의 일부를 서비스 이름에 넣는 경향이 있었다.

따라서 나는 StarCraft(스타크래프트) + Log(기록) + GG 라는 것으로 사이트 이름 및 도메인을 정하였다.

예상 이용자는, 게임 이용자 + 게임 방송 시청자 이었다.

 

나중에, 내가 계산한 정보에 따르면 전체 StarCraft 이용자의 60% 이상이 StarLog.GG 사이트를 이용한 것으로 파악되었다.

 

2. 기술 검토 및 사이트 제작

2017년 8월 15일에 스타크래프트 리마스터가 출시되었다.

바로 구매해서 몇판 해보고 통신 데이터를 분석해보았다.

17/08/16 : 본인(자신)의 전적을 확인하는 방법을 알아내었다.
17/08/17 : 다른 사람의 전적을 확인하는 방법을 파악했다. 사용자 정보, 게임 정보, 서버 정보를 확인하였다. 변수 분석 시작.
17/08/23 : 변수 항목이 어떤 것을 의미하는 것인지 확인하였고, 이것들을 저장할 DB 구조를 설계하였다.
17/08/25 : 배틀태그(블리자드 게임에서 ID 대신하여 사용하는 고유 구분자)를 이용해서 그 사용자의 게임정보를 얻어오는 기능을 구현하였다.
각 서버별 접속자를 사이트에 표시하였다. 게임가이드를 작성하였다. 사이트 피드백을 받기 위해서 게시판을 작성하였다.
17/08/26 : 최초 사이트 오픈 및 홍보

17/08/31 : 블리자드에서 외부 로그인(SSO)을 지원하는 것을 확인하였고 연동하였다.

어느 게임 정보사이트 OP.GG 를 참고하여, 모든 사용자의 리플레이 파일을 다운 받을 수 있게 제작했었다. 그런데 이용자의 반응이 좋지 않더라.
프로게이머의 게임데이터가 공개되는 것을 싫어하는 사람이 많았다.
따라서 로그인 기능을 만들고, 자신의 게임데이터 공개 범위를 설정하는 기능과, 본인만 리플레이를 확인할 수 있게 만들었다.
대신 게임 빌드오더 분석이라는 기능을 만들어서, 리플레이는 볼 수 없지만 게임의 흐름은 볼 수 있게 만들었다.

 

2017년 9월 : 래더 랭킹을 조회하는 화면을 만들었다.
날마다 모든 랭킹플레이어 목록을 저장해서, 구간별 통계 및 사용자별 랭킹 진척도 기능을 구현했다.

2017년 10월 : 클랜 페이지를 만들었다. 게임에 관심있는 사람을 모아야 게임이 더 발전한다.
구간별, 맵별 승률 통계를 만들었다.

그 후로는 큰 변화없이 버그 수정 및 시즌 업데이트를 진행하였다.

 

3. 제작 컨셉 및 광고 삽입

부트스트랩이라는 프론트엔드 프레임워크를 사용했으며, 반응형 사이트로 만들었다.
모바일에서도 확인이 쉽도록 만들었다. (나는 하나의 동작 페이지를 만들때 100번 이상 사용해본다)

광고를 넣되, 사용자가 많이 캡쳐하는 부분에는 넣지 않았다.
프로필 페이지가 페이지뷰가 가장 많았는데, 광고를 넣으면 페이지가 많이 지저분해지길래 빼버렸다.
또한 모니터 가로사이즈가 작은 사용자는 광고가 보이지 않게 작업했다.

사이트 이용이 불편하면 안된다.

 

4. 사이트 이용률

일간 방문자는 2,000명, 페이지뷰는 20,000뷰 정도 나왔다. 큰 변화 없이 일정했다. 꾸준히 들어오는 사용자가 많았다.

가끔씩 커뮤니티에 페이지가 링크될 때 사용자가 크게 늘어났다.

 

5. 서버의 구성

적절히 역할을 구분하고 분리하였다. 잘 분리했기 때문에, 많은 사용자가 접속해도 사이트가 빠릿했다.

 

6. 데이터베이스 사용량

나에게 좋은 경험을 준 데이터베이스 사용량이다.

게임방 데이터 : 누가 게임방을 어떤 제목으로 만들었는지, 서버, 게임옵션, 참가자정보, 리플레이, 래더게임점수 기록이 저장되어 있다. 1500만개 저장했고, 52GB 이다.

 

참가자 데이터 : 참가자 아이디, 종족, 승패, 게임점수, 색상, 스타팅포인트등의 데이터가 저장되어있다. 2900만개 저장했고, 13.7 GB이다.

 

고유 사용자 데이터 : 배틀넷 사용자 데이터. 나는 실제 스타크래프트를 즐기는 유저를 5만명 정도로 추정하며, 32,275명이 StarLog.GG 를 이용했다. (약 64%)

 

게임 아이디 데이터 : 스타크래프트는 한 사람이, 서버별로 3개의 아이디를 만들수 있다. 생성과 삭제를 제한 없이 할 수 있다. 케릭터 생성일, 전적, 점수, 통계정보가 기록되어 있다. 17만개의 게임 아이디가 저장되어 있다.

 

수천만건의 데이터가 저장되어 있어도 설계가 잘되어 있으면, 원하는 결과를 0.001초 이내에 찾을 수 있다는 좋은 경험을 하였다. (수십 GB 테이블에 쿼리를 날려도 잘 돌아가는 것을 확인함!)

 

1년 넘게 서비스했는데, 서비스가 느리거나 장애가 발생하지는 않았다.

 

7. 서비스 종료

뭐랄까.. 가성비가 떨어졌다.

하루 2천명 접속자를 위해 유지해야하는 데이터 양이나, 서버의 숫자가 많았다.

가끔씩 게임의 새 버전이 출시될 때 게임 데이터 구조가 변경되는 경우가 있었다. 변수를 다시 해석하고 적용하였다.

게다가 결정적으로 2018년 11월 중순쯤 스타크래프트 패치로 인해, 내가 참조하던 데이터포인트가 사라졌다.
서비스 중단 위기였으나, 만약을 대비해서 데이터 추출 방법을 하나 더 준비해 두고는 있었다. 그 방법으로 변경하여 가동하였다.
하지만 사이트 운영에 필요한 모든 정보를 얻을 수는 없었다. (즉, 그동안 사용하던 데이터 추출점이 막혔고, 일부분은 새로운 추출점을 찾아서 복구하였다. 일부는 못찾음)

 

2018년 11월 24일 서비스 종료
2018년 11월 24일 KT 아현지사 화재로 인해 인근 인터넷이 마비가 되었다.
StarLog.GG 서버는 서울 마포구에 위치해 있었는데, 이런 말도 안되는 천재지변으로 사이트가 다운되었다. 정확하게 말하자면 인터넷 연결이 불가하였다.

서버의 인터넷 연결을 복구할 수 없어서, 우선 스타크래프트 공식 홈페이지로 이동하게 작업했다.
그러다가 “혹시 이건 신의 계시인가?” 싶어서 닫았다.

스타로그를 운영하면서, 비공식적인 방법을 사용해서 서비스를 운영하는건 힘든 일이라는 것을 알게되었다.

 

이용자 대비 유지해야하는 데이터가 많음 + 블리자드 패치로 인해 데이터 추출점 손실(일부 서비스 불능) + 타이밍 맞춰서 인터넷 불가(KT화재)

= 사이트 종료

 

좋은 경험이었음. 1년 5개월 운영하면서 욕 안먹고 그럭저럭 잘 했던것 같음.

2019년도에 정식 API 만들어준다고 하던데, StarLog 사이트가 다시 열릴 수 있을지는 모르겠음.

갑자기, “스타판은 망했어!” 라고 말하고 군대간 프로게이머가 있었는데, 운영 지속여부를 고민하는 나에게 많은 충격을 주었다. 운영 중단에 더 많은 힘을 실어주었다.

 

해년마다 새로운 것을 만들고 있음. 올해(2019년)에는 어떤걸 만들어볼까나.

3 Comments

  1. 으익! 스타 오랜만이네요 ㅎㅎ;
    리-시빙

  2. 안녕하세요~

    저는 스타크래프트를 좋아하는 유저로써 99년부터 즐겨 올해 20년을 즐기고 있는 한 유저입니다.

    스타로그 사이트를 이용해보려고 했는데 언젠가부터 접속이 되지 않아

    관련 정보를 찾다가 운이 좋게 개발자 분의 블로그를 접할수 있게 됐네요

    궁금한 것은 따로 블리자드측에서 아직 스타1 리마스터의 데이터를 api로 제공하고 있지 않은데

    관련 데이터들을 어떤 방식으로 가져왔는지 궁금합니다.

    글 내용에 통신 데이터를 분석하셨다고 하시는데 와이어샤크 같은 툴로 패킷들을 분석하셔서

    하신 건가요?? 구체적으로 알고싶은데 혹시 공유가 가능하시면 알려주시면 감사하겠습니다!!

    1. 게임 내 Battle.net에 접속해보시면, 대기실에서 다른 사용자의 프로필 및 전적을 확인하는 페이지를 열 수 있습니다.
      그 페이지를 호출해서 분석하면 됩니다. 과거에는 프로필페이지가 공개된 웹페이지이었는데, 지금은 게임안에서만 볼수있게 바뀌었습니다.
      서버에 스타크래프트 게임을 계속 켜놓아야하고… 아무튼 복잡하게 바뀌었습니다.
      블리자드에서 API를 만들어 줄때까지 기다리는걸 권장합니다.

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*