“새가 부러질 것처럼 가느다란 나뭇가지에 앉은 것은 나뭇가지가 부러지지 않을 것이라 믿기 때문이 아니다. 나뭇가지가 부러져도 날아갈 수 있는 자신의 능력을 믿기 때문이다.”

'한글과 컴퓨터'와 미국 보스턴 등지의 IT업체를 시작으로 '블리자드'. 지금은 '넥슨'에서 개발자 인생을 걷고 있는 박종천 강연자는 NDC2016에서 총 두 개의 강연을 진행했다. 하나는 훌륭한 개발 팀장이 되는 방법. 하나는 게임 소프트웨어 개발자가 되는 방법이다.

팀을 구성하는 '개발자'와 여러 개발자가 모인 팀을 이끄는 '리더'. 상이한 두 가지 주제지만 각각의 강연 모두 말하고자 하는 바를 오롯이 전달했다.

▲ 넥슨 플랫폼본부 부본부장 박종천 강연자

이번 강연을 '개발자를 꿈꾸는 학생들을 위한 이야기'라고 전한 박 강연자는 단순히 게임 소프트웨어 개발자가 되는 데 필요한 것뿐만 아니라 입사하는 데 필요한 능력, 그리고 업계가 어떤 일을 하는지 전달할 기회가 되길 바란다며 강연을 시작했다.

그의 강연을 통틀어 가장 중요한 것은 더 많이 배우고 도전하며 자신의 능력을 스스로 믿을 수 있게끔 성장시키라는 점이었다.




분야는 다르지만, 목적은 같다

영화 '마션'을 떠올려보자. 달에 혼자 남은 주인공을 위해 식량을 실은 로켓을 쏘아 올린다. 하지만 부족한 시간 탓에 소프트웨어로 사전 테스트를 진행하지 못했고 결국 잡아내지 못한 결함이 시발점이 되어 로켓이 우주에서 폭발하고 만다.


로켓을 폭발하게 만든 결함을 찾아내는 것. 그것이 바로 소프트웨어의 힘이다.

사실 이렇게 큰 분야가 아니더라도 소프트웨어는 곳곳에서 쓰인다. 은행 전산 업무나 질서 있게 교통을 정리하도록 만드는 신호등까지. 사회 곳곳에서 사용되고 있다.

게임 소프트웨어 개발자가 되려고 하는데 왜 다른 분야까지 생각해야 하는지 궁금해할 수도 있다. 하지만 넓게 보면 게임도 이러한 소프트웨어 일부분이고 다른 소프트웨어 직군과 연계될 수 있음을 알아야 한다.

다른 분야와의 차이가 있다면 오랜 시간이 걸려야만 자신의 결과물이 대중에 드러나는 여타 소프트웨어 엔지니어와 달리 게임 소프트웨어는 더 자주, 빠르게 결과물이 나온다는 점이다. 자신의 결과물이 대중에게 발표되고 얻는 관심. 그것이 엔지니어에게는 큰 힘인 만큼 소프트웨어 개발자들은 더 많은 기쁨을 느낄 수 있을 것이다.





그래서 뭘 공부해야 하는가?

전문적인 분야는 다르지만, 기초가 되는 지식은 기본적인 정도는 모두 이해하고 있어야 한다.

우선 수학과 물리는 소프트웨어 개발의 기본이다. 이를 모르고서는 어떤 개발을 하든 금세 한계에 부닥치고 말 것이다. 이 외에도 C ++, C#, Python, Java 등 기본적인 프로그래밍 언어도 봤을 때 어떤 언어인지 정도는 알 수 있을 정도로 배워두는 것이 좋다.

여기에 데이터 구조는 무엇인지, 윈도우, 리눅스 등 OS별 메모리 할당이나 파일 시스템 정도는 알고 기초적인 부분이라 조금 더 깊게 들어가면 하이퍼스레딩이 뭔지, 메모리 공유와 CPU 가속은 어떻게 이루어지는지까지는 알아야 도움이 된다.

공부할 것이 많다. 그렇기에 어떻게 해야 빠르게 공부할 수 있을지에 대한 공부 기술. 또 기민하게 새로운 것을 받아들이는 배움의 스타일도 익혀야 한다.




'당신의 기초는 탄탄합니까?' 이 정도는 알아야 기초는 안다 할 수 있다.



지식만큼이나 중요한 것이 이를 활용하고 훈련하는 것이다. 앞선 내용을 이해했다면 텍스트 기반의 간단한 게임을 만들 수 있게 되는데 이를 통해 반복 훈련을 하는 것이 중요하다.

물론 개발 툴이나 엔진 프로그램 등을 이용하면 클릭 몇 번으로 할 수 있는 작업이다. 하지만 내가 생각하고 고민해 힘들게 배운 기술을 쉽게 할 수 있어야만 남들과는 다른 경쟁력이 생기는 것이다. 내가 쉽게 할 수 있는 건 남들도 쉽게 할 수 있다는 것을 알아야 한다. 마치 피카소가 그랬던 것처럼.


