로그인

회원가입 | ID/PW 찾기

취재

[NDC 16] 전 블리자드 개발자가 말하는 '게임 프로그래머 되는 법'

넥슨 박종천 부본부장의 '게임 소프트웨어 개발자가 되려면'

김승현(다미롱) 2016-04-28 13:02:12

게임 프로그래머가 되려면 어떻게 해야 할까? 문외한이 보기엔 프로그래밍만 배우면 전부일 것 같은 개발자의 길이지만, 막상 뛰어들려고 하면 수많은 난관이 지망생들을 기다리고 있다. 시중에서 사용되는 프로그래밍 언어만 수십 종, 여기에 엔진, 플랫폼 등을 고려하면 어떤 것부터 손대야 할 지 막막하기만 하다.

 

이 막막함을 해결해주는 강연이 NDC 16에 있었다. 한글과 컴퓨터부터 블리자드, 넥슨까지. 93년부터 프로그래머 생활을 한 넥슨 박종천 부본부장이 말하는 '게임 소프트웨어 개발자가 되는 법'을 들어보자. /디스이즈게임 김승현 기자


 

 

넥슨 박종천 부본부장

 

 

게임 엔지니어, 즉 게임 프로그래머란 어떤 일을 하는 사람일까? 일반적으로 게임 개발은 3개 영역으로 이뤄져 있다. 재미를 기획하는 '디자이너'(기획자), 예쁘고 멋지게 만드는 '아티스트', 그리고 이 모든 것을 구현하는 '엔지니어'(이하 프로그래머).

 

아티스트는 한 마디로 고객을 끌어오는 역할을 한다. 게임이 아무리 재미있어도 그래픽이 나쁘면 사람들이 관심 가지지 않는다. 아티스트의 가장 큰 덕목은 예쁘고 멋진, 매력적인 결과물로 유저들을 유혹하는 것이다

 

디자이너는 게임의 성공을 만드는 사람이다. 게임이 아무리 멋지고 예뻐도, 재미가 없으면 사람들이 하지를 않는다. 게임의 본질은 재미고, 재미에 대한 설계가 확실히 되어야만 게임이 성공할 수 있다.

 

그럼 프로그래머의 역할은 무엇일까? 프로그래머는 '실패를 막는 사람'이다. 게임이 아무리 매력적인 그래픽과 끝내주는 재미를 가지고 있다고 하더라도, 실행되지 않으면, 정상적인 플레이가 안되면 그 게임은 망한다. 프로그래머가 잘한다고 게임이 성공하진 않지만, 프로그래머가 못하면 그 게임은 망한다. 프로그래머는 게임의 생명줄을 쥐고 있는 사람이다.

 



 

 

■ 뭘 공부해야하죠? 스킬보다 '기초지식'이 중요하다

 

그렇다면 게임 프로그래머가 되기 위해선 어떤 것을 준비해야 할까? 박종천 부본부장은 먼저 당장 쓸 수 있는 '스킬'보다, 그 기저에 깔린 '기초지식'에 집중하라고 조언한다.

 

이유는 간단하다. 프로그래머의 세계에서 '기술'은 너무도 빨리 생기고, 또 없어지니까. 지금 프로그래머들이 자바 스크립트를 많이 쓴다고 해서, 3년 뒤에도 그러리라는 보장은 없다. 프로그래머 세계에서 언어는 매년 수시로 생기고 없어진다. 때문에 프로그래머란 항상 새 기술을 '공부'해야 하는 직업이기도 하다. 좋은 프로그래머란 빨리 배우는 사람이다.

 

그렇다면 빨리 배운다는 것은 무엇일까? 간단하다. 기초가 튼튼하면 된다. 수학, 물리학 같은 기초 학문은 물론, CPU 구조는 어떤 방식인지, 윈도우는 메모리를 어떻게 할당하는지, 각 언어는 어떤 특징을 가지고 있는지 등등. 

 


 

효율적인 프로그래밍을 위해 알아야 할 지식은 무궁무진하다. 여기에 게임 프로그래머를 꿈꾸는 사람이라면 그래픽이나 UI, 네트워크, AI, 툴 등 다른 영역에 대해 알수록 일을 더 잘할 수 있다. 그리고 이것들은 플랫폼이나 기술, 아니 산업 영역에 상관없이 두고두고 쓰이는 지식이다.

 

