[지스타21]넷텐션 배현직 CTO가 말하는 안정적이고 빠른 게임 서버 개발 방법

등록일 2021년11월18일 17시35분 트위터로 보내기

 

‘지스타 2021’의 ‘퍼블릭 데이’ 첫 날, 서버 개발에서 어려움을 겪는 이들을 위한 솔루션이 컨퍼런스를 통해 제시됐다.

 

넷텐션 배현직 CTO는 이번 ‘지스타 2021’의 컨퍼런스 현장에서 ‘더 안정적이고 빠른 게임서버 개발방법’을 주제로 발표를 진행했다. 그는 2008년 넷텐션을 창업해 국내 최초 상용 서버 엔진 ‘프라우드넷’을 개발했다.

 

넷텐션은 현재 13개국 200여 개의 게임에 사용되고 있는 국내 점유율 1위의 게임 서버 엔진 개발사로, 게임 플레이에 최적화된 고성능 서버와 다양한 플랫폼 및 언어 지원, P2P 통신 기능 등의 솔루션을 통해 쉽고 효율적인 게임 개발을 지원한다.

 

배현직 CTO는 비 개발자를 대상으로 한 눈높이 강연을 준비했다. 그는 게임 서버 개발부터 서비스 운영까지 게임 개발 과정 중 발생할 수 있는 다양한 문제와 원인을 살펴보고, 이러한 문제를 해결할 수 있는 자사의 상용 게임 서버 엔진 ‘프라우드넷 2’를 솔루션으로 소개했다.

 


 

일반적인 이용자라면 서버의 중요성에 대해 크게 체감하지 못하는 경우가 많다. 물론 랙이 발생하거나 심각한 레이턴시가 일어난다면 크게 체감이 되지만, 대부분 큰 문제가 생기지 않기 때문에 평소에는 크게 신경을 쓰지 않는 부분이다.

 

하지만 이렇게 안정적이고 빠른 서버 서비스를 위해서는 서버 프로그래머, QA팀 등 다수의 노력이 요구된다. 배현직 CTO는 싱글 플레이가 중심이 되는 RPG 등에서는 서버의 속도가 크게 중요하지 않지만 많은 인원이 상주하면서도 단 0.005초의 레이턴시로도 불편함을 느낄 수 있는 멀티플레이 게임, 특히 MMORPG 등의 장르에서는 서버 안정화 및 구조가 중요하다고 강조했다.

 

서버에서 발생할 수 있는 문제는 정말 다양하다. 이용자들이 많이 보게 되는 문제들은 대체로 서버 프로그램이 접근해서는 안되는 부분에 접근해 동작하지 않고 다운되는 서버 크래시, 서버가 동작은 하지만 클라이언트의 요청을 처리하지 않고 ‘타임아웃’ 되어 응답하지 않는 ‘서버 무응답’ 등이 대표적이다.

 



 

이 외에도 클라이언트에서의 요청이 큰 폭으로 증가와 감소를 반복해 발생하거나 망 자체의 레이턴시 문제 및 매치메이킹에서의 먼 리전을 지정해 문제가 일어나는 ‘랙 현상’, 거래 중 아이템이 복사가 되거나 소위 ‘백섭’이 되는 등 서버는 동작하지만 결과가 잘못 나오게 되는 ‘서버 오동작’ 등 그 종류도 다양하다.

 

이용자 입장에서 가장 쉽게 체험 가능한 문제는 바로 해킹이다. 슈팅 게임에서의 에임핵이나 RTS 게임에서의 맵핵 등이 대표적이다. 이러한 해킹은 클라이언트에서 주로 이루어지는데, 이를 막기 위해 서버에서 모든 신호를 처리하도록 하려면 유지비용이 큰 폭으로 증가한다는 문제가 있다.

 

또 유지비용과는 인터넷 품질이 조금만 나빠져도 불편함을 유발하는 증상이 크게 눈에 띄게 된다. 이 때문에 대부분의 게임사들은 서드파티 안티치트 프로그램을 활용하지만 이마저도 정답은 아니다. 이용자 입장에서는 불편할뿐더러 완벽하게 막아 주지도 못하기 때문이다.

 

