본문 바로가기

Home > 정보마당 > 공개SW 활용 성공사례

공개SW 활용 성공사례

모바일과 공개SW라는 대세에 따른 적극적인 행보 펼쳐


스마트폰의 등장으로 새로운 전기를 맞이한 모바일 시대는 그 영향력을 미치지 않는 곳을 찾기 어려울 정도로 세상을 변화시켰다. 게임 산업 역시 이러한 변화에서 예외가 아니며, 가장 기민하게 움직이고 있는 분야 중 하나로 꼽힌다. 게임 시장의 열기는 온라인 게임에서 모바일 게임으로 옮겨가고 있고, 지하철이나 버스에서 짬짬이 스마트폰으로 게임을 즐기는 모습은 이제 일상 속에서 흔히 마주치는 풍경이 됐다.
게임 업계의 경쟁도 치열하다. 서비스가 고도화될수록 요구되는 인프라는 확대되고 있고, 고객들의 콘텐츠 소비 패턴 또한 점점 더 빨라지고 있기 때문이다. 글로벌 모바일 게임 기업인 컴투스는 효율적이고 유연한 공개SW 기반 시스템 확보에 적극 나서고 있다.

- 기     관 컴투스
- 수행년도 2011년(게임 서버), 2013년(DB 모니터링)
- 도입배경 IT 인프라 규모 확대, 서비스의 질적 향상
- 솔 루 션 Android(안드로이드), CentOS(센트OS), Memcached(멤캐시드), MySQL(마이SQL), Nginx(엔진X), PHP, Redis(레디스), Scribe(스크라이브), Zabbix(재빅스)
- 도입효과 : 비용 절감 및 벤더종속성 탈피, 시스템 구축 유연성 확보

컴투스는 2세대 이동통신(2G)의 상용화에 따라 국내 시장에 휴대폰이 보급되기 시작하던 시기인 1998년에 설립됐다. 과거 피처폰 시절에서부터 현재 스마트폰 시대에 이르기까지 휴대폰용 게임을 전문적으로 개발 및 서비스, ‘미니게임천국’, ‘액션퍼즐패밀리’, ‘홈런배틀’, ‘컴투스프로야구’, ‘타이니팜’, ‘골프스타’ 등 다양한 장르에서 히트작을 내놓으며 대표적인 모바일 게임 기업으로 자리매김했다.


지난해에는 모바일 낚시 게임 ‘낚시의 신’과 모바일 RPG ‘서머너즈 워: 천공의 아레나’의 연이은 흥행으로 큰 폭의 성장을 기록한 바 있고, 특히 이 게임들은 전 세계 40개 이상의 구글 플레이스토어에서 ‘2014년 최고의 게임’ 중 하나로 선정되기도 했다. 컴투스는 미국, 중국, 일본에 이어 최근 대만에도 지사를 설립하면서 글로벌 시장 공략에 박차를 가하고 있다.




▲ 서머너즈 워: 천공의 아레나


성장한 만큼 요구된 인프라 확충

컴투스는 이러한 자사 서비스의 성장에 따라 IT 인프라의 확대가 불가피한 상황에 직면하게 됐다. 게임 서버부터 대규모 확충이 요구됐는데, 상용SW를 이용하게 되면 라이선스 비용이 크게 증가할 것으로 예상되면서 공개SW 도입을 검토하게 된 것이다. SW 저작권사의 라이선스 정책이 명확하지 않거나 변동되는 경우도 발생하고 있어, 저작권 침해에 따른 위험을 예측하기 어렵다는 점도 고려했다.


이에 따라 컴투스는 2011년부터 게임 서버 구축 시 ▲서버 운영체제(OS)로 리눅스 센트OS(CentOS) ▲데이터베이스 관리시스템(DBMS)으로 MySQL ▲실시간 로그 수집 시스템인 페이스북 스크라이브(Scribe) ▲메모리 캐싱 솔루션인 멤캐시드(Memcached) 및 레디스(Redis) 등을 도입하기 시작했다.


DBMS의 경우 모바일 게임의 특성에 따라 작은 패킷을 다량으로 처리하는데 적합하고 PHP 언어와의 궁합도 우수하다는 점에서 MySQL을 선택했다. 멤캐시드와 레디스는 사용목적에 따라 각각의 기능을 활용하며, 스크라이브는 로그 수집 및 분석에 편의성을 제공한다.


