온라인 게임 뿐 아니라 모바일 게임, 아니 네트워크를 사용하는 게임에서 '서버'는 아주 중요합니다. 더욱이 실시간으로 네트워크에 접속해 데이터를 주고 받은 형식의 모바일 게임들이 많아지면서 모바일 게임들의 서버 안정화는 더욱 중요한 이슈가 되고 있습니다. 유저들이 가장 싫어하는 오류 메시지중 하나도 '서버와의 접속이 끊어졌습니다.'는 것일 만큼요.

재미있는 게임은 유저가 몰리기 마련입니다. 그러다보면 개발사측에서 예상했던 수치를 훨씬 웃도는 유저들이 몰려 결국 서버가 과부하를 견디지 못하는 경우도 있습니다. 서버가 안정치 못하면 많은 유저들이 불만을 토로합니다. 그리고 그 사태를 빠르게 수습하지 않는다면 게임이 하락세를 타는 이유가 되는 경우도 종종 있지요.

그래서 많은 개발사들이 서버 안정화에 들이는 노력은 상상 이상입니다. 그럼에도 불구하고 쉽지가 않은 것이 바로 '서버 안정화'입니다. 고생끝에 서버가 안정을 찾았다 하더라도 그에 들어간 기술적인 정보, 노하우는 회사의 가치이자 재산이기 때문에 공개하기가 쉽지 않습니다.


이런 서버 안정화에 대해 많은 관심을 받고 있는 개발사가 바로 데브시스터즈입니다. 아마존 웹서비스를 선택한 데브시스터즈의 '쿠키런'은 서버에 문제가 생겨도 상당히 빠른 시간내로 해결이 되곤 합니다. 유저들의 신뢰까지 얻은 쿠키런의 서버는 이미 많은 스타트업이나 개발사들의 관심을 받고 있습니다.

데브시스터즈는 이런 노하우를 숨기지 않았습니다. KGC, NDC등의 컨퍼런스에서 자신들이 서버를 운영하며 겪었던 사례들을 소개하고, 기술적인 조언도 아끼지 않는 강연을 여러차례 진행한 바 있습니다. 과연 '쿠키런' 서버를 운영하면서 어떤 일들을 겪었을까요? 직접 데브시스터즈로 찾아가 이야기를 들어봤습니다.

좌측부터 데브시스터즈의 박주홍 책임연구원, 홍성진 팀장, 김민우 수석연구원


먼저, 자신에 대해 간단한 소개를 부탁합니다.

홍성진 : 저는 데브시스터즈 서버팀의 팀장을 맡고 있는 홍성진입니다. 데브시스터즈는 직급에 대한 체계가 없다보니, 포지션이 좀 애매합니다. 주로 팀원들은 서포트해주는 역할을 맡고 있습니다.

박주홍 : 저는 서버개발팀의 박주홍입니다. 데브시스터즈 서버팀에는 두번째로 합류한 엔지니어입니다. 지금은 주로 개발과 운영을 담당하고 있습니다.

김민우 : 데브시스터즈에 온지는 한 7개월쯤 되었습니다. 데브시스터즈의 김민우입니다. 이전에는 스타트업 멤버로 있다가, KT에 회사가 합병되고 자회사가 되었는데 홍성진 팀장님의 소개로 합류하게 됐습니다. 현재는 게임서버 개발에 대한 전반적인 업무를 맡고 있습니다.


데브시스터즈는 이미 쿠키런으로 잘 알려진 회사입니다. 쿠키런의 성과는 어느정도인지, 서버팀에서 생각하는 성공요인은 무엇이라고 생각하나요?

홍성진 : 일단 쿠키런은 한국, 일본, 태국 등 10여개국에서 다운로드 1위를 달성한 적이 있고, 현재 누적 다운로드수는 5천만건정도 됩니다. 현재도 전세계 기준으로 천만에 가까운 DAU를 유지하고 있습니다. Top 10안에 들었던 국가은 한 38개국쯤 됩니다.

쿠키런의 성공 이유라… 음, 뭐 게임이 완전히 성공한 이유에 대해서는 게임의 흥행성이나 여러가지 측면이 있겠지요. 저희는 서버팀이라 클라이언트를 개발하신 분들 만큼의 시선을 가지고 있지는 않지만, 쿠키런의 인기 비결은 꾸쭌한 운영의 효과가 컸다고 생각합니다.

