두 번째 과제 2
번뜩이는 재치로 만들어 낸 일거양득의 기회. 황정호는 다시 최인호에게 메시지를 보냈다.
[황정호 : 인호야.]
[최인호 : 네. 형님 말씀하세요.]
[황정호 : 너 그 강신구 팀장이랑 친하다고 했던가?]
[최인호 : 네. 안 그래도 이번 과제 끝나면 인사 한번 드리러 가려고요. ㅎㅎㅎ]
[황정호 : 그러면 있잖아. 이번 2차 과제 발표 때 강신구 팀장한테 참관하러 오라고 해볼래?]
강신구 팀장은 3N게임즈 기술 총괄 이사의 오른팔이자, 보통 프로그래머들이 해결하지 못하는 고난도 기술 업무를 맡아서 처리한다. 그래서 보통 프로그래머들은 강신구 팀장에게 존경심과 두려움을 동시에 가지고 있다.
평소 황정호 파트장은 그런 강신구 팀장과 친분을 만들고 싶어 했다. 그래서 강신구 팀장과 친한 최인호를 이용해보려 했다. 하지만 안타깝게도 최인호가 강신구 팀장과 친하다는 것은 허풍이었다. 최인호는 강신구 팀장과 서로 얼굴만 겨우 아는 사이였다.
[최인호 : 아··· 저는 평가대상자 입장인데··· 제가 제 과제 평가받는 자리에 부르는 건 좀 그렇지 않을까요?]
[황정호 : 흠··· 역시 그렇지?]
최인호도 곰곰이 생각해보니, 이번 최적화 과제는 테크니컬 업무라서, 강신구 팀장에게 어필하기 좋은 주제였다. 거기다 최인호는 최적화 작업과 PPT 발표 모두 자신이 있었다.
최인호는 황정호와 생각이 비슷했다. 최인호는 황정호 파트장을 더 이용해보기로 했다.
[최인호 : 형님. 그러지 말고... 형님이 한번 말해보시는 게 어때요? 형님은 파트장이잖아요.]
[황정호 : 말은 걸 수 있지만... 아마 거절할 텐데··· 지난번에도 몇 번인가 얘기했었는데, 다 까였어.]
[최인호 : 에이··· 형님 매그넘 프로젝트는 회사에서도 밀어주는 프로젝트잖아요. 한 번 더 찔러보세요]
[황정호 : 크흠... 그럴까?]
황정호 파트장은 강신구 팀장에게 메신져를 보냈다.
[황정호 : 안녕하세요. 팀장님. 저 매그넘팀 클라이언트 2 파트장 황정호입니다.]
[강신구 : 안녕하세요.]
[황정호 : 네. 다름이 아니라, 저희 이번 공채 2차 과제에서 최적화를 주제로 다루거든요. 그래서 테크니컬팀 팀장님이 참관해주시면 어떠실까 하고요. ㅎㅎ]
강신구 팀장은 단칼에 거절하려다 무언가 떠올랐다.
[강신구 : 평가 대상자 중 눈에 띄는 사람이 있나요?]
[황정호 : 아 넵. 최인호라고 아마 강 팀장님도 잘 아실 거예요 ㅎㅎ]
[강신구 : 인호 님 말고, 또 누가 있죠?]
[황정호 : 최인호, 유인국, 김대주, 이재웅, 이구성, 이진수 이렇게 총 6명입니다]
강신구는 이진수 이름을 기억했다. 그리고 그의 호기심이 발동했다.
[강신구 : 네. 알겠습니다.]
[황정호 : 앗! 감사합니다!]
황정호는 강신구 팀장이 참관하기로 한 이번 과제가 자기에게 좋은 기회라고 생각했다. 최인호와 황정호는 기회의 가치를 잘 알고 있었다. 하지만, 그들이 만들고 있는 이 기회는 그들 의도와는 다르게, 엉뚱한 사람에게 기회가 된다.
최인호는 자기가 2차 과제로 만든, 프로파일 리포트가 이번 공채 동기 중 자신을 확실한 에이스로 만들어 줄 필살기라고 생각했다. 그래서 그는 다른 동기들과 마찬가지로 코드 레벨 최적화를 진행하면서, 다른 동기들에게 들키지 않도록 몰래몰래 프로파일도 했다.
6년 차로 동기 중 최인호와 함께 경력이 가장 많은 유인국도 사전 조사 없이 바로 코드 분석에 돌입했다.
그들은 코드를 보며 성능에 악영향을 미칠만한 것을 찾아냈다. 그렇게 그들은 눈이 빠져라. 수천 개의 클래스를 하나하나 뒤져가며 코드 레벨의 최적화를 진행했다.
코드 레벨 최적화란, 이미 코딩 된 코드를 보고, 최적화가 안 된 코드를 찾아 수정하는 것이다.
소설을 예로 들어 소설 분량을 줄이는 것이 최적화라고 친다면, 글자 하나하나 찾아보며 글자 수를 줄이는 것이다. "너를 가지고 싶어"를 "너를 갖고 싶어" 처럼 한땀 한땀 줄여 가는 최적화.
반면, 코딩을 많이 해야 할 1차 과제에서는 코드 짜깁기만 하던 이진수. 그는 엉뚱하게도 분석해야 하는 2차 과제에서 주야장천 코딩만 하고 있었다.
유인국이 이진수에게 말했다.
“진수 님 뭘 그렇게 코딩하는 거예요? 일단 어디가 느린지 원인 분석을 먼저 해야죠. 최적화는 그렇게 냅다 코딩만 하면 되는 게 아니에요. 어디가 문제인지 먼저 문제 분석을...”
“프로파일 툴 만들고 있어요.”
“프로파일 툴요?”
“네. 최적화는 인국 님 말처럼, 보고 고치고 보고 고치고의 반복이잖아요. 그래서 어디가 ‘진짜’ 느린지 찾아보려고요.”
“하지만··· 프로파일 툴은 이미 저희가 쓰는 게임 엔진에 다 있잖아요?”
“네. 있죠. 근데 그걸로 ‘진짜’ 느린 곳을 찾는 것은 한계가 있어요.”
유인국은 이진수가 하는 말의 뜻을 이해하지 못했다.
“진짜···라니요? 우리의 삶은 모두 다 거짓인가요? 혹시 진수 님은 지금 2회차 삶이고 그런 거에요?”
"아니요. 저는 회귀 같은 거 써보고 싶긴 하지만, 잘 못써요. 아니 못해요."
대부분 사람들이 개발자, 특히 프로그래머들이 말을 잘 못한다는 편견을 갖고 있다. 그 이유가 바로 이런 드립 때문이다. 자기 딴에는 재미있는 농담을 했지만, 주변에서는 아주 높은 확률로 그것이 농담인지 모르고 지나간다. 단지, "아 쟤 또 이상 말 하네" 할 뿐이다.
이번 드립도, 서로 눈치채지 못 했다.
“그나저나 인국 님. 최적화 작업하시는 거 전후 비교는 하고 계신 거죠?”
프로그래머들은 또, 자기 드립이 아무 일 없었다는 듯이 묻히는 것에 익숙하다. 평소 자주 그래 왔기 때문이다.
“전후 비교를 왜 해요?”
이진수는 당황했다.
“그럼 이번 주 금요일에 성능 최적화 발표는 어떻게 하시려고요?”
“수정 전 코드와 수정 후 코드 비교해서 적어두고, 수정 후 코드가 왜 더 빠른지 설명하려고 했어요. 이미 많이 준비했는데···”
“성능 최적화인데, 성능 비교까지 리포트해야 좋아하지 않을까요? 코드만 적어두고 왼쪽 코드가 오른쪽 코드보다 빠릅니다. 라고 하는 것은 ‘가짜’ 최적화잖아요.”
유인국은 여전히 이진수가 말하는 가짜와 진짜의 의미를 몰랐다. 하지만 성능 비교를 직접 해보는 것은 어떻게든 의미가 있을 것이라는 데 동의했다. 유인국은 유창한 이론보다, 흙을 직접 만져야 하는 스타트업 회사 출신이다. 그래서 이론보다 실험이 더 중요하다는 것을 인지하고 있었다.
“오··· 생각해보니 진수 님 말이 일리가 있네요. 지금은 다들 저처럼 수백 수천 개의 클래스를 하나씩 뒤져가며 누가 누가 더 많이 수정하나 시합하고 있는 것 같아요. 그런데 저는 수정 전과 후를 비교 프로파일 해서, 성능 리포트를 한다면, 남들보다 더 인정받을 수 있을 것 같아요.”
“네. 그런데 인국 님은 경력 6년이라고 하셨죠?”
“네. 맞아요.”
“그럼 6년 동안 계속 작은 회사에만 있었어요?”
“그렇죠···”
“그럼 이번 2차 과제는 최인호 님 보다 인국 님이 더 잘할 거예요.”
“네?”
“최인호 님 최적화 강의 유튜브는 초급자용이에요. 그 정도는 인국 님도 잘 아시지 않나요? 거기다 강의용 지식은 현실과 다른 경우도 많아요. 프로세스나 사수가 제대로 갖춰지지 않은 작은 회사에서 이런저런 문제를 해결하기 위해 맨땅에 헤딩해 본 경험이 필요 할 때가 많습니다. 제가 보증합니다.”
유인국은 이제 자기가 선배인지 이진수가 선배인지조차 헷갈리기 시작했다.
“진수 님···?”
“네?”
“진수 님 31살 신입 맞죠? 게임 회사는 여기가 처음 회사인 거 맞죠?”
“네. 여기가 처음이에요. 그러니까 신입 맞습니다.”
“음... 그런데 어떻게 그렇게 확신해요?”
"체크무늬 남방을 입은 옆집 아저씨가 가르쳐 줬어요. 저도 그 생각에 동의 하고요."
유인국은 머리를 굴렸다. 체크무늬라는 표현은 개발자라 것을 암시하나...? 그리고 옆집 아저씨는 그냥 아무나, 실존할 수도 있고 실존하지 않을 수도 있는 그런 가상의 존재...? 유인국은 이진수의 말이 재미없는 농담이라 판단했다.
"하하하. 진수 님 농담도 참... 그런 재미 없는 농담 하니까 개발자들이 노잼이라고 소문 나는 거예요."
하지만, 이진수는 농담이 아니라 진실을 얘기했다. 역시나 0과 1의 세계에 사는 이들은 서로 농담과 진담을 잘 구별하지 못한다.
유인국은 다시 과제 얘기로 화제를 돌렸다.
“···그런데 진수 님..."
"네?"
"이런 좋은 아이디어를 저한테 막 말해줘도 돼요? 우리는... 경쟁자잖아요?”
“네 괜찮아요. 저는 ‘진짜’ 프로파일을 할 거라서요. 진짜 프로파일을 해야 진짜 최적화를 할 수 있잖아요.”
“진짜가 뭔지는 잘 모르겠지만, 그럼, 저도 프로파일 리포트 씁니다? 흐흐···”
“네. 반드시 전후로 비교해주시고, 시간이 되시면 PC 에디터 환경 말고 실제 스마트폰에서 측정해보세요.”
“알겠어요. 고마워요!! 진수 님!!”
유인국은 3N게임즈 입사 후 작지만, 처음으로 희망과 온정을 느꼈다.
Comment ' 5