[인벤기고컬럼 2] 게임 클라이언트의 ‘과부하’ 원인, “이것 때문입니다.”

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

지난 칼럼 이후 많은 분들이 나의 지난 직장 생활이 연애 한 번 못 해 볼 정도로 힘들었는지 몰랐다며 위로를 보내주셨다. 그러나 사실 연애가 문제가 아니라 당시에 머리가 너무 빠져서 탈모치료까지 받고 있었다는 것을 아는 사람은 몇 없다.

i13333167277
▲으흐흑!

그리고 비단 나뿐만 아니라 게임 회사의 프로그래머들은 나처럼 골머리 앓다가 조기에 탈모가 오는 경우가 더러 있다. 그럼 대체 무엇이 그들의 청춘을 힘들게 하는 걸까?

당연한 이야기겠지만, 프로그래밍에 있어 성능의 병목이 되는 것이 있다. 그런데 클라와 서버의 경우가 다르다. 병목은 작업이 원래 복잡해서 병목인 경우도 있고, 작업 자체는 단순하지만 처리해야 되는 양이 워낙 많아서 병목이 되는 경우도 있다. 그럼 클라와 서버의 어떤 작업이 성능상의 병목이 되고, 어떻게 그것들을 사전에 확인하는지를 두 번으로 나눠서 살펴보도록 하겠다. 먼저 이번 편에서는 클라에서 주로 처리하는 작업에 대한 내용을 살펴보고 다음 편에서는 서버 쪽 작업을 살펴보도록 하겠다.

Part 1. 클라에서의 병목: 화면 만들어내기와 AI, 그리고 물리 엔진

1) 가장 빈번하면서 쉽게 병목이 되는 작업: 화면 만들어내기

예전 배불뚝이 TV 에서부터 최신 LED 디스플레이까지, 우리가 일상적으로 사용하는 디스플레이들은 일정 시간 단위로 화면을 다시 그려주는 방식으로 동작한다. 이를 주사율 (refresh rate)이라고 부르는데, 보통 초당 60번, 혹은 120번, 경우에 따라서 240번까지 화면을 다시 그리게 된다. 그리고 이 작업에 상당한 전력을 소모한다. 초당 다시 그리는 횟수가 많을수록 화면 상의 움직임은 자연스럽게 보이게 된다. (물론 우리 눈의 한계 때문에 일정 이상의 주사율은 별 의미가 없다고도 한다)

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

답글 남기기

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

WordPress.com 로고

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

Twitter 사진

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

Facebook 사진

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

Google+ photo

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

%s에 연결하는 중