실제로 게임을 출시한 이후 오히려 사용자가 늘어났습니다. 2시즌 패치를 하면서 더 많이 늘어났어요. 작년 말 크리스마스때도 상당히 유저들이 많았습니다.


박주홍 책임연구원
박주홍 : 사용자가 계속 돌아오는 게임을 만들 수 있었떤 데는 지속적인 콘텐츠 업데이트와 스마트한 운영의 역할이 컸다고 생각해요. 제일 큰 비결이라고 하면, 회사의 모든 멤버들이 '사용자들에게 뭘 만들어주면 재미있을까'하고 항상 고민을 하고, 거의 매 주 마다 밤새다시피하며 게임을 업데이트하는 열정이 있기 때문에 가능하지 않았나 싶습니다.

- 그렇다면 신규 콘텐츠나 기능에 대해 개발 속도가 굉장히 빨랐을 것 같아요.

박주홍 : 속도에 대해 한가지 예시를 들자면… 점심이나 아침을 간단히 먹으면서 기획을 이야기합니다. 그리고 바로 개발에 착수하죠. 그리고 저녁때쯤이면 개발이 끝나있고, 새벽이 넘어가는 순간 업데이트를 하고 공지도 올리고 이런식으로 업데이트를 빠르게 적용한 적도 있어요.(웃음) 그래서 유저들한테 좋은 반응을 얻었던 것 같습니다. 제가 회사에 합류하면서 가장 인상 깊었던 부분이기도 하고요.

김민우 : 저는 쿠키런이 좋은 성과를 거두고 있을때 회사에 조인을 해서 사실 잘 모르겠습니다. 그래도 게임이 재미있는게 가장 큰 성공요인이 아닐까요? 성공이라는 열매를 얼마나 오래 거둘 수 있느냐는 운영과 속도가 좌우한다고 생각합니다. 장애나 버그가 없는 건 아니지만, 빠르게 업데이트하면서 문제를 해결해 나가는게 오래 유지할 수 있는 비결이 아닐까요.


쿠키런은 아마존 웹 서비스(AWS)로 서버를 운용하고 있는데, 왜 AWS를 선택했나요?

홍성진 : 지금이야 데브시스터즈에도 서버팀이 있고 인원이 많아졌지만, 서비스 초기만해도 저 혼자뿐이었어요. 혼자서 서버에 관한 모든 관리를 할 수 밖에 없었어요. 그래서 AWS를 선택한 게 가장 큽니다. 제가 서버 운영자라기보다는 개발자이기 때문에 어떻게 해서든 가장 효과적으로 관리할 수 있는 방안이 필요했어요.

그래서 아마존을 선택했습니다. 오토스케일이나 아마존에서 제공하는 부가기능이 잘 맞았던 것도 있고요, 당시에는 클라우드 서비스 중에서 아마존 만한 완성도를 가진 서비스가 없었습니다. 실제로 운용해본 결과 물리적인 IDC를 선택하는 것에 비해 속도나 안정감에도 큰 차이가 없었고요. 그래서 아마존 웹서비스를 이용하게 됐습니다.

AWS를 이용하여 서비스를 하면서 좋은 성과를 거둔 사례가 있다면 소개를 부탁드립니다.

홍성진 : 일반론적으로 이야기하자면 일단 물리적인 서버를 운용할 때보다 좀 더 안정적으로 서버를 운용할 수 있었습니다. 자유자재로 서버를 늘릴 수 있어서 과부하를 유발할 수 있는 이벤트를 부담없이 진행할 수 있었어요. 쿠키런은 매주 일요일 저녁 9시에 전체 랭킹이 초기화됩니다. 다른 게임들은 보통 월요일 새벽 6시나 사람이 없는 시간을 선택하죠.

가장 치열하게 경쟁하고 접속자가 많은 시간이 일요일 저녁입니다. 데이터를 정산하고 초기화하는 작업 자체가 서버에 부담을 크게 줄 수 있기에 다른 게임들은 대부분 이 시간대를 피합니다. 그래도 쿠키런은 과감히 이 시간대를 선택했어요. 초기에는 여러번 장애도 있었지만, 아마존을 통해 이런 부분에 효과적으로 대응할 수 있었다고 생각합니다.

