StarLog.GG 개발기

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

https://blog.lael.be/post/8476

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

 

 

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

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. 서버의 구성

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

 

6. 데이터베이스 사용량

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

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

 

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

 

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

 

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

 

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

 

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

 

7. 서비스 종료

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

하루 2천명 접속자를 위해 유지해야하는 데이터 양이나, 서버의 숫자가 많았다. (한달에 30만원 정도 수익이 생겨야, 유지하는 것이 이득이라는 결론이 생긴다. 근데 10만원쯤 나오더라.)

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

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

또한 데이터 추출점을 사용하기 위해서 스타크래프트 클라이언트를 계속 켜두어야했는데, 켜기만 하고 게임을 하지 않아도 CPU를 너무 많이 쓰더라.

 

2018년 11월 24일 서비스 종료

2018년 11월 24일 KT 아현지사 화재로 인해 인근 인터넷이 마비가 되었다.
StarLog.GG 서버는 서울 마포구에 위치해 있었는데, 이런 말도 안되는 천재지변으로 사이트가 다운되었다. 정확하게 말하자면 인터넷 연결이 불가하였다.
서버의 인터넷 연결을 복구할 수 없어서, 우선 스타크래프트 공식 홈페이지로 이동하게 작업했다.
그러다가 “혹시 이건 신의 계시인가?” 싶어서 닫았다.

서비스 유지기간 : 2017년 8월 26일 ~ 2018년 11월 24일 (1년 3개월)

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

 

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

= 사이트 종료

 

좋은 경험이었음. 1년 3개월 운영하면서 욕 안먹고 그럭저럭 잘 했던것 같음. Public Open 된 사이트를 욕안먹고 운영하는건 많은 노력을 필요로 한다.

