상단여백
HOME 게임 취재
넷텐션 배현직 CTO “안정적 서버 핵심은 단순화와 상호 커뮤니케이션”

펄어비스의 자회사인 넷텐션의 배현직 CTO(최고 기술 책임자)는 18일 지스타 2021의 부대 행사로 벡스코 컨벤션홀에서 열린 국제 게임 컨퍼런스에서 ‘더 안정적이고 빠른 게임 서버 개발 방법’이라는 주제로 강연을 진행했다.

배현직 CTO는 2008년 넷텐션을 창업한 개발자로 국내 최초 상용 서버 엔진 ‘프라우드넷’을 개발했으며, 넷텐션은 지난 2017년 펄어비스에 인수된 바 있다.

이번 강연에서는 게임 서버의 개발부터 서비스 운영까지 게임 개발 과정 중 발생할 수 있는 다양한 문제와 원인을 살펴보고, 상용 게임 서버 엔진인 ‘프라우드넷 2’를 통한 새로운 해결책을 소개했다. 

넷텐션 배현직 CTO

먼저, 게임 서버를 운영함에 있어서 싱글 게임과 멀티 게임, 그리고 장르마다 조금씩 다른 아키텍처가 적용된다는 점을 꼽은 뒤 이로 인해 발생하는 문제점에 대해 소개했다.

첫 번째는 클라이언트와 서버와 연결이 끊어져 서버가 죽는 ‘서버 크래시’인데, 그나마 쉽게 문제 체크가 가능한 편이다. 그리고 두 번째는 서버가 살아있긴 하지만 멈춘 상태로 데이터가 처리되지 못하고 점점 쌓여가는 ‘서버 무응답’으로, 클라이언트에서 요청이 많아지거나 순간적으로 몰릴 때 발생하며 해결 난이도가 높은 편이다.

세 번째는 서버의 처리량의 증감이 반복되면서 서버의 부하가 발생해 느려지는 ‘서버 렉’으로 이것이 반복되다 결국 서버 무응답이 발생한다. 네 번째는 서버가 특별한 이상이 없어 보이지만 결과값을 다르게 내는 ‘서버 오동작’으로, 개발자의 실수 혹은 서버의 수평 확장때 발생한다.

마지막으로 ‘해킹’인데, 해킹을 원천 차단하려면 서버에서 모든 처리를 해야 하는데 그러면 유비 비용이 엄청나고 인터넷 품질에 따라 렉이 발생한다. 그래서 이 처리의 일부를 클라이언트에서 하는데 이 부분에서 주로 해킹이 발생한다. 대표적으로 조준과 관련된 에임핵이 있으며, 클라이언트에서 별도 프로그램을 통해 차단하곤 한다.

이러한 이슈를 미리 방지하기 위해 게임사에서는 서버를 사전에 테스트를 하게 되는데, 주로 유닛 테스트와 사내 테스트, 봇 테스트, 소프트론칭 등 4가지 방법을 쓴다. 하지만 봇은 정해진 대로만 해서 사람처럼 창의적이지 않아 나중에 QA에서 봇의 시나리오를 사람처럼 구축한다. 

하지만 론칭이 되면 이를 뛰어넘는 상황이 금방 나타나기 때문에 이것을 예방하기 위한 충분한 테스트가 필요하고, 결국 이것은 개발 일정 지연으로 이어진다. 또한 서버에 버그가 있으면 많은 유저들에게 피해가 가기에 개발에 신중해야 하고, 안정적 서버 환경 구축이 필요하다.

이를 해결하기 위해서는 단순화가 필요하다고 강조했다. 배 CTO는 “서버 팀이 가진 게임의 시스템과 콘텐츠의 정보가 부족하면 서버 구축이 힘들어진다. 따라서 서버 설계 단순화를 위해 게임의 상세 정보 제공이 필수이며, 이를 위해 상호 커뮤니케이션이 필수”라고 지적했다.

이러한 노하우들을 담은 것이 넷텐션이 개발 중인 서버 엔진 ‘프라우드넷 2’라고 한다. 서버 부하에 대한 모니터링은 물론 크래시가 발생했을 때 자동 재시작 및 리포트를 해주며, 전체 코딩의 8할을 자동화해 서버 개발자에게 큰 도움이 된다.

특히 서버 문제 해결을 위해 서버를 멈춰야 했던 디버거 프로그램의 단점을 보완한 디버그 트레이서 기능을 통해 특정 지점의 실행 때마다 로그를 남김으로써 상황을 파악해 서버를 멈추지 않고도 문제를 찾아 해결할 수 있도록 한다는 것.

‘프라우드넷 2’는 올해 말이나 내년 초에 정식 출시할 예정인데, 이때까지 베타 버전을 신청하면 무료로 이용할 수 있다. 마지막으로 배 CTO는 “프라우드넷 2를 통해 개발자의 수평 확장 서버 설계와 복잡한 서버 콘텐츠 개발로 발생하는 문제를 해결하겠다”고 밝혔다.

박상범 기자  ytterbia@gamevu.co.kr

<저작권자 © 게임뷰, 무단 전재 및 재배포 금지>

박상범 기자의 다른기사 보기
icon인기기사
기사 댓글 0
전체보기
첫번째 댓글을 남겨주세요.
여백
여백
여백
여백
Back to Top