그 결과, 수십 대였던 서버 수가 수십 배 증가했고 서버 스펙도 4코어에서 최대 48코어로 늘어났지만, 공개SW 활용을 통해 연간 약 5억 원의 비용을 절감하고 있다는 것이 컴투스의 설명이다. 글로벌 2,000만 다운로드를 돌파한 ‘서머너즈워’ 등에서 발생하는 대규모 트래픽도 모두 공개SW 기반 서버에서 처리하고 있다.


아울러, 일시적인 트래픽 급증에 따른 긴급대응, 빠른 라이프 사이클에 따른 구축 유연성 등 원활한 서비스를 위한 기반을 한층 강화하는 효과도 거뒀다. 벤더 종속성에서 탈피, 자유롭게 다양한 시도가 가능해졌음은 물론이다.



공개SW 도입해 자체 개발 시스템과 연동



▲ 컴투스의 DB 모니터링 시스템 구조


컴투스는 안드로이드, MySQL, 재빅스(Zabbix) 등을 활용해 데이터베이스(DB) 모니터링 시스템도 2013년 개발해 운영하고 있다. 모니터링 시스템에 상용SW를 사용할 경우 라이선스 관리 대상인 서버 수에 따라 비용을 지불해야하는데, 게임 산업의 특성상 저사양(x86) 서버를 다수 운영하는 환경이므로 이 같은 체계는 비효율적이기 때문이다.


또한, 상용SW의 경우 다수의 DB 서버 성능을 모니터링하는 기능이 제공되지 않거나, 제공되더라도 DBA들이 원하는 데이터를 추가하거나 수정하는 것이 쉽지 않았으며, 모니터링에 감지된 내역을 관리자들에게 알릴 수 있는 방법에도 제약이 있었다. 반면, 공개SW는 소스와 동작 방식이 공개돼 있으므로 부족한 기능의 보완 및 다른 시스템과의 연동이 수월해, 효과적으로 업무에 접목시켜 활용이 가능했다.



이에 따라 구축된 컴투스의 DB 모니터링 시스템에는 공개SW의 도입뿐 아니라 자체 개발한 부분도 반영돼있다. 각 서버 데이터의 수집 및 저장에는 재빅스의 에이전트와 서버를 그대로 사용하고, DB 서버의 상태와 성능이 모니터링될 수 있도록 에이전트가 실행할 수 있는 스크립트를 추가했다. 이로써 서버 수량에 관계없이 모니터링의 자동화가 가능해졌고, 모니터링 UI도 자체 개발한 웹 UI로 대체해 접근 권한을 부여함으로써 각 서버별 원하는 데이터를 조회해 활용할 수 있게 했다.


더불어, 기존의 임계값 확인에 대한 기능도 보완, 정해진 임계값을 초과할 경우 자체 개발한 스마트폰 앱을 통해 담당자에게 푸시 메시지가 발송되고, 일정시간이 지나도 조치가 취재지지 않으면 SMS를 발송하는 시스템도 개발했다. 이 앱은 웹 UI를 간소화시킨 버전으로, DB 서버 상태와, 어떤 서버에 어떤 임계값이 초과됐는지, 담당자가 배정돼 조치되고 있는지 등을 확인할 수 있다.



공개SW 활용을 통한 서비스 품질 제고

이밖에도 컴투스는 정적 파일을 대량으로 전송하는 미디어 전송 서버를 엔진X(Nginx)로 구축했다. 오리진 서버 2대와 리버스 프록시 서버 5대, 그리고 중국 지역의 네트워크 특성을 고려한 현지의 리버스 프록시 서버 2대로 구성돼있다.


또한, 셰프(Chef)를 이용해 서버 구성을 자동화 및 표준화 할 수 있는 환경도 구축했다. 대다수 서버의 구성 변경 작업을 자동화해 업무 생산성을 개선했으며, 서버 구성의 차이로 인한 문제 발생 가능성 및 관리상 문제를 해소했다.