이 과정에서 중요한 것은 '공부하는 스킬'을 익히는 것이다. 박 부본부장은 이 부분에서 '비판적 사고법'(Critical Thinking)을 권한다. 문제가 생겼을 때, 이를 해결하는 데에서 멈추는 것이 아니라, 문제의 원인은 무엇인지, 다른 해결 방법은 없는지, 이 뒤에는 어떤 이이 벌어질지 등등 사고의 범위를 넓혀가는 것이다.

 


 

비슷한 이유에서 박 부본부장은 프로그래머가 '프레임워크'에 의존하는 것을 권하지 않는다. 프레임워크란 일종의 '편의도구' 같은 것이기 때문에, 프로그래머가 문제를 해결할 때 근본적인 구조나 원리, 혹은 더 나은 해결법에 대해 생각하지 않게 하기 때문이다.

 

그는 차라리 시행착오를 겪더라도, 프로그래머가 하나하나 계속 만들기를 추천한다. 시제품을 계속 만들수록, 자신이 잘못한 것, 자신이 미처 생각하지 못한 것을 발견할 수 있기 때문이다. 그리고 이런 반복은 그대로 프로그래머의 실력으로 이어진다.

 

"새는 나뭇가지에 앉아 있을 때 가지가 부러질까봐 걱정하지 않습니다. 이유는 간단합니다. 날개가 있어서 그래요. 사람도 마찬가지입니다. 결국 가장 중요한 것은 실력입니다. 지식이 있어야 스킬을 쌓을 수 있고, 스킬이 쌓여야 실력이 늘죠. 회사는 망하더라도 실력은 없어지지 않습니다. 지망자 분들은 당장의 취직보다, 어떻게 하면 계속 실력을 쌓고 발전시킬 수 있을지 고민해 보세요."

 


 

 

■ 입사가 끝이 아니다! 프로그래머는 '평생' 공부해야 하는 직업

 

그렇다면 프로그래머의 취직은 어떨까? 대부분의 회사는 이력서/자소서, 코딩 테스트, 인터뷰 순으로 이어진다. 앞에 두 개는 실력에 대한 것이고, 인터뷰는 그 사람의 품성과 성향에 대한 것이다.

 

조직 생활에서 품성은 중요하다. 사람과 사람이 함께 일하는 것이기 때문에 사람의 품성, 혹은 그와 조직의 성향이 맞는지가 중요하기 때문이다. 박 부본부장의 경우, 사람을 뽑을 때 얼마나 빨리 배우느냐, 얼마나 성실하냐, 얼마나 착하냐 3개 요소를 주로 보는 편이다.

 

물론 이렇게 입사한다고 해서 공부가 끝나는 것은 아니다. 입사 전에는 프로그래밍만 공부했다면, 입사 후에는 조직에 대해 공부해야 한다. 요구 조건은 어떻게 들어오는지, 개발 계획은 어떻게 세우는지, 테스트는 어떤 방식이고 피드백을 어떻게 보강하는지 등등. 단순 업무만 하더라도 그 사이클을 알아야만 효율적으로 일할 수 있다.

 

또한 게임 개발이란 프로그래밍만 있는 것이 아니기 때문에, 다른 팀이 어떤 일을 하는지, 다른 사람들이 어떤 일을 하는지 아는 것도 중요하다. 결국 '일의 구조'를 알아야 하는 셈이다.

 


 

입사 직후에는 힘들겠지만, 만약 조금 더 먼 곳을 바라본다면 '비즈니스 스킬'도 배워야 한다. 사회에서 일을 하다 보면 언젠가 관리직이 되고, 때로는 자신만의 사업체를 차려야 할 때도 있다. 때문에 시간이 날 때마다 인사나 채용, 사업, 운영 등 다른 분야에 대해 익히는 것이 필요하다.

 

결국 프로그래머란 끊임없이 공부하고 또 공부하는 사람이다. 박종천 부본부장은 이를 강조하며 벤자민 R. 바버 교수의 말로 강연을 끝마쳤다.

 

"나는 세상을 힘 쎈 사람과 약한 사람으로 구분하지 않고, 성공한 사람과 실패한 사람으로 구분하지 않고, 뭔가를 하는 사람과 하지 않는 사람으로 구분하지도 않는다. 나는 세상을 배우는 사람과 배우지 않는 사람으로 구분한다."