대체로 이러한 문제들의 원인은 서버 개발 단계에서 구조를 단순하게 설계하지 않았거나, 프로그래밍 과정에서 프로그래머가 실수하는 경우, 서버를 지나치게 ‘수평 확장’ 설계한 경우가 대다수다. 여기에 더해 사내 테스트 당시에는 문제가 없었지만 라이브 이후 문제가 발생하거나, 유저 수가 증가하면서 문제가 수면 위로 올라오기도 한다.

 



 

특히 서버 문제는 사내 테스트, 봇 테스트 등으로 완전히 문제를 사전에 파악하기에 쉽지 않고, 단순 접속자와 부하를 늘리는 봇 테스트를 하더라도 이용자들의 창의적인 플레이까지도 테스트 해볼 수는 없다는 문제점이 남는다.

 

클라이언트에서의 버그는 파장이 적다. 문제가 생겨도 다른 유저나 서버에게는 영향을 주지 않기 때문이다. 하지만 서버는 다르다. 서버에 접속한 다수의 플레이어에게 문제를 준다는 것이다. 이 때문에 서버는 신중하게 개발 및 테스트가 이루어지게 되며, 불가피하게 일정에 압박이 생기게 된다.

 


 

뿐만 아니라 클라이언트는 디버거 툴 등을 활용해 버그가 난 원인을 쉽게 추적할 수 있지만, 서버는 이렇게 문제를 단순한 방법으로 해결할 수 없다. 이 때문에 서버 개발자들은 사소한 이벤트까지 전부 기록하는 로그 프로그램이나 모니터링 툴을 활용하지만 이 또한 한계가 있다.

 

단순히 서버를 다수의 기기로 구성하거나 확장하는 것 만으로는 문제가 해결되지 않는다. 대부분의 게임 서버들은 수평 확장 형태인데, 단일 서버보다 설계가 복잡하고 버그를 잡아내기 어렵다. 아이러니하게도 수평 확장을 한 설계가 과부화를 일으키기도 한다. 안정성이 최고의 미덕인 서버에게는 치명적이다. 단순함과 완벽함 사이에서 절충안을 찾아야 하는 이유다. 물론 파도타기처럼 롤링 업데이트를 할 수도 있지만 시간이 오래 걸리며 MMO 장르의 게임에서는 적용하기 어렵다.

 

넷텐션 배현직 CTO는 “서버 프로그래머, 엔지니어에게 서버에서 불필요한 것이 무엇인지 파악하도록 질문하는 것이 도움이 된다”며 “특히 서버 설계를 단순화할 수 있도록 다양한 리미트 요소를 알려주는 것이 중요하다. 또한 서버 관련 스킬과 툴(Tool)을 보유하고 있는지 여부도 중요하다”고 설명했다.

 



 

더불어 배현직 CTO는 서버 개발 과정에서 겪을 수 있는 다양한 문제점들을 해결할 수 있는 솔루션으로 ‘프라우드넷 2’를 제시했다. ‘프라우드넷 2’는 디버그가 필요한 코드에 포인트를 찍고 그 지점이 실행될 때마다 로그를 남기며, 메모리 상태를 보여주는 툴과 성능 분석 기능 그리고 크래시 리포트와 단순한 서버 구조를 만드는데 도움을 주는 자동화 등의 유용한 기능도 지원한다.

 

이번 발표를 맡은 넷텐션 배현직 CTO는 “’프라우드넷’을 선보인 지 십 수년이 됐다. 그동안 개발자들이 겪는 어려움을 함께 해결해 왔는데, 이번에 새로이 출시될 예정인 ‘프라우드넷 2’가 개발자들의 수평 확장 서버나 복잡한 서버 구조에서 생길 수 있는 문제를 해결하는데 도움이 될 것이다”라고 전했다. ‘프라우드넷2’의 정식 출시는 2021년 말에서 2022년 초로 예정되어 있다.

관련뉴스 - 관련뉴스가 없습니다.

가장 많이 본 뉴스

취재기사 기획/특집 게임정보

화제의동영상