두 번째 과제 4
유인국은 남은 발표를 마저 했다.
“···그리고 오브젝트 풀링도 했습니다.”
황정호 파트장은 어이없다는 듯 말했다.
“오브젝트 풀링요? 객체 재활용?”
“네 맞습니다.”
“우리 프로젝트에 오브젝트 풀링은 이미 다 적용되어 있을 텐데요?”
“한 곳... 적용되지 않은 곳을 찾았습니다."
"엥? 아직 적용 안 된 곳이 있다고요?"
"네... 바로 데미지를 계산하는 곳입니다. 데미지 계산 객체가 매번 수십 또는 수백 개씩 새로 생성되고 있어서, 이곳에 객체 재활용 기법을 적용했습니다."
유인국은 이진수의 말을 인용했다.
"누구 말처럼... 콜라 병을 매번 새로 만드는 것 보다, 한번 만들어 두고 깨끗이 씻어서 재활용하면 좋으니까요···”
유인국은 잠시 머뭇거리더니 주변의 눈치를 보고 말했다.
“이 오브젝트 풀링 대상을 찾는 것은 진수 님이 도와주셨고요···”
황정호 파트장은 강신구 팀장 앞에서 자신의 지식을 과시하고 싶었다. 그리고 다음 발표자인 최인호를 위해서라도 유인국의 발표 내용을 어느 정도 부정할 필요가 있었다.
“오~ 인국 님 잘 찾았네요. 하지만 콜라병을 미리 많이 만들어 둔다고 무조건 좋을까요? 미리 만들어 둔 콜라병을 적재해야 할 공간이 필요하겠죠? 그 공간이 바로 메모리고요. 그러니까 객체 재활용이 무조건 좋다는 오해는 하지 않으셨으면 좋겠네요.”
“네... 유의하겠습니다.”
"하하하. CPU뿐 아니라 메모리 쪽도 함께 고려했다면 더 좋았을 텐데... 뭐~ 그래도 잘하셨습니다. 더 발표할 거 없으시죠?"
"아... 네..."
사실, 유인국은 오브젝트 풀링을 어떻게 적용했는지 이어서 발표할 예정이었다. 하지만, 황정호 파트장의 질문에 당황한 나머지, 다음 발표 내용을 잊어버리고 단상에서 내려와 버렸다.
이진수는 실제 스마트폰 디바이스에서 프로파일을 하지 않은 유인국이 아쉬웠다. 코드 레벨 수정에 집중하지 않고, 디바이스 프로파일에 시간을 조금 더 썼다면, 방금 황정호 파트장의 물음에도 대답할 수 있었을 거다.
그리고, 이진수는 모바일 게임인 메그넘 프로젝트를 스마트폰이 아닌 PC에서, 그것도 게임 제작 엔진인 에디터 환경에서 프로파일 한 것은 ‘가짜’ 라고 생각했다.
유인국이 발표를 마치자 기다렸다는 듯이 최인호가 일어났다. 그는 유인국의 발표를 보고 자신감 넘쳤다. 최인호는 왠만한 프로그래머는 다 뛰어넘는 인싸 스타일이었다.
“인국 님이 마침 프로파일을 해오셨다니, 제 프로파일이랑 한번 비교해볼까요?”
황정호 파트장도 최인호에게 맞장구를 쳐줬다.
“오~ 인호 님도 프로파일 해왔나요? 이번 공채에는 인재가 많네요. 하하하.”
최인호는 우선, 유인국과 마찬가지로 코드 레벨 최적화에 대해 발표했다. 최인호와 유인국의 발표는 내용 측면에서는 비슷했지만, 발표 자료를 꾸미는 방법이나 발표자의 발표 센스에서 큰 차이가 났다. 최인호는 유명 유튜버답게 발표 자료도 잘 꾸몄고, 발표 역시 센스 있게 잘했다.
거기에 결정적으로, 과제 평가자인 황정호 파트장은 마치 전문 방청객처럼, 리액션 전문가라도 된 냥 최인호 발표를 노골적으로 도왔다.
프로 방청객의 버프를 한껏 받은 최인호가 말했다.
“하하하. 역시 코드 레벨에서 최적화를 먼저 해주는 것이 좋죠. 확실히 같은 결과를 만드는 코드라도, 최적화가 될 수도 있고 악 적화가 될 수도 있으니까요. 그럼 이제 코드 최적화 내용은 그만하고, 성능 프로파일 결과를 발표해 볼까요?”
그는 휘황찬란하지만 잘 정돈된 성능 프로파일 PPT를 화면에 띄웠다. 그리고 유인국보다 자신이 낫다는 어필을 시작했다.
“자. 아까 인국 님이 전투 중 사용되는 property를 모두 바꾸면 CPU 성능이 1.5% 좋아진다고 하셨죠? 그런데 유저가 느끼는 게임의 성능은 무엇입니까? 유저한테 CPU 성능이 1.5%야. 하면 납득할까요?”
프로그래머 중 최고의 인싸 최인호는 센스 있게 적절히 청중들의 반응을 끌어내며 발표했다.
“유저는 성능을 어떤 지표로 보나요? 바로 FPS죠. 초당 내 화면이 몇 번이나 갱신이 되냐? 이게 바로 Frame Per Second. 즉, FPS 아니겠습니까? 모바일 게임은 보통 FPS가 30입니다. 그런데 여기서 1.5% 더 좋아 지면? 겨우 1프레임도 안 좋아지는 것을 고치자고 코딩할 때, 그토록 편한 property를 모두 없앤다? 현실적으로 말이 안 되죠. 그렇지 않나요?”
최인호는 유인국의 과제 내용을 지적했다. 그리고 클라이맥스를 위해 잠시 뜸을 들였다.
“자 여기를 보세요. 저희 메그넘 프로젝트 같은 액션 게임은 보통 어떨 때 느려지나요? 대부분 동시에 타격과 피격이 많이 일어날 때 느려지지 않나요?”
최인호는 다시 한번 청중의 반응을 끌어냈고, 황정호가 반응했다.
“오호호~ 역시 인호 님은 경험이 많으시네요.”
“그리고 타격이 일어날 때 느린 이유는 대부분 데미지를 계산하는 함수입니다. 그래서 제가 데미지 계산하는 함수를 최적화했습니다. 불필요한 반복문과 로그를 줄인 것이 핵심입니다. 자! 이 동영상을 보십시오.”
아이러니하게도, 최인호도 유인국과 같은 광전사 캐릭터로 연속 베기 스킬을 사용하는 동영상을 찍었다. 다만, 유인국의 동영상에는 고블린이 5마리였고, 최인호의 동영상에는 고블린이 10마리였다. 그래서 최인호의 동영상에서 랙이 더 심하게 보였다.
“인국 님이 찍은 동영상과 비슷한 상황입니다. 뭐~ 고블린 숫자는 제 쪽이 더 많지만요. 그럼, 이제 최적화된 후를 볼까요?”
같은 상황에서 동일한 스킬을 사용한 2번째 동영상. 이 영상에서는 랙이 많이 개선된 것처럼 보였다.
최인호는 자신감 있게 웃으며 말했다.
“랙이 개선된 것이 보이시나요? 이제 이 그래프를 봐주세요.”
최인호가 가리킨 그래프에는 타격이 일어날 때 발생하는 데미지 연산을 2배나 빠르게 최적화했다고 나와 있었다.
그리고 최인호의 준비된 마지막 멘트.
“여러분. 우리 메그넘 프로젝트. 전투 테스트할 때마다, 타격이 일어날 때마다. 순간 끊김을 느끼지 않으셨나요? 이제 제 최적화로 데미지 연산이 동시에 여러 번 일어나도 끊임없는 쾌적한 게임 플레이가 될 겁니다.”
황정호 파트장은 전문 방청객 답게 격렬히 반응했다.
“와우! 역시 대단하네요. 최인호! 멋있네요. 이 정도면 수습 합격 때까지 기다리지 않고, 바로 메그넘 프로젝트에 투입돼도 되겠는데요? 하하하하하”
황정호 파트장은 하를 5번이나 반복하며 웃었다. 최인호도 자기 발표가 마음에 들었는지 함박웃음 꽃이 만발했다.
이진수는 최인호 입가에 만개한 웃음꽃을 보고 생각했다.
“그러고 보니 곧 벚꽃 철이네... 꽃이 필 때는 누구든 만나야 하는데... 오랜만에 옆집 아저씨나 보러 갈까?”
최인호는 이후 소소한 발표 몇 가지를 더 했다. 그리고 웅장하게 발표를 마무리했다.
“제 발표는 여기까지 입니다. 혹시 질문 있으신 분 계실까요?”
황정호가 대답했다.
"아니~ 이런 훌륭한 발표에 무슨 질문이 있겠어요? 네? 하하하."
애초에 다른 사람들의 발표를 반격하는 전략으로 만들어진 최인호의 발표에 역시나 질문을 하는 사람은 없었다. 벚꽃 생각을 하던 이진수 말고는 말이다.
옆집 아저씨는 이진수에게 이렇게 말하곤 했다. 사람이라면 질문은 가려 해야 하지만, 질문을 못 하는 것은 부끄러운 일이라고.
벚꽃과 옆집 아저씨를 추억하던 이진수가 말했다.
“음··· 이 질문을 가려서 해야 할지 잘 모르겠는데..."
이진수의 말에 즉각 반응한 사람은 테크니컬팀 강신구 팀장이었다.
"해보세요."
"네 그럼... 인호 님 최적화 작업이 정말 유저한테 효과가 있을까요? 저도 저 데미지 계산 코드 몇 번 봤었는데요. 제 생각에는 최인호 님이 수정한 것이 효과가 별로 없을 것 같습니다.”
5명의 동기와 황정호 파트장. 강신구 팀장까지 이 방에 있는 모든 사람이 이진수를 쳐다봤다. 그리고 황정호 파트장이 말했다.
“이진수 님? 어떤 근거로 그런 말씀을 하시죠?”
“제가 프로파일을 해봤습니다.”
황정호 파트장은 최인호의 PPT를 가리키며 말했다.
“여기 프로파일 결과 안 보여요? 데미지 계산 함수만 보면 분명히 2배가 좋아졌고, 최적화 이후 FPS도 전투 상황일 때, 20에서 25로 5프레임이나 올라갔다고요.”
이진수는 평소 감정에 동요가 적은 사람이다. 하지만, 과제 평가자인 황정호 파트장이 평가 대상자인 최인호를 대놓고 감싸고 도는 것. 그로 인해 다른 동기들이 받을 평가가 좋지 못하리라는 것. 그리고 황정호 파트장의 낮은 지식수준이 이진수를 조금... 아주 조금 화나게 만들었다.
이진수가 말했다.
“그럼 이제 제가 발표를 해도 될까요?”
Comment ' 1