특별취재팀 game@zdnet.co.kr
http://www.zdnet.co.kr/news/news_view.asp?artice_id=20140403163257


"실시간 게임을 제외하면 Node.js를 이용해 대부분 게임의 백엔드를 만들 수 있습니다. 소셜게임, 스포츠, 레이싱 등 캐주얼한 게임에서는 충분히 Node.js를 써볼만 하다고 생각합니다"

아이지에이웍스 백정상 팀장은 3일 '게임테크 2014' 컨퍼런스에 참석, '인사이드 Node.js'라는 제목으로 강연하며 "Node.js는 레이턴시 구애를 받지 않고 처리 가능한 작업이 많은 소셜게임 백엔드 개발에 확실히적합하다"고 소개했다.

그는 "Node.js가 프론트엔드는 물론 백엔드에서 사용할 수 있고, 오픈소스이고, 개발자가 많아 에코 시스템이 활성화돼 있어 최근 많은 주목을 받고 있다"고 설명했다.

▲ 아이지에이웍스 백정상 팀장.


Node.js는 최근 가장 인기 있는 언어 중 하나다. 프론트엔드 개발자들은 자바스크립트는 잘 알지만 자바나 다른 언어는 잘 모르는 경우가 많은데 Node.js는 자바스크립트로 백엔드까지 개발할 수 있게 됐기 때문이다.

또 단일 스레드 이벤트 루프를 통해 처리성능이 높은 것도 강점이다. 그는 "Node.js는 스타벅스에서 커피 주문하는 것과 유사한 방식으로 처리한다"며 "단일 창구에서 주문만 받는 사람이 있어 커넥션단에서 로스나 기다림이 없다"는 것이 특징이라고 설명했다. 실제 수행되는 시간은 더 늘어날 수 있지만 커넥션이 늘어난다고 해서 연결 자체가 불가능한 일은 최소화할수 있다.

그는 실제 Node.js를 사용해 소셜게임을 개발했던 경험을 소개했다. 소셜게임의 특성상 그가 중요하게 고려한 요소는 크게 세가지 였다. 모든 요청이 3초안에 처리돼야 하지만 굳이 실시간은 아니어도 된다. 그리고 전세계 서비스 해야하는 만큼 대용량 요청이 가능하게 확장성을 확보해야 한다는 것이다. 마지막으로는 보통 모바일 게임 개발에 주어지는 시간이 촉박하기 떄문에 오픈소스커미터든 다른 서드파티 개발든 활발한 에코시스템이 갖춰져 있어야 한다는 점이다.

Node.js가 이 모든 점에 만족할 수 있었다고 한다. 그는 "Node.js는 HTTP 프로토콜 기반 서버를 개발하면서 발전시켜 나온 것이기 때문에 소셜 게임에서 HTTP 프로토콜이 문제 없다고 생각했고 확장성도 괜찮았다. 또 에코시스템이 잘 갖춰져 검색만 하면 많은 코드들을 찾을 수 있어서 빠르게 개발할 수 있었다"고 말했다.

그는 단 서버에서 많은 부분을 처리해야하는 RPG같은 게임에는 Node.js가 맞지 않다고 설명했다. 그는 "이런 게임들은 CPU를 많이 사용하는데 Node.js에는 CPU 부하를 분산할 방법이 마땅하지 않다"며 "서버를 여러개 두는 방법 밖에 없는데 이는 모든 개발자들이 선호하지 않는다"고 설명했다. "RPG게임이라면 중요한 로직은 C++/C 또는 자바를 사용할 것 같고 DB에 정보를 얻어와서 처리하고 수정하는 건 Node.js를 쓸 것 같다"고도 덧붙였다.