치열한 경쟁의 끝, 그리고 새롭게 시작되는 랭킹전을 치고 나가는 재미를 유저들에게 제공하고 싶었습니다. 그 시간대가 유저들이 가장 많이 몰리는 주말 저녁을 잡았다는 것 자체가 굉장히 어려운 일입니다. 운영 리스크를 감수하면서 기술적으로 풀 수 있었던 것 같아요. 이 부분은 글로벌 런칭을 하면서도 고집있게 밀고 있는 부분이고, 쿠키런이 성공한 가장 큰 요소중 하나라고 생각해요.



김민우 수석연구원
박주홍 : 시즌 3를 맞이하면서 대규모 업데이트를 하니 유저들이 엄청 몰릴거라고 예상해 서버를 충분히 증설했었어요. 그런데 막상 업데이트하니까 유저들이 저희 예상보다 더 많이 몰리는 시간대가 있었습니다. 기존 IDC에서 데이터 센터를 유지하는 경우, 유저의 피크치를 예상하고 서버를 증설해놓습니다. 저희도 아마존을 이용해 대비를 했었죠. 그런데 생각보다 엄청나게 유저가 몰리더라고요.

IDC를 이용하면 서버를 늘리고 줄이고 하는 일이 쉽지가 않아요. 하지만 아마존은 쉽게 서버를 증설하거나 줄일 수 있기 때문에 좀 빨리 대응할 수 있었던 것 같아요. 업데이트날이 곧 매출이 많이 나는 날이기에 아주 중요하거든요.(웃음)

김민우 : 저도 물리적으로 서버를 다뤄본 경험이 많기에 서버를 중단시키지 않고 업데이트를 진행하는게 쉽지 않다는걸 잘 압니다. 그런데 아마존은 이게 가능하다보니까, 많은 업데이트를 빠르게 제공할 수 있었던게 제일 좋았던 것 같아요.


그러고보니 혼자서 모든 것을 해결하기 위해 아마존을 선택하셨다고 하셨는데, 1인개발자나 스타트업들에게도 충분히 추천할 만한가요?

홍성진 : 당시에는 제가 혼자라 어쩔 수 없이 선택한건데, 지금은 서버팀이 8명입니다. 서버팀이 커져도 효과가 있다고 생각해요. 서버를 관리하는 사람들 없이 개발자들이 바로 코딩하고 업데이트를 할 수 있는 정도니까요. 요즘 데브시스터즈는 각각 이벤트를 나눠 기획하고 구현하고 적용시키고 그럽니다. 하루에 많으면 3-4번씩 업데이트가 진행되기도 해요.

아마존을 이용하면 그렇게 빠르게 기능을 서버로 올릴 수 있기 때문에, 개발자들도 기능 추가에 대한 저항이나 스트레스가 거의 없는 편입니다. 사실 저도 처음에는 거의 AWS를 사용해보지 않았어요. 한달 반 정도에 걸쳐서 쿠키런 서버를 세팅했습니다. AWS에 대한 지식이 없다 하더라도 한 달 정도 공부를 하면 충분히 활용하실 수 있을거라고 봅니다.

아마존에 최적화된 효율적인 서버구조를 만들기 위해서는 시간이 좀 걸리겠지만, 여러가지 핵심 기능은 짧은 시간안에 공부해서 적용할 수 있기에 추천해드리고 싶습니다.


요즘은 모바일 게임에도 데이터 분석이 필수적인데, AWS를 통해서 빅데이터 분석을 하신다고 들었습니다. 어느 부분이 효과적인지 궁금하네요.

홍성진 : 저희는 게임 로그가 많이 남는편입니다. 전체로 따지자면 하루 평균 600기가정도가 남는 것 같아요. 국내만 치더라도 대충 200기가정도 남는데, 이정도 용량이면 분석을 하지 않고 로그만 남겨도 비용이 상당히 많이 듭니다. 요즘에는 데이터 분석을 통해 새로운 기능을 넣는 경우가 많아 일단은 다 저장하고 있습니다.

