게임 서버 프로그램이 분산 서버 프로그램의 일종이라는 말은 기본적으로 프로그램을 구성하는 요소들이 ‘분산 서버 프로그램의 기본적인 기능들’과 ‘각각의 게임 서비스를 위한 기능들’로 구분될 수 있다는 것을 의미한다. 이들의 비율은 게임 콘텐츠에 따라 다른데, 대략 4:6 부터 7:3 정도까지 다양하다.
어쨌거나 적어도 게임 서버 프로그램의 최소 40% 정도는 게임과는 관계 없는 기반 기술에 해당한다. 서버 프로그래머들은 이를 만드는 것을 두고 ‘밑바닥 작업’이라고도 한다. 여기에는 클라이언트 프로그램과의 통신을 위한 네트워크 처리, 유저 데이터를 관리하기 위한 데이터베이스 처리, 사용자가 늘어남에 따라 필요한 서버 프로그램들간 통신 기능, 서버가 여러 대 있을 때 사용자를 나눠주는 로드밸런싱 등이 포함된다. 서버 모니터링 기능과 해킹에 대한 대응 기능 등도 함께 만들어야 한다. 이들은 ‘분산 서버 프로그램’이라면 공통적으로 필요한 부분이다. 보통 이같은 ‘밑바닥 작업’이 선행되고 나면, 그 위에 콘텐츠에 따른 시스템 구현이 들어간다. 다시 말해, 밑바닥 위에 ‘어떤 기능’들을 구현하느냐에 따라 특정 산업의 서비스를 제공하는 서버 프로그램으로 만들 수 있다는 뜻이다. 게임 서버 솔루션을 만들던 아이펀팩토리가 어떻게 가상화폐 거래소 솔루션 사업을 시작하게 됐는지에 대한 답이다.
실제로 가상 화폐 거래소 솔루션을 만든 방법은 ‘아이펀 엔진’에서 제공하는 분산 서버 기능들 위에 가상 화폐 거래를 위한 거래 방식들을 구현한 것이기 때문이다. 그 둘 사이에는 상당한 유사성이 존재하고 많은 코드가 공유된다. 현대 사회에서 소프트웨어가 들어가지 않는 산업이 없다시피 하고, 그 때문에 프로그래머 역시 다양한 영역에서 필요하게 됐다. 각 산업 영역에서 필요한 전문 지식은 존재하지만, 반대로 프로그래머가 활용할 수 있는 공통 빌딩 블록이라는 것도 존재한다. 다양한 형태의 건물을 짓더라도 그 안에 들어가는 건축 자재는 상당히 공통적인 것과 마찬가지다. 그 때문에 프로그래머들에게도 탄탄한 이론적 기반이 중요하고, 이런 빌딩 블록을 만들 수 있는 능력과 연습이 필요하다고 할 수 있다.
[경향게임스=게임이슈팀 기자]