향후 컴투스는 기존 시스템을 고도화하는 한편, 모바일 게임에서 발생하는 빅데이터의 수집 및 관리를 위한 인프라도 마련할 예정이다. 현재 검토 중인 솔루션으로는 엘라스틱서치(ElasticSearch), 플루언티드(Fluentd), 카프카(Kafka), 몽고DB(MongoDB), 스톰(Storm), 주키퍼(Zookeeper) 등이 있다. 데이터의 분석 및 활용을 통해 컴투스 모바일 게임을 이용하는 고객에게 더 나은 서비스를 제공한다는 방침으로, 이를 위해 앞으로도 공개SW를 적극 도입 및 활용할 계획이다.



[인터뷰] “적극적인 공개SW 도입 및 활용 통해 서비스 품질 제고”

컴투스 개발본부 유기정 책임, 오상범 차석


컴투스 개발본부 유기정 책임

공개SW를 도입할 때 어려웠던 점은?


컴투스의 사내문화가 문제해결에 있어 특정한 틀에 갇혀있지 않기 때문에, 공개SW를 도입하는 과정에서 내부적인 어려움은 없었다. 다만, 각 공개SW를 어떻게 조합해 전체 시스템을 설계할 것인지에 대한 연구 및 협의가 필요했으며, 구축된 시스템의 운영 절차 확립도 요구됐다.


기술적인 부분에서는 원하는 시스템을 구축하기 위해 공개SW의 동작방식부터 이해할 필요가 있었다. 공개SW는 이해도에 따라 활용할 수 있는 범위가 달라질 수 있고, 구축하려는 환경에 적합한지 사전에 충분한 검토가 이뤄져야 되기 때문이다. 이를 위해 공개SW 기술 문서와 커뮤니티를 통해 관련 정보를 수집했고, 구현하고자 하는 기능들에 대한 단위 테스트로 검증도 실시했다.



컴투스 개발본부 오상범 차석

모바일 게임사로서 공개SW 도입 및 활용에 차이점이 있다면?


모바일 게임사라고 해서 PC온라인 게임사와 그리 다르진 않다. 게임 산업은 다른 산업에 비해 상대적으로 저사양(x86) 서버 또는 클라우드 서버를 다수 운영하는데, 이런 특성은 공개SW를 도입하는데 도움이 된다. 보다 쉽게 도입을 시도할 수 있고, 적합하지 않아 폐기하는 경우의 부담도 덜한 편이다.


그렇다고 무턱대고 도입해서는 안 된다. 현재 개발되는 수많은 공개SW 중에는 검증되지 않은 것들도 있기에 이를 가려서 선택할 수 있어야 하고, 행여 잘못됐을 시 원상 복구할 수 있는 방안도 미리 마련해놔야 한다.


무엇보다 자사 환경에 맞는지 검토해야 한다. 예를 들어 모바일 게임에는 특성상 일시적으로 트래픽이 몰리고 빠지는 경우가 잦은 편인데, 다른 분야의 우수 사례라고 해서 동일한 결과물이 도출된다는 보장은 없으므로 신중하게 검토해봐야 한다.



개발자로서 공개SW 활용으로 인해 좋은 점은?


서비스 개발 및 운영 시에는 하드웨어와 프로그램 설계 및 팀 설계 등 많은 요소를 고려하게 된다. 공개SW를 도입하면 일단 라이선스 비용이라는 요소가 제거되므로, 다른 문제에 더 집중할 수 있게 된다. 금전적인 부분을 제외하더라도 기회비용을 많이 줄일 수 있다고 본다.


또한, 특정 제품만을 사용해야 하는 답답함이 없으므로 다양한 시도가 가능해지고, 이를 통해 개인은 물론 회사의 역량도 제약에서 벗어나 성장할 수 있게 된다. 스스로 확인하고 공부해서 해결하는 과정을 통해 여러 앞선 기술을 받아들일 수 있는 것이다.


다만, 잘 모르는 상태에서 중요한 시스템에 공개SW를 도입했다가 제대로 활용하지 못하면 돌이킬 수 없는 결과를 초래할 수 있으므로, 사전에 충분한 검토와 준비가 이뤄져야 한다. 앞으로도 공개SW를 적극 도입 및 활용, 고객에게 보다 나은 서비스를 제공할 수 있도록 노력하겠다.




- 공개SW 역량프라자
맨 위로
맨 위로