김민우 : 저희가 남기고 싶어서 200기가씩 남기는게 아니고, 아주 필수적인 데이터만 남겨도 거의 200기가에 달합니다. 이건 일반적인 데이터 분석을 할 수 없어요. 분석하는 걸 물리서버로 하면 클러스터를 구성해서 분석해야 하는데, 하려면 제가 IDC에 가서 일주일 내내 작업해야합니다. 데이터를 옮겨 분석작업을 해야하는데, 아마존이라면 좀 편하게 할 수 있어요.

200기가나 되는 데이터는 일반적인 쿼리방식으로는 분석하기가 불가능합니다. 데이터가 너무 크기 때문에 어쩔 수 없이 빅데이터 분석 기법을 사용해야 하는데, 아마존이 그런 부분에서 편리합니다. 원하는 만큼 서버를 띄울 수 있어서 데이터 분석도 굉장히 빠른 편이에요.


너무 딱딱한 질문만 한게 아닌가 싶네요. 그럼 좀 편한 질문으로 넘어가보죠. 쿠키런을 오래 서비스하셨던 만큼, 기억에 남는 사건도 많으셨을 것 같은데요.

홍성진 : 쿠키런을 오래 플레이하는 분들이라면 기억하실지 모르겠네요. '인삼대란' 사건이 제일 기억에 남네요. 신규 보물로 '인삼'이라는게 있었습니다. 업데이트를 이틀 밤을 꼬박 새서 했어요. 그런데 테스트 도중 이게 아이폰에서는 문제가 있었습니다. 그래서 iOS는 바로 출시할 수 없었어요.


문제의 인삼.
기왕 만들었는데 유저들이 써봐야 하지 않겠냐. 그렇게 생각해서 일단은 안드로이드 유저들이라도 쓰게하자는 결정을 내리고 업데이트를 했어요. 아이폰에서는 뽑히지 않도록 잠시 막아두고, 기능을 체크하고 있었어요. 그런데 막상 업데이트하고보니 유저들이 '인삼'이 너무 좋다고 다들 너도나도 뽑으려고 하는거에요.

수백만원을 쓰고도 인삼을 못 뽑았다고, 이거 안나오는거냐고 유저들이 글을 여기저기 올리기 시작했어요. 아침 8시쯤 업무를 끝내고 이제 좀 쉬려고 가려고하는데, 이대로 두면 큰일날 것 같다고 연락이 와서 다시 모여서 어떻게 할 지 고민했습니다. 결국 결제한 사람들은 모두 환불조치를 하는게 옳다는 판단을 내렸습니다. 그래도 뽑은 보물은 그대로 쓸 수 있도록하면서, 과금액은 모두 돌려주자고요.

사용자들에게 공지도 하고, 사과도 하고… 가장 인상깊었던 사건이긴합니다. 그래도 그 이후에 많이 칭찬받았습니다. 하루만에 마무리된 사건이긴한데, 이거때문에 이틀 밤샐 걸 삼일을 새서 더 기억에 남는 것 같아요.(웃음)

박주홍 : 저도 기억에 남는 사건이 있네요. 초창기에 일어났던건데, 사건이라고 하기도 뭐하고… 아무튼 당시 하트를 주고 받는 시스템이 좀 문제가 있어서 약간 느렸습니다. 보내는데 오래걸리고 받는데도 좀 느리고요. 그래서 개선을 위해서 하트보내기를 막아야 하는 때가 있었어요. 일시적으로 하트 보내기를 하지 말아야한다고 이야기하니까, 기획팀에서 뜻밖에 아이디어를 내더라고요.


쿠키런의 '눈설탕 쿠키'
그냥 하트없이 유저들이 게임을 할 수 있으면 되니까, 하트가 소모되지 않도록 하자는겁니다. 그래서 '무한하트' 이벤트를 진행했지요.(웃음) 이벤트를 진행하니까 유저들의 반응도 좋고, 우리도 굳이 서버를 내리지 않고 기능을 개선할 수 있었습니다. 데브시스터즈는 문제가 생겼을 때 여러가지 방법으로 풀어보려고 하는게 좋은 것 같습니다. 서버팀의 문제를 기획으로 푼다던가하는 시도가 정말 좋은 것 같아요.

