[인벤기고컬럼 3] 왜 게임 서버는 오픈 전에 완벽하게 나오지 않을까?

클라 프로그래머와 서버 프로그래머. 비슷해 보이지만 서로 다른 고민의 사람들. Part 2

지난 회에서는 게임 클라이언트에서의 성능 병목으로 1) 화면 만들어 내기 (렌더링), 2) 길찾기를 포함한 AI, 3) 현실감을 담아내기 위한 물리 엔진에 대해 설명했다. 그리고 가능하면 16 밀리세컨드 (60fps), 못해도 33 밀리세컨드 (30 fps) 안에 이런 작업들을 모두 마무리 해야된다는 말도 했다. 끝으로 이 작업들은 각각 난이도 있는 작업이긴 하지만, 복잡한 테스트 환경 없이 개발자의 작업 환경에서 화면에 물체들을 많이 올려보는 것으로도 클라의 성능 테스트를 할 수 있다고 이야기했다.

이번 회에서는 서버 쪽의 성능 병목과 서버는 어떻게 성능 테스트를 하는지에 대한 이야기를 해보겠다. 서버에서의 병목을 설명하기 위해서는, 클라가 서버에 접속해서 플레이하는 동안 어떤 일들이 발생하는지를 먼저 살펴볼 필요가 있다.

 

1) 패킷이 클라에서 생성되어 서버에서 처리되기 까지

인벤기고컬럼3.png

위 그림은 언뜻 보기에 복잡해 보이는데, 일단 용어가 낯설어서 그런 것일뿐 그다지 복잡한 그림은 아니다. 용어부터 살펴보자.

게임 클라와 서버가 데이터를 주고 받는 단위를 ‘패킷’ 이라고 한다. (컴퓨터 네트워크 학문 관점에서 엄밀히 구분하면 ‘메시지’ 라고 부르는게 맞지만, 한국에서는 아무도 메시지라고 부르지 않고 편의상 모두 ‘패킷’ 이라고 부른다. 그러니 우리도 그냥 ‘패킷’이라고 부르자. 사실 패킷 (packet) 이라는 단어가 프로그래머들이 쓰다 보니 컴퓨터 네트워크 전공 용어라고 생각하기 쉬운데, packet 은 ‘포장하다’ 라는 pack 에 작은 것을 뜻하는 접미사 -et 를 붙여서 작은 우편물/꾸러미를 뜻하는 실제 사용하는 영어 단어이다. 그러니 네트워크상에서 왔다 갔다 하는 작은 우편물이라는 의미로 packet 이라고 불린다고 보면 되겠다.)

 

인벤기고컬럼 본문 더보기>

답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중