어느 날 길을 거닐던 피카소가 자신의 팬을 자처하는 한 여인에게 그림을 그려 달라는 요청을 받았다. 피카소는 30초 만에 손수건에 그림을 그려 주고 말했다.

“그림 가격은 1만 달러요.”

놀란 여인은 고작 30초 만에 그린 그림치고는 너무 비싸다고 말했다. 피카소는 고개를 저으며 말했다.

“30초 만에 그림을 그릴 수 있게 되는 데 30년이 걸렸다오.”




성공을 부르는 비법 - Talent, Pratice, Chance

개발자들에게 꼭 해주고 싶은 성공의 비법이 있다. 기본적인 내용이지만 쉽게 잊어버리는 내용이기도 하다. 그것은 재능과 연습. 그리고 기회다.

소프트웨어 개발자라는 꿈을 가지는 데 있어 우선 자신의 재능을 잘 알아야 한다. 소프트웨어 개발에 다양한 분야가 있고 이에 사용되는 툴, 스킬, 또 역량도 저마다 다르다. 그렇기에 우선은 자신에 잘 맞는 분야가 무엇인지 찾아야

또 하나는 훈련이다. 훈련은 자신의 재능에 맞는 분야를 우선 발전시켜야 하는데 그 효과적인 방법은 반복이다.

반복 훈련의 3단계
1. 돌아가게 : 텍스트 기반의 간단한 게임이라도 직접 만들어 보라. 게임의 질이나 걸린 시간은 크게 중요하지 않다.
2. 올바르게 : 돌아가게 만들었다면 다음은 제대로 만드는 것이다. 잘못된 부분을 고쳐 더 다듬어진 게임을 만들어 보는 것이다.
3. 빠르게 : 앞선 과정을 통해 얼마나 빠르게 완벽한 속도를 구현해낼 수 있는지 연습하고 발전시켜 보라.




입사, 그 새로운 시작

개발자로서 회사에 취직하는 것은 많은 지망생이 생각하는 것과 크게 다르지 않다. 이력서와 자기소개서, 간단한 코딩 테스트, 마지막 엔지니어링 테스트로 후보자의 프로그래밍 지식을 평가한다.

하지만 개발 분야를 확인했다고 해서 끝이 아니다. 농담이나 관심사 등을 이야기하는 팀 인터뷰로 새로운 팀의 문화, 그리고 팀원들과 적응할 수 있는지 평가한다.

박 강연자는 특히 인재 선택에 있어 세 가지를 중요하게 생각하는데 새로운 기술을 빠르게 배울 수 있는 '똑똑함', 솔선수범하고 나서서 일하는 '부지런함', 그리고 얼마나 '착하냐'가 그것들이다.


하지만 '한 회사의 게임 개발자가 되는 것'이 궁극적인 목표가 되어서는 안 된다. 개발자는 평생을 배워야 하는 직종이다. 이전에 배우지 못한 새로운 프로그래밍 기술은 물론 회사의 구조나 동료들의 역할을 깨달아야만 한다.

개발 요구 조건은 어떻게 들어오고 디자인은 어떻게 되는지. 테스트 후 제품을 출시하고 반응은 어떤지, 또 어떤 부분을 고쳐나가야 하는지 등 일련의 과정에 대한 이해 없이는 효율적인 업무가 불가능하다.

막 입사한 시기에는 어렵겠지만, 더 넓게 본다면 기본적인 프로그래밍 기술과 회사 개발 과정에 대한 이해인 '하드 스킬'. 프로젝트와 팀 관리를 이해하고 팀 프로세스를 적용하는 '소프트 스킬'. 회사 차원의 관리 기술을 익히고 회사의 비전이나 목표, 문화를 공유하는 '비즈니스 스킬'을 차례로 익혀 더 높은 단계로 올라갈 수 있다.





IT + 콘텐츠 개발 = 게임

뚱딴지같은 이야기지만 한국의 장점은 무엇일까? 첫 번째는 많은 사람이 종사하는 IT다. 국내는 물론 세계 여기저기서 사용되는 소프트웨어 기술을 선도한다는 것 자체가 큰 강점이기 때문이다. 또 다른 강점은 해외에서 인기를 끄는 K팝, 혹은 한류 드라마 등 다양한 콘텐츠를 만들어 내는 능력이다.

그리고 이 둘을 잘 섞어낼 수 있는 것이 바로 게임이다. 소프트웨어 엔지니어를 꿈꾸는 차기 개발자 모두가 스스로 새로운 문화를 선도하고 미래를 만드는 일을 하는 데 자부심을 느끼길 바란다.