김민우 : 전 눈설탕 쿠키때가 기억납니다. 밸런스에 문제가 있어서 좀 수정을 해야 했는데. 그러면 기존에 구입했던 유저들이 불만이 있을 것 같았어요. 그래서 쿠키를 가지고 있는 유저들에게는 다시 크리스탈을 돌려주는 이벤트를 했었죠. 기존에 샀던 유저들도 불만이 없고, 공짜로 크리스탈을 얻은 유저들은 좋아하기도 하고요.


이야기를 들어보니, 데브시스터즈의 업무 분위기, 혹은 문제 해결 방법에 상당히 흥미가 가는데요.


홍성진 팀장
홍성진 : 일반적으로 서버팀, 혹은 운영하는 입장이 리스크를 최소화하는 경우가 많아요. 서버가 다운이 되면 이거는 누군가가 책임을 져야 하는 부분이라서…절대로 서버가 문제가 생길 수 있는 부분을 피하려고 합니다. 좀 전에 이야기한 랭킹전의 정산시간도, 일반적으로는 절대 피해야할 결정이지요. 그런데 데브시스터즈는 정말 도전적이라 좋은 것 같습니다.

유저들에게 더 즐거운 경험을 제공하기 위해 도전적인 결정을 많이 합니다. 그리고 장애가 있다 하더라도 서로의 믿음이 강합니다. 뭔가 문제가 있을 때, 서로 믿고 해결하려고 합니다. 서버의 문제가 있다면 굳이 서버팀에서 해결하려고만 하지 않고 기획적으로 풀어서 해결한다던가, 뭔가 새로운 기획이 있으면 서버팀이나 클라이언트팀이 풀어본다던가하는 도전적인 시도가 많아요.

매번 어떤 문제가 생기면 치열하게 토론을 합니다. 토론을 하는 와중에도 서로에 대한 배려나 신뢰가 깔려있다는 느낌을 많이 받아요. 어떤 문제가 생기면 핵심 논점에만 집중하고 서로 적극적으로 문제를 해결하기 위해 많은 토론을 하는 편입니다. 가끔은 오전에 시작한 토론이 오후 늦게, 혹은 한밤 중에 끝나기도 해요.(웃음)


그렇다면 데브시스터즈가 이렇게까지 성장할 수 있었던 원동력이 뭐라고 생각하시나요?

홍성진 : 데브시스터즈의 궁극적인 목표는 '전세계 사용자들이 즐겁게 플레이할 수 있는 게임을 만들자'입니다. 전세계 사람들을 즐겁게 해주고 싶다고 할까요? 최대한 많은 사람들이 우리가 만든 게임이나 콘텐츠를 통해 즐거움을 느꼈으면 좋겠다는 공동적인 목표를 가지고 있습니다.

기획이나 개발, 서버 모두 한 마음으로 협력해서 사용자들을 중심으로 재미있는 서비스를 제공하기 위해 노력하고 있습니다. 그래서 서로 이야기도 많이 하는 편이고, 서버팀의 경우는 기술적으로 빠르고 효과적으로 대처할 수 있는 인프라를 갖추려고 노력하고 있어요. 상호 배려와 이해, 그리고 도전적인 선택이 데브시스터즈의 원동력이라고 생각해요.


마지막으로 쿠키런을 즐겨주시는 유저분들에게 서버팀으로 한 마디 각오를 부탁합니다. 예를들어 다시는 서버 문제가 없도록 하겠다거나…

홍성진 : 솔직히 워낙에 돌발 상황이 많다보니까 '문제가 없게 하겠다!'고 약속을 드릴 순 없을 것 같아요. 하지만 뭔가 문제가 생긴다면 빠르게 수정할 수 있도록 할 거라고 말씀드리고 싶네요. 뭔가 서버에 문제가 생겼다, 그럼 시간이 언제든지 저희가 항상 대기하고 있다고 보시면 됩니다.(웃음)

그리고 쿠키런을 재미있게 즐겨주셔서 감사하다고 전하고 싶습니다. 저희가 계속 업데이트를 하고 앞으로도 항상 쿠키런을 메인으로 운영하기에 이것저것 많은 업데이트를 기획하고 있으니 기대해주셨으면 좋겠습니다.

쿠키런 서버에 문제가 생기면, 이 분들이 바로 전투태세에 들어갑니다!