2019년도에 정식 API 만들어준다고 하던데, StarLog.GG 사이트가 다시 열릴 수 있을지는 모르겠음.
(Blizzard 공식사이트에서 내가 만든 이 사이트가 언급되었다.  https://us.forums.blizzard.com/en/starcraft/t/2019-priorities/19 )

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

 

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

 

34 Comments

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

  2. 안녕하세요~

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

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

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

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

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

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

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

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

  3. 1500만개 52기가라..

    MariaDB 사용 중이시라면

    데이터가 1억, 10억 되었을때도 속도 문제 없을까요?

    1. 10억은 모르겠으나 1억은 문제 없을것 같네요.

  4. 정말 감사했습니다. 확인하는 재미도 있었고.. 블리쟈드에서 방치한 클랜시스템
    님이 연명하셨는데 그것도 사라져버렸군요 이제.
    후.. 리마스터 나온지 2년이나 되었는데 진짜 뭔짓거리 하는지 모르겠네요.
    클랜의 중요함을 전혀 몰라요. 신규유저 잡을수 있는 방법 두가지가 게임성과 클랜인데
    운영이야 말할것도 없고
    다시한번 감사드립니다.

    1. 감사합니다. 저도 많은 시간을 투자해서 만들었는데 아쉽네요.

  5. 안녕하세요! 저는 스타크래프트 인공지능을 만들어보려는 개발자입니다.

    글 내용을 정말 흥미롭게 읽었고, 저도 자주 이용했던 사이트라 개발자님께 감사함을 표합니다.

    전적이나 빌드오더 분석기능 외에도 바코드(IIIIIIIIIIIIIII)닉네임을 추적할 수 있게 되는 소소한 기능도 있었지요.

    저는 그 중에서 Starlog.gg에서 다른 유저의 빌드를 공유하는 기능이 흥미로웠는데요.

    저는 실시간으로 업데이트 되는 유저들의 빌드를 토대로 AI를 만들어 보려고 합니다.

    혹시 실례가 안된다면 빌드오더의 기록을 열람하는 방법을 공유해주시면 정말 감사하겠습니다!

    1. 지금은 안될것 같아요.. 예전에는 모든 사용자의 리플레이 데이터에 접근할 수 있었고,
      bwchart 라는 프로그램을 통해 리플레이 데이터를 분석해서 빌드오더를 분석해서 보여준 것이었습니다.
      즉 간편하게 사용할만한 빌드오더 API 같은 것이 없고, 빌드오더 추출 작업도 번거롭고, 가장 중요한 사용자들의 리플레이 데이터 접근 방법을 모릅니다.(한번 패치되서 막힘)

  6. 와! 스타로그 개발자 블로그다

    이거 엄청 자주 이용했엇는데

    글만봐도 엄청난 능력자라는걸 알수있네요

    가끔 여기 데이터자료 인용해서 커뮤니티 글올리고 인기글도 자주갔었음ㅎㅎ

    여건이되서 다시 오픈하면 좋겠네여

    1. 안녕하세요? 안정적인 API가 제공된다면 다시 열수도? 있습니다.
      요즘엔 하스스톤 사이트 만들어보려고 기술 검토하고 있어요.

  7. 어느순간부터 안되더니 그런사정이 있었군요 그동안감사했습니다 센세

    1. 어느덧 닫은지 1년이 되었고, 추억이 되었네요..

  8. 블리쟈드가 4월에 공언했는데 혹시 이루어 지셨나요?
    아마 안되셨겠죠.
    블리쟈드 서버관리도 못하는데 뭘 해줬겠습니까..
    국내 토론장에서 떠드는건 아무 의미도 없는거같네요
    영어를 더 공부해서 제 의견을 정확히 피력할 수 있을만큼 실력을 만들어서
    해외토론장에서 열변을 토해야겠네요..
    정말 스타1을 사랑하고 아끼는 유저로서
    앞서서 해야할걸 뒷전으로 미루는 행태를 보면 열불이 날수밖에 없네요..
    색깔 많이만들고 종족선택 안하면 고 안되게 하는것보다
    api 만들어서 스타로그 사이트 만드는것과 클랜시스템을 구축하는게
    훨씬 더 중요한 일인데
    그것들이 우선과제에서 ㄷ ㅓ아래에 있다는게 답답합니다.

    1. 아무래도 저도 많이 안타깝습니다.

  9. 무엇을 하시던지 응원합니다. 감사합니다.^^

  10. 블리쟈드가 api관련해서 뭐 만든거같긴 하던데
    그 블리쟈드 사이트 맨아래 api라고 칸이 하나 있는거같긴 하더라구요.
    예전부터 있던건지 아닌지
    여기 주인장님이 필요한 데이터인지 아닌진 모르겠지만
    혹시나 해서 알려드립니다!

    여전히 클랜시스템은 안만들고있어요..

    1. 참고해보겠습니다. 감사합니다!

  11. 고생하셧습니다.
    저도 개발자의길을 걷고
    이사이트를 자주이용했엇는데
    이런사연이있었군요.
    아쉽네용 ㅠㅠ
    아무튼 서비스 열어주셔서 감사햇습니다

    1. 저도 아쉬워요.. 많은 기획과 디자인과 노력을 한 작품이었는데..
      틈틈히 blizzard api 사이트를 들어가보기는 하는데, 아직 api 가 나올기미가 없는것 같네요. direct 로 개발팀에 메일을 보내야하려나..

  12. 와.. 이글을 이제야 봤었네요ㅠ

    스타로그가 있어서 천상계의 빌드오더도 보고 제 전적도 체크하면서 더 재밋게 래더를 했었어여!

    지금은 없어져서 너무너무 아쉽지만 너무너무 감사했습니다!!

    1. 이용해 주셔서 감사했습니다!

  13. 아 블리자드가 개설한게 아닌 개인이 운영한 거였구나

    신세더럽게 졌습니다 오너

    짧은시간이었는데 사이트가 있어서 매우 고마웠어요

    2020년엔 더 멋있는 분이 되길바랍ㄴ다

  14. 이걸 이제야 봤네요.. 정말 사이트 이용하면서 신세많이졌습니다 덕분에 스타도 더 재미있게 즐긴거같습니다 감사합니다!!

  15. 개인이 하신건 알았지만 블리자드가 막은건줄알았는데 그건 아니엇군요…
    많이아쉽긴하지만 고생 많으셨습니다. 감사합니다.

  16. 와.. 스타로그 개발자님의 블로그라니.. 그리고 1년전까진 답글도 직접 달아주셨네요..

    덕분에 사람들이 각점수대에 실제 저그 테란 프로토스의 맵승률이라던지 밸런스라던지

    게임을 즐기면서 관심을 가지는 요소에 대해서 정말 보기 쉽고 편하게 접근할 수 있어서 너무 좋았습니다..

    재밌게 이용했던 사이트였는데 .. 지금은 그런 사이트가 없는게 너무 안타깝습니다.. (꽃이 지고난뒤에야.. 그게 꽃인줄 알았다..ㅠㅠ)

    그때 정말 유익한 사이트 운용해주셔서 너무 감사합니다..!!

    1. 원래 댓글 답변을 거의 하는데, 작년에 블로그를 조금 쉬었습니다.
      혹시 모릅니다. 스타로그사이트가 갑자기 부활을 할지도..

  17. 요즘 스타가 인터넷방송을 통해서 흥행하고 있는데 스타로그 사이트가 있다면.. 하는 아쉬움이 남네요.
    사이트의 한 카테고리를 스타방송인들로 할애해서
    가중치를 넣어서 자동으로 티어승급 강등 등을 해도 좋을 것 같구요.
    펨코에 보면 스타 인원현황표나 스타 대학현황 등이 조회수가 600만, 500만 입니다.
    일간 스타방송 시청자도 많구요.
    광고를 달거나 후원을 모집해도 괜찮을 것 같습니다.
    현재 스타방송인 랭킹에 대해 말도 많아서요.
    혹시 부활 생각 중이시면 참고 하시면 좋을 것 같습니다.

  18. 좋은 추억이 많습니다. 스타로그의 부활을 진심으로 기원합니다.

  19. 꼭 부활했으면 하는 프로그램입니다
    덕분에 감사했습니다!

  20. 부활했으면 좋겠군요
    저도 스타로그 많이 이용했는데 없어져서 정말아쉬웠음
    저는 bwchart랑 scrchart도 많이 사용하는데
    스타로그될때도 많이봤어요 검색만되면 전프로게이머나 고수 리플도 볼수있어서
    그런게 좋았던것도있고 또 자기 전적에서 종족전별로 나눠서 전적볼수있는게 굉장히 좋았음
    굉장히 좋앗는데
    어떻게보면 게임을 즐기는것을 더 재밌게 즐기게 해주는 요소였죠
    그래서 그게 없어지고나서 스타에대한 재미가좀 떨어진게 많은데
    근데 또 갑자기 부활할지도 모른다고 암시를주셨네요
    꼭부활하길 바랍니다

    아 참고로 https://repmastered.app/ 리플레이올라오는 사이트가 있는데
    이곳에서 래더게임 리플이라던지 고수나 프로게이머 리플이 올라오는게 신기하더군요
    혹시 아시나 해서 언급하는겁니다 아마도 저런사이트도 리플레이 데이터를 접근하는방법에대해
    관련이 있지않을까 싶어서요
    저는 잘모르지만요

    1. 안녕하세요. 좋은 사이트를 추천해주셔서 감사합니다.
      해당 리플레이사이트 구성을 보니까 리플레이를 사람들이 수동으로 업로드하는것 같습니다.
      그 후에 실시간으로 bwchart 돌려서 표시하네요. 그래서 사이트가 많이 느리네요. 채팅이나 커맨드 보여주는 칸도 있던데, 저는 개인정보보호를 위해서 뺐습니다.
      생각난 김에 스타크래프트 리플레이를 추출할수있는 방법을 다시한번 살펴보아야겠네요.

HYEONG HWAN, MUN에 답글 남기기 응답 취소

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

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>
*
*