2010년 12월 30일 목요일

쉐이더 입문 책을 쓰고 있습니다.

예전에 북미취업 시리즈 쓸 때, 잠깐 언급했었죠. 쉐이더 입문 책.... 현재 쓰고 있습니다. 이미 출판사와 계약은 마쳤구요. 지금은 열심히 쓰고 있습니다. 지난 몇주간 밤낮으로 썼더니 절반 이상은 쓴 것 같군요. (초고만요)

일단 제가 지난 3년간 캐나다의 Art Institute 대학에서 쉐이더 강의를 했던 내용을 책에 담는 것을 목표로 하고 있습니다. AI 대학의 게임프로그래밍 학과에서 몇년 동안이나 가장 훌륭한 과목으로 손꼽혔을 정도니 아무래도 쉐이더 초보/입문자들에게 크게 도움이 될 거라 생각합니다.

제가 생각하는 대상 독자는

  • 프로그래머인 경우: C++, DirectX를 마친 프로그래머, 3D 수학을 마친 프로그래머.
  • 테크니컬 아티스트: 특별한 사전 요구사항 없음

제가 이 책을 내는 이유는 아직 이런 책이 시중에 없어서입니다. 강의를 하면서도 적당한 책이 없어서 아예 교재 없이 강의를 했다죠. 그렇게 하다가 이 자료를 개발한 것이고요. 시중에 나와있는 대부분의 책은 중급/고급자를 위한 겁니다. 따라서 초보자가 그대로 보면 뭔소리진 몰라서 그냥 포기하고 말죠. 초보자 내용이 간간히 DirectX 책에 소개되는 경우가 있지만 그 중에서도 마땅히 된 책이 없다고 생각하는 이유가

  • 너무 수박 겉핥기 식이다.
  • 또는 너무 이론이나 문법에만 치우쳐져 있다.
  • 또는 실무에서 그다지 도움이 안 되는 내용만 너무 많이 담고 있다. (따라서 지면수가 많다. 책값도 쓸데없이 비싸다.)

등 입니다.

따라서 이 책은 쉐이더 프로그래밍에만 초점을 맞추고, 정말 실무에 써먹을 수 있는, 아니면 실무에서 다른 기법을 써먹는데 기반이 되는 내용만을 다룹니다. 아무래도 테크니컬 아티스트와 쉐이더 입문에 입문하는 프로그래머가 모두 볼 수 있도록 하다보니 ShaderX나 GPU PRO등에서 볼 수 있는 고급기법들은 들어있지 않습니다. 저 책들하고 경쟁할 생각도 없습니다. 제 책은 순수히 입문자를 위한 책이고, 제 책을 읽고 쉐이더에 재미가 붙으신 독자분들이 ShaderX 등의 책을 즐겁게 보실 수 있다면 전 행복합니다. 그리고 쓸데없이 지면수를 늘리지 않으려는 것도(따라서 책값도 줄이는게) 제 목적 중 하나입니다.

모든 내용을 한 권에 담은 무거운 책들이 난무하는 상황에서 어찌보면 모험을 거는 건죠. 그래도 출판사 측에서 흔쾌히 그러자고 해줘서 한 숨 놓았습니다.

현재 제가 써놓은 초고를 따라하시면서 테스트를 해 주시는 프로그래머 분들이 두 분 계십니다. 한 분은 경력이 꽤 있는 게임프로그래머지만 HLSL 쉐이더 프로그래밍을 해보진 않으신 분이고, 다른 분은 경력이 거의 없으신 분이죠. 두 분다 이 책의 내용에 흡족해 하시고 있으니 기대를 좀 해보셔도 좋을 듯 합니다. (그리고 현재는 이분들이 주시는 피드백을 기초로 모자란 부분을 계속 더해가는 중입니다).

몇 주만 더 밤낮으로 일하면 초고는 다 끝납니다. -_-;

업데이트(2010년 12월 31일):

  • 한글판으로 나옵니다. (물으시는 분들이 많으셔서)
업데이트(2011년 11월 18일):

2010년 12월 26일 일요일

두 블로그를 하나로 합쳤습니다

글쓰는 블로그와 개발관련 블로그를 따로 운영했으나 두개 다 관리하기가 귀찮아짐에 따라 그냥 여기로 다 합쳤습니다. 그 대신 오른쪽에 분류를 개발/글/잡담 등으로 분류해놨으니 그나마 괜찮을지도 모른다고 제 맘대로 생각해봅니다.

2010년 11월 12일 금요일

Unlimited Detail 기술의 현재상태

한 때, Unlimited Detail이라는 3D 그래픽 테크를 광고하던 유투브 비디오를 본적이 있었습니다. 한마디로 폴리곤으로 모델링을 하는 개념을 버리고 3차원 상에 존재하는 점 하나하나를 그리자는 개념이었는데요. 뭐 구현방법은 틀리지만 근본적으로는 Sparse Voxel Octree하고 비슷한 개념이라고 이해했었죠. 어차피 두 기술 모두 1) 폴리곤의 사용을 지양하고 2) linear LOD를 추구하니까요.

이미 레이트레이싱이 당장 게임에 적용가능성이 없는 기법으로 전략해버린 현재 상황에서 결국 Unlimited Detail의 경쟁대상은 Sparse Voxel Octree인데... Sparse Voxel Octree를 이용한 렌더링은 이미 Id 소프트웨어의 차세대 엔진인 Id Tech 6용으로 개발중이니 과연 Unlimited Detail의 현재 상태가 어떻게 되나 궁금해서 한번 뒤져봤다죠.

Unlimited Detail의 웹사이트를 가보니 2010년 9월 17일자로 나온 언론보도자료가 있는데 이미 투자를 받았고 12~16 개월 사이에 데모를 공개할 거라고 하네요. 그리고 처음으로 그 개발자의 이름이 Bruce Robert Dell이란 걸 알게 되었는데 어떤 사람인가 궁금해서 LinkedIn을 뒤져보니 별거 없고 Unlimited Detail에서 CEO를 한게 15년이라고 되어있네요. -_-..... 기술 자체만 봐서는 불가능한 건 아닌데 (어차피 3D Scanning 알고리듬만 제대로 작성하면 가능하니까요), 이 사람의 이력을 보면 왠지 Project Offset처럼 왠지 그냥 허풍만이 아닐까 하는 걱정도 되네요. -_-;;;;

뭐 일단 12~16개월이 지나서 데모가 나오면 알겠죠. 뭐가 진실인지... 정말 그래픽 업계를 홀딱 뒤집어 놓을런지....

또 다른 생각이 드는 것은 결국 Sparse Voxel Octree이던 Unlimited Detail이던 폴리곤기반의 모델링에서 다음 단계로 넘어가는 것은 시간 문제인것 같은데 과연 그렇게 되면 폴리곤 모델링을 중심으로 해서 발전되온 아티스트들의 교육은 어떻게 바뀔지.... ZBrush처럼 sculpting 기반으로 다 바뀔까요?

2010년 11월 2일 화요일

NVIDIA Texture Tools 2.1 출시 임박

NVIDIA 텍스처 툴의 개발자이자 유지보수자인 Ignacio님과 대화를 통해 알아낸 사실입니다. 새 버전 2.1의 출시가 임박했다는군요. (이번주에 나온다고 들었습니다). 2.0.8 버전과는 달리 제가 원하는 기능이 하나 들어있는데요. 바로 이 페이퍼에서 다뤘던 YCoCg 텍스처 압축이죠. DXT 텍스처의 품질저하를 줄일 수 있는 방법입니다.


YCoCg 변환을 하기전에 sRGB 텍스처를 linear 스페이스로 변환하는지가 궁금해서 Ignacio님께 물어봤더니 2.1은 API 설계원칙 자체에 커다란 변화가 있었다고 하더군요. 영어로는 Imperative API라고 하는데 (한국말로는 잘 모르겠음.. 뭔지) 대충 설명하면 모든 API 함수 호출을 일일이 해주는 방식이랄까요. 즉, 프로그래머로써는 모든 parameter들을 직접 제어할 수 있으니 매우 좋은 방법이죠. sRGB를 Linear로 변환한뒤 사용하고 싶으면 스스로 하면 된다.. 정도랄까요. 어쨌든 2.1 버전은 매우 기대가 되는군요.


참고로 이미 Ignacio님의 회사에서 2.1 버전을 꽤 오랬동안 사용해왔다고 합니다. 버그도 그리 많지 않을듯 하네요.

2010년 9월 8일 수요일

게임개발자 북미취업 가이드 7편: 질문/답변

안녕하세요. 포프입니다. 벌써 마지막 편이군요. 처음에 이 시리즈를 계획할 때, 글을 쓰다보면 상당히 많은 질문들을 받겠구나 했는데, 사실 그렇게 많은 질문들은 없었습니다. 제 글이 별로여서 읽으신 분들이 별로 없었거나, 아님 제가 너무 글을 잘써서 질문할 거리들이 없었던 거겠지요. (제 맘대로 후자로 생각하겠습니다. ^^)

원래는 이번 글에서 질문에 답변을 드린 다음에 생각나는대로 제가 드릴 조언들이 있으면 올릴려고 했는데 글을 쓰면서 제가 당장 생각할 수 있는 조언들은 이미 다 드린듯 합니다. 그래서 일단 이번 편에 마지막으로 올리고, 나중에 뭔가 생각나는 게 있으면 그제서야 올리겠습니다. 일단 이 글이 마지막이라고 생각하세요. ^^

그럼 몇 안되지만 제가 받았던 질문들에 대한 답변들을 다시 정리해 올리면서 이 시리즈를 마무리 짓겠습니다.

질문 1: 북미쪽은 신입개발자들의 나이가 어떻게 되나요?
짧은 답: 대중 없습니다. 상관도 없습니다.
긴 답: 이 쪽 노동법상 면접을 보거나 원서를 받을 때 나이를 물으면 그 자체로 노동법 위반입니다. 성별 나이에 상관없이 동등한 취업기회를 제공하는 것이 헌법의 정신이기 때문입니다. 물론 대부분은 대학을 졸업하고 취업을 하는 경우가 보통이라 만 22살 정도의 사람들이 신입이 좀 많습니다. 하지만 그 외에도 나이가 차서 취직하는 경우도 허다하지요. 저같은 경우도 만 28살 정도나 되어서 이쪽에서 신입으로 취직한 거나 다름 없으니까요. 심지어는 저희 회사에 50대에 신입 프로그래머로 취업한 분(미국인)도 한분 계십니다. 헐리우드 쪽에서 영화제작에 주로 참여하다가 게임쪽으로 전향하셨죠.

질문 2: 실력은 어느정도 되야 하나요?
짧은 답: 기본이 탄탄하고 기본적인 C/C++ 질문들은 컴퓨터 없이 프로그래밍을 할 수 있을 정도면 됩니다.
긴 답: '3편: 취업을 위한 필수/선택요건 - 면접절차'의 젤 아래에 보면 "프로그래머 면접문제들 예제'를 올려놨습니다. 그 질문들 무난하게 푸실 수 있으면 됩니다.

질문 3: 영어 공부는 어떻게 해야 하나요?
짭은 답: 공부가 아니라 생활이 되어야 합니다.
긴 답: 매우 긴 답이 될 거 같습니다. 생각보다 이 부분에 걱정하시는 분들이 너무 많으셔서요. 영어를 공부하려고 공부하면 역시 안되더군요. 짜증만 나고 스트레스만 쌓이고, 괜히 영어 잘못쓸까봐 고민만 하게 되고... 저도 사실 영어를 잘해야지 라는 생각을 안한 뒤부터 영어가 많이 늘었습니다. 물론 저는 BCIT다니면서 캐나다 본토인들과 거의 동고동락 하는 친구사이가 된게 컸지요. (그 친구들 제 영어가지고 참 많이도 놀렸다죠. ^^) 

하지만 한국에 계신분들은 이런 경험을 하기가 쉽지 않을 것입니다. 그래서 제가 추천하는 방법은 일단 좋아하시는 분야의 책을 영어로 읽으시라는 겁니다. 소설도 좋고 기술서도 좋죠. 어차피 게임개발자들 최신기술들은 외국자료에서 얻으시잖아요? 그냥 그거 읽으시길 바랍니다. 근데 한가지 당부하실것은 한영사전을 끼고 한단어 한단어 분석해가면서 읽지 마시길 바랍니다. 그냥 문장이 해석이 되던 안되던 처음부터 끝까지 한 두번정도는 그냥 읽으세요. 그러다보면 앞에서 해석이 안되었던 문장이 뒤의 문장을 읽으면서 저절로 해석이 되는 경우가 많습니다. 정확한 뜻은 모르지만 문맥상 이해가 되는 경우죠.

한국말로 된 소설책 읽어보셨나요? 그런 책 읽을 때 모든 단어 하나하나의 의미를 다 아세요? 전 모르겠더군요. 근데 재미있는건 그 단어 하나 모른다고 사전찾아보지 않아도 글 전체를 이해하는데는 아무 하자가 없다는 것입니다. 영어도 그렇게 하면 익혀지더라고요.

또 이렇게 사전을 안보고 한두번 읽으면 좋은 것중에 하나가 몇번이나 계속해서 나오는 단어들을 기억하게 된다는 겁니다. 이해가 안되는 단어 하나가 한 5~6번 반복되다 보면 '아, 이 단어 앞에서 봤는데 이게 뜻이 뭐지? 아, 답답해.'라는 생각이 들면서 그 단어를 확실히 기억하게 됩니다. 그리고 나중에 3번째 정도 읽으실 때 그 단어의 뜻을 사전에서 찾아보면 머리에 확실히 기억됩니다.

이렇게 하는게 처음부터 사전을 찾는 것과 뭐가 다르냐고 하실 분들이 계실거 같은데, 저의 경우에는 확실히 달랐습니다. 글을 읽으면서 중간 중간 멈춰서 사전을 찾아보다 보면 글 읽는 흐름이 끊겨서 글의 전체내용을 이해하기 어려워지면서 영어 느는 속도가 더뎌지더군요.

이 외에도 영어 듣기를 늘리고 싶으신 분들은 정찬용씨가 저술하셨던 '영어 공부 절대로 하지마라' 책에서 소개한 내용을 따라해보시기 바랍니다. 이 방법을 간단히 요약하면 그냥 영어로 된 영어든 드라마던 강의던.. 영어로 된 자료들을 자막 없이, 사전 없이 그냥 듣고 읽으라고 하지요. 그것이 바로 어린이들이 새로운 언어를 습득하는 방법과 같다고 하시더라고요. 저도 이 주장에 절대 공감합니다. 저도 영어듣기를 공부에 의해서가 아닌 그냥 사람들하고 어울리면서 익힌 케이스거든요.

하지만 '3편: 취업을 위한 필수/선택요건 - 면접절차'에서 말씀드렸듯이 영어 아주 잘하시지 않으셔도 취직엔 크게 문제가 없습니다.

질문 4: 포프님이 추천하는 북미취업방법은 무엇인가요?
짧은 답: 실력을 보여줄 수 있는 가장 확실한 방법을 택하세요.
긴 답: 첫째, 한국에서 게임프로그래머로서 경력을 최소 2~3년 쌓으세요. 둘째, 경력을 쌓으시면서 실력을 충분히 올려놓으시기 바랍니다. 셋째, 캐나다에 있는 회사에 취업을 하세요. (캐나다는 미국보다 비자가 좀더 쉽게 나옵니다. 하지만 원래 가시고자 하는 회사가 미국에 있고 곧바로 미국에 지원해서 취업이 되시고 비자도 받으시면 그게 더 좋죠. ^^) 넷째, 캐나다에서 2년정도 경력 쌓으시면 영주권 받는게 가능할 겁니다. (더 빨리도 될 수 있죠.) 영주권 받고 2~3년 더 계시면 캐나다 시민권도 받으실 수 있습니다. (캐나다 시민권자는 또 미국비자가 쉽게 나오죠.) 다섯째, 가시고 싶은 회사에 가십니다. (미국이던 캐나다던).




요 4가지 질문이 끝입니다. 더 이상은 받은 질문이 없네요. ^^ 왠지 시리즈 하나를 끝내니 뿌듯하면서도 조금 시원섭섭한 맛이 있는데 앞으론 어떤 글을 올려야할지 모르겠습니다. 그냥 예전처럼 "이것저것" 시리즈를 올릴 수도 있고, 게임 프로그래밍 관련 글을 생각나는 데로 올릴 수도 있고요. 아니면 그냥 다이어리 형식으로 1주간 한 일을 올릴 지도 모르겠네요. 음.. 뭐가 제일 나을까요?

그리고 이제 북미취업 가이드 시리즈를 끝냈으니 전에 잠깐 말씀드렸던 HLSL 입문서적을 저술하는 계획도 좀 세워봐야 겠네요. 출판사쪽에서 관심은 있다고 자세한 저술 계획서를 제출해달라고 했더라구요. ^^

그럼 그동안 북미취업 가이드 읽으시느라고 수고하셨습니다. 나중에 제가 글 올리는 거 보실려면 RSS 구독하시면 될것 같네요. ^^.

모두 집중적인 현명한 노력을 통해 원하시는 바 꼭 이루세요. ^^

-포프 올림


p.s. 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^



2010년 8월 25일 수요일

게임개발자 북미취업 가이드 6편: 실제 취업사례 - 다른 사람들

지난 주에는 제 취업사례 -- 사실 거의 인생담이었지만 -- 를 소개해 드렸습니다. 이번 주에는 제가 제3자의 입장에서 목격했던 다른 분들의 취업사례들을 알려드리겠습니다. 조금 더 객관적이 되겠죠? ^^

한국에서 경력쌓고 캐나다 어학연수 뒤 취업하신 프로그래머 H님
제가 예전에 Blue Castle Games에서 일할 때 렌더링 프로그래머로 취직해오신 한국분이 계셨습니다. H님이라고... 한동안 바로 옆 책상에서 일하시긴 했지만 딱히 친해질 기회는 없었네요. 워낙 조용하신 분이었고 다른 렌더링 프로그래머랑 잘 어울려 놀지도 않으셔서 저하고 친해질 기회는 없었습니다.

이분은 연세대 수학과(94학번이신듯)를 졸업하셨고요. 그 뒤에 한국에서 경력을 한 7년정도 쌓으셨죠.  한국에서 마지막에 몸담으셨던 곳은 웹젠인데 '뮤'  개발에 참여하지는 않으셨던 거 같고요. 차기작에서 클라이언트 팀장을 하셨답니다. 그 뒤에 캐나다로 어학연수 한 6개월 오셨다가 어학연수동안에 Blue Castle Games에 원서를 넣으셨다죠. 잘 기억나진 않는데 곧바로 면접을 보지는 못하셨고, 한국에 돌아가신 뒤에야 연락와서 면접받고 취업하신 걸로 기억합니다. 그리고 비자는 Blue Castle Games에서 취업비자 스폰서를 해줬다는군요.

직급은 시니어 프로그래머 급은 아니였고요, 한 중급(intermediate)정도였던 듯 합니다. 북미 경력으로 치면 한 3~4년 쳐주지 않았나 싶네요. (죄송스런 말씀이지만 한국에서 쌓는 경력은 북미에 비해 좀 실력향상이 더디더라구요.)

모범적인 케이스죠? 한국의 경력을 기반으로 실력보여주고 면접으로 실력인정받아서 해외취업한 케이스. 심지어는 회사에서 취업비자 스폰서까지 해줬으니까요. 이 분 이제 해외 경력만도 한 4년 넘게 되니까 이민을 하셨거나 준비중이지 않을까 싶네요. ^^

VFS에서 3D모델링 공부 뒤 취업하신 H님
어라? 또 H 님이네요. 당연히 다른 분이십니다. 이 분은 제가 예전에 KoolHaus Games에 다닐 때 만났던 분인데요. 사실 한국에서 뭐 하셨던 분인지는 잘 모릅니다. 한국에서 특별한 경력이 없었던 걸로 알고 있고요. 캐나다로 유학와서 Vancouver Film School 하고 Capilano 대학에서 3D 모델링과 애니메이션을 총 2년 공부하신 뒤에 포트폴리오 잘 만들어서 위 게임회사 취직한 케이스입니다. 그리고 한 6개월 뒤엔가 다른 애니메이션 회사로 가신 분입니다. 현재는 Rainmaker라는 꽤 유명한 애니메이션 회사에서 리드(팀장)을 하신다는군요.

전에도 말씀드렸듯이 아티스트들은 포트폴리오 하나면 끝입니다. 프로그래머보다 실력을 증명하기가 정말 쉽지요. 이분 포트폴리오는 제가 직접 보지 못했지만 3D모델링 실력은 꽤 괜찮았던 걸로 기억합니다. 그리고 그 당시에는 신기술이었던 ZBrush도 잘 다뤘지요. 아마 그런 부분들이 취업에 도움이 되지 않았나 싶습니다.

이 분에 대해 인상깊었던 점이 두가지 있는데요. 첫번째는 이 분 영어 참 못하셨다는 겁니다. -_-;;;  한 번은 세들어 살던 집주인하고 뭔가 분쟁이 있었던 거 같은데, 정식으로 서류제출한다면서 영어로 편지쓴 것을 회사 사람들에게 한 번 보여줬었죠. 회사사람들 이 편지 읽고나서 대체 뭔소린지 이해하는 사람이 한명도 없었다는.....-_-;;  이정도로 영어못해도 실력 좋으면 취업된다는 걸 보여주는 좋은 예였죠.

두번째로 인상 깊었던 점은 이 분 꽤나 캐나다 문화에 잘 적응하셨다는 겁니다. 그 당시 캐나다인 여자친구도 있었어요. 그리고 한국에서 학벌이니 나이에 따라 계층을 두는 거를 참 싫어하셨던 거 같더군요. 한 서너달 같이 일한 뒤에 저한테 한말씀 하시는게 제가 맘에 들었던 점이 다른 한국인하고 다르게 처음보자마자 "한국 이름이 뭐냐?", "나이가 몇살이냐?", "학교 어디나왔냐?" 이런 질문 안했다는 거라더군요. (사실 처음 보자마자 이런 질문 하는거 참 에티켓 없는 짓 같아요.)

이 분 비자문제는 저 위에서 소개드렸던 프로그래머 H님과는 다르게 취업비자가 아니라 회사보조 BC주 특별이민이었던걸로 기억합니다. 6개월만에 캐나다 영주권 따셨을껄요?

어쨌든 아티스트들은 실력만 있으면 취업은 매우 쉬워집니다. ^^

고졸로 한국 경력 6년 후에  EA에 취직하신 프로그래머 M님
이 분은 한국에서 고등학교 졸업하신 뒤 곧바로 현업에서 경력 쌓으신 뒤에 EA에서 지원해서 전화면접만 보고 취업되신 분이십니다. 예전부터 FIFA 축구게임 만드는게 꿈이었다고 하셨는데 현재 FIFA 게임의 게임플레이를 담당하고 있다고 들었지요. ^^ 자신만의 운영체제를 만들어보려고 이리저리 쑤셔도 보신 분이시고, 한국에서 게임개발 관련 서적도 한 권 다른분들과 공동집필하셨더라고요.

제가 같이 일해본 경험은 없어서 실력이 어느정도신지는 모르겠지만 실력은 둘째하고서라도 운영체제 만들려고 시도해보고, 책도 저술하실 정도면 얼마나 열심히 사신 분인지 딱 보이시죠? 저한테 한번 자신은 고졸인게 컴플렉스라고 말씀하신 기억이 있는데 그런거 상관없이 실력만으로 취직이 된다는 거 보여주시는 참 좋은 예입니다. ^^

예전에 영어를 너무나 못하셔서 호텔에서 체크아웃할 때 엄청 고생하셨다고 소개드린 분이 계셨죠? 바로 이분입니다. 그래도 실력 인정받아서 취업하셨고, 처음 봉급도 한 7~8만불 받으셨으니까 한 경력 4년정도는 인정받으신듯. ^^

<Y님 이야긴 본인 요청에 따라 삭제했습니다. 그 대신 제 책을 보고 힘을 얻으셔서(?) 해외취직 성공하신 분들의 사례를 책에 업데이트 하겠습니다.>





위의 사례들을 보면 아시겠지만 한국에서 경력이 있으신 분들이 그나마 쉽게 취업을 합니다. 따라서 제가 추천해드리는 방법도 한국에서 경력을 쌓으신 뒤, 북미쪽으로 취업하시라는 것이지요. 물론 경력없이도 실력이 매우 뛰어나신 분들은 무경력으로도 잘 취직할 수 있으실 겁니다. 하지만 보통 자기가 잘났다고 하시는 분들 중에 한 10프로 정도만이 정말 잘나셨더군요.  (90프로는 그냥 현실감각 없으신 분들이에요 -_-;;;) 본인이 그런 케이스가 아닌지 한 번 잘 생각해보시고 가능하면 장기적으로 길게 보시고 차근차근 준비하시기 바랍니다.


p.s. 위에 다른 한국분들의 사례를 들면서 생각해보니 사실 저 분들중에 연락하고 지내시는 분이 하나도 없네요. 원래부터 인간 사귀는 폭도 그리 넓지 않고, 정말 친해지고 잘 맞으면 아주 친한 친구가 되지만 그렇지 않으면 대충 어울리지를 못하는 성격이라 그런 것 같습니다. 그리고 위에서 소개드렸던 아티스트 H님의 말처럼 나이나 출신 따지는 분들과 잘 어울리지 못해요.  ^^ (한국 분들 좀 그렇더라고요. 서로 한국출신이니 반드시 친구 먹어야 한다고 생각하시는 분들 ^^)  저는 그냥 인종/국적 상관없이 서로 잘 맞는 사람하고만 친구먹는 성격이랄까요.

p.s.2. 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^


2010년 8월 18일 수요일

게임개발자 북미취업 가이드 5편: 실제 취업사례 - 포프


사실 북미취업 가이드의 핵심적인 내용들은 '제4편: 실전가이드'로 끝났습니다. 하지만 그냥 이론만 주루룩 늘어놓는 것보단 실제사례를 통해서 배우시는 분들이 꽤 되시므로 이번 주와 다음주를 통해 제 취업사례와 다른 분들의 취업사례를 늘어놓으려 합니다. (제 취업사례는 무지 주관적이고 다른 분들의 취업사례는 객관적이 될듯요.)

사실 한국에서 평생살꺼라고 생각했던 제가 이렇게 캐나다까지 건너와서 게임개발을 하게 된 사연(?)을 공개하는 것, 상당히 주저스러웠습니다. 제 삶에서 지난 20년 간의 이야기를 이렇게 한번에 정리해서 올리는 것이 처음인데 제 과거중에 상당히 부끄러운 부분이 많기 때문이기도 하고, 어찌보면 이젠 한국을 등지고 사는 제 모습을 곱지 않게 보실 분도 계실 것을 알기 때문입니다. 그래도 제 이야기를 통해 제정신 차리시는 분들이 한분이라도 있길 바라며 제 숨겨진 이야기를 여기에 올립니다.

현재 포프의 상태 - 북미경력 6년차의 그래픽스 프로그래머
일단 현재 게임프로그래머서의 제 상태를 살펴보면 다음과 같군요.
  • 현재 Relic Entertainment스페이스마린 팀에서 렌더링 프로그래머로 재직중입니다.
  • 북미 경력 6년, 한국경력 포함 대략 10년입니다.
  • 내년쯤에 Senior Graphics Programmer 타이틀을 달 가능성이 높습니다. (현재 Senior 바로 아래 직급)
  • 한달에 한 번씩은 세계 유수의 게임개발회사로부터 러브콜을 받습니다. (오늘도 Ubisoft에서 전화왔었습니다.)
현재 문화적으로는 솔직히 한국인이라고 하기 부끄러운 수준입니다.
  • 영어가 주(primary) 언어입니다. 생각도 영어로 하고 꿈도 영어로 꾸는 상태가 되었죠. 북미가이드 쓸 내용을 일주일내내 전철타고 출근하면서 노트에 끄적이는데 그 끄적이는 것조차 영어로 합니다. 한국말은 일주일에 한번 부모님하고 통화할 때 하는게 전부입니다. (한글 트위터 및 블로그 연 뒤로는 오히려 좀 더 자주합니다만 아직도 영어가 조금 더 편합니다. 영어로 먼저 생각한뒤 한글로 번역하는 수준이랄까요.)
  • 친구도 대부분 캐나다인고 한국친구는 1명밖에 없습니다. 저란 인간 알고보니 캐나다인들하고 문화적으로 더 잘 맞더군요. 캐나다인이 좀 더 사생활 존중도 잘해주고 실용적/논리적인 것 같습니다. 저도 그렇고요.
  • TV/영화/음악/뉴스 등의 한국 문화 및 소식과는 단절된지 오랩니다.

그럼 제가 어쩌다 이꼴이 되었을까요. 이 모든 스토리는 제가 처음 게임프로그래머 일을 시작했던 고등학교 시절부터 시작됩니다.

첫 게임개발 시도 - 그리고 실패
제가 게임을 만들 꿈을 꾸기 시작한건 중2 때부터 입니다. 1991년 쯤이죠. 이 당시 게임개발사들은 사실 매우 소규모였습니다. 한 4~5명이 모이면 게임 하나 만들던 때랄까요? 이 당시만해도 "전 컴퓨터 게임 만들거에요."라고 하면 무슨 소린지 이해못하시는 분들이 대부분이었습니다. 절대 사회적으로 인정 못받는 직업이었지요.

어린 마음에 뭔가 큰 미래를 본 것이었을까요? 아니면 그냥 여기에 본능적으로 끌린 것이었을까요? 전 이 때부터 몇몇 친구들과 함께 게임을 만들거라는 꿈을 꾸기 시작했습니다. 그리고 원래부터 프로그래머 체질이었던 저는 게임개발을 하려면 터보C를 해야한다는 말을 듣고는 중3때 C를 독학으로 마칩니다. (매 교시 쉬는시간마다 10분씩 공부했죠.) 그리고 고등학교를 다니면서 친구 너다섯 명과 게임개발을 시작합니다. 쉬는 시간, 점심시간동안 게임디자인/레벨 디자인하고 밤과 주말에 열심히 프로그래밍을 했었죠. 주경야독이랄까요.....

이렇게 말씀드리면 그냥 친구들끼리 장난삼아 놀이삼아 게임개발을 했다고 생각하실 분들도 계실듯 한데.. 그것보다는 조금더 진지했었습니다. 강남역에 사무실(오피스텔)까지 하나 있었으니까요. 그리고 실제 여기에 퍼부은 시간도 왠만한 전문 게임개발자 못지 않았습니다.. 주경야독 맞죠? ^^

이렇게 큰 야망의 결과는........ 실패였습니다. 게임을 내놓고 실패한것도 아니고, 1996년 모든 팀원들이 대학 진학한 지 얼마 안되서 내부불화로 팀이 해체 되었습니다. (사실 제 탓이 젤 컸죠. 팀장이고 리드 프로그래머이기까지 했는데 성격이 모나서 저하고 다른 핵심멤버하고 대판 싸우고 해체되었으니까요.)

법학도 - 방황의 시절
팀이 깨졌을 때, 전 이미 연세대 법학과에 재학중이었습니다. 왜 컴퓨터 과를 안갔냐고요? 가고 싶었습니다. 못갔죠. 제가 문과/이과를 선택해야했던 고2초 때까지만 해도 색약(색맹보다 조금 약한 놈. 하지만 사회적으로 여전히 무시받는 놈 ^^.. 그래서 제가 Blind Renderer죠. 색맹은 Colour Blind니까...)은 이과진학이 거의 불가능했습니다. 그게 가능해 졌을때는 이미 제가 고3이 된 이후였고, 그 때 다시 이과로 전향해서 모든 학업을 따라잡는게 너무 벅차게 느껴졌습니다. 그래서 그냥 문과에 머물렀고 결국 법대에 가게 된거죠. 어차피 모든 걸 독학으로 배우는 걸 좋아하는 저에게 무슨 과를 가는지는 크게 중요하지 않았습니다. 그냥 게임 만들어서 성공하면 전공은 크게 중요하지 않다고 생각했죠. (덕분에 '법대출신 게임프로그래머'라는 멋드러진 타이틀을 달고 다닙니다. 이젠....)

근데 게임 팀이 해체되었습니다..... 많이 힘들었죠. 다른 멤버들은 대부분 공대나 컴퓨터과에 진학했던지라 알아서들 또 다른 팀에 들어가곤 했는데 전 그러기가 쉽지 않았습니다. 법대에서는 게임을 만드려고 하는 사람들이 없더군요. -_-;;;; 혹시나 하는 맘에 연세대 컴퓨터 동아리에서 맘 맞는 새 멤버들을 찾아볼까 해서 찾아가보기도 했는데.... 그 후진 386 컴퓨터 한대 앞에 학생들 10여명이 우르르 모여서 '오오 신기하다~'라고 감탄하고 있는 꼴을 보곤 그냥 돌아서 나왔습니다. -_-;;;; 그렇게 대학교 초창기를 그냥 아무 의미없이 방황하며 살았죠. 그냥 힘들었던 기억만 많이 나고요. 그래서인지 단편 따위의 글도 많이 쓰고 노래도 꽤 만들고/부르고 그랬었네요.

그래서 그냥 다 잊고 군대나 갈려고 했는데 부모님들이 아들이 두명 다 군대에 가있는 건 쓸쓸하다시면서 형 제대하면 군대 가라고 만류하셔서 그것도 뜻대로 못했습니다. 그래서 그 대신 사법고시 공부를 시작했죠.

고시생 - 가족의 캐나다 이민 결정
사법고시 공부... 결국엔 이 것밖에 할 게 없나보다 하고 시작했었죠. 대학교 2학년, 97년이었을거에요. 그리고 법대 동기들이 거의 전부다 하니까 나도 해야하나 보다 따라한 것도 있고요. 나름대로 열심히 한 기간도 있었는데 결국 제가 정말 정열을 가지고 한 일이 아니다보니 계속 실패하더군요. 지금 뒤돌아보면... 나중에 제가 게임프로그래머가 되려고 퍼부은 노력에 비하면 정말 허접한 노력이었습니다. (그래서 제가 언제나 하는 말이 '정말 하고 싶은 일을 해라'입니다.) 또한 그리고 좋아하지 않는 일을 하다보니 전 언제 터질지 모르는 시한폭탄처럼 불만투성이었고, 성격도 꽤나 드러웠죠... (그 때 제 더러운 성격에 학 때신 분들 ... 혹시 보시고 계시면 미안해요...)

전 이 때만 해도 그냥 전 고시패스하고, 군복무관으로 몇 년 근무하고 나와서 판/검/변호사가 될줄 알았습니다. 그래서 97년 초인가에 가족이 캐나다로 이민가겠다고 결정하고 이민서류를 넣었을 때만 해도 좀 놀랐었죠. 부모님들이 혹시나 해서 제 이름까지 포함해서 전가족 이민서류를 넣어 놓긴했지만(아들 2명 넣나 1명 넣나 가격 차이가 별로 없었다는군요), 이 때만 해도 부모님들도 그렇고 저도 그렇고, 전 한국에서 고시패스해서 그냥 한국에서 눌러 살거라고 생각했죠. 따라서 이민 허가가 나면 가족들은 캐나다 가서 영주권 취득하고, 전 한국에 남아서 그냥 영주권을 자동포기할 생각이었습니다. 명문대에 다니고 있던 저에게는 확실히 새로운 나라보단 한국에서 사는거 좀 더 편했으니까요. 사실 뒤돌아보면 한국에서 남았으면 확실히 돈을 더 많이 벌었거나 보다 높은 사회적 지위에 있을거라 생각합니다. 뭐 정서적으로 지금보다 훨씬 불안하고 훨씬 덜 행복했을테지만요.

캐나다 이민... 이거 사실 1년안에 끝났어야 정상이었습니다. 98년이면 가족들이 절 버리고(?) 캐나다로 갈 예정이었지요. 근데 IMF가 터집니다..... 캐나다에서 이민수속 처리도 잘 안해줬죠.

캐나다 영주권 취득, 대학졸업 그리고 영구이민
결국 이민허가는 99년에 났고 가족들은 2000년 4월에 캐나다 이민을 갑니다. 전 이미 정신이 피폐할때로 피폐해 진 고시생이었고, 2001년 2월 졸업 예정이었죠. 제가 2000년 11월말까지 캐나다 입국안하면 영주권이 자동포기가 되는 상황이었는데, 가족도 한번 볼 겸 영주권도 그냥 받아둘 겸(어차피 포기하는 건 쉬우니까요.) 2000년 11월초에 캐나다로 와서 영주권을 땄습니다. 그리고 1주일만에 다시 한국에 나왔죠. 학교 졸업도 해야했고 사법고시도 봐야했으니까요. 당연히 그 해 사법고시 실패했고요. 2001년도엔 그냥 가족들과 있으면서 공부할 생각으로 캐나다에서 반 년 넘게 있었습니다. 

근데 이때부터 캐나다 문화를 좋아하게 된 것 같아요. 돈과 학벌과 사회적 지위로 한 인간의 모든 걸 판단하지 않는 사회적 분위기도 점차 맘에 들었던 것 같고요. 그러면서 제가 정말 좋아했지만 한 번의 실패에 상처받아서 그냥 포기해버렸던 게임제작에 대한 꿈이 얼마나 소중한지 점점 깨닫게 되었죠. 그래서 마음을 먹었습니다. 사법고시 한 번만 더 시도하고 안되면 다 때려치고 캐나다 들어와서 새출발 해보겠다고... 전 이 당시만해도 아버지가 절 집에서 내쫓을 거라고 생각을 했기에 접시닦이를 하던 뭘하던 어떻게든 입에 풀칠하고 살아가면서 결국엔 게임개발자가 될 거라고 다짐을 했답니다.

그리고 2002년, 하늘의 뜻대로 사법고시 실패... 그리고 전 캐나다로 영구이민합니다. 2002년 3월이었습니다.

영어 공포증, 하지만 번역가 인생
부모님께 더이상 사법고시 공부안하겠다고 말씀드렸을 때, 전 집에서 쫓겨날 각오를 하고 있었습니다. 하지만 다행히도 그러진 않으시더군요. 그래도 더 이상 부모님께 손벌리는 것이 죄송스러워서 돈 벌 궁리를 했습니다. 접시닦이라도 하려고 했는데 생각해보니 번역 일을 해볼 순 있겠더군요.

솔직히 저 영어라면 담쌓고 살았었습니다. 대학교 신입생때도 영어로 발표준비해오라는 영어강사님에게 싫다고 대들었다가 쫓겨날 정도였고요. 심지어는 캐나다 정부에서 제공하는 기초 영어학교에 들어가는 것조차 실력부족으로 거절당할 정도였었죠. (사실, 처음에 지원하러 갔을 때 제 실력 테스트 하려고 면접관이 질문을 하는데 질문이 '내일 뭐할꺼냐? What will you do tomorrow?'였죠. 듣긴 들었는데 쫄아서 한 마디도 안나오더군요. 그래서 거부당했습니다 -_-;  저 이 정도로 영어 공포증을 가지고 있던 인간입니다...(한숨...) 그런데도 이런 제가 번역을 할 생각은 한 이유는 다음과 같습니다.
  • 영어는 개뿔이지만 한글 글쓰기엔 자신이 있었습니다.(단편소설따위 썼으니까요.)
  • 영어 개뿔문제는 그냥 영한사전으로 해결할 수 있다고 생각했습니다. (수시간이 걸려도 사전 뒤질 각오되어있었습니다. 이내력과의 싸움.)
  • 캐나다 이민자라면 출판사에서 별 생각없이 확인조차 번역일을 줄 수도 있다고 생각했습니다.
제가 번역을 하겠다고 할 때, 저희 형을 비롯해서 많은 분들이 비웃었습니다. 말도 안되는 짓 하지 말라고... 전 그래도 가능할거란 생각이 들더군요. (제가 원래 입장바꿔 놓고 생각하는 거 잘합니다. 제가 출판사 사장이라도 '나 캐나다 이민자요'라고 하는 오는 인간 넙죽 받아줄거 같더라구요.) 그래서 무조건 출판사에 이메일을 보냈습니다. 그리고 두드리면 열린다고... 번역일을 받았고 그때부터 주로 컴퓨터 서적 및 게임개발 서적들을 번역하기 시작했습니다. 제가 번역한 책보고 게임개발 공부하신 분들 은근히 꽤 계실 겁니다. Programming RPG Games with DirectX... 많이들 보셨죠? 그 외에도 게임아카데미하고도 일했고, 코리아 헤럴드 통번역 센터를 통해서 정말 많은 번역일을 했습니다. 가마수트라 기사들도 번역 좀 했죠. 그 와중에 갈렉산드리아도 열었고요.

사실 번역일을 하려고 했던 또 다른 이유 중의 하나는 게임개발 서적을 번역하면서 96년이후부터 손놓아버려 이미 시대에 뒤떨어져버린 제 게임프로그래밍 실력을 다시 늘려볼 심산이었습니다. 그리고 시간 나는대로 저 스스로 게임프로그래밍 공부를 한 뒤에 캐나다 게임회사에 지원할 생각이었죠. 그래서 저희 형이 BCIT라는 컴퓨터 쪽으로는 나름대로 평가가 좋은 대학을 가라고 했을때도 '학교에서 배우는 건 하나도 없어. 나 혼자 할꺼야'라고 한마디로 거절하기도 했습니다.

근데 시간이 갈수록 정작 제가 게임프로그래머가 되기 위한 공부를 하는 대신에 번역일로 돈 버는 것에만 몰두하는 모습이 보이더군요. 그래서 저에게 보다 중요한 것들에 집중하기 위해 저에게 덜 중요한 것들을 포기하기 시작했습니다. 단편소설 및 시를 쓰는 것도 이 때 어느정도 포기했고(그 때 썼던 글들을 다른 웹사이트에 올리고 있습니다), 음악도 이 때 포기했죠. 그리고 번역, 게임 프로그래밍 공부, 그리고 영어(이미 정부에서 지원해주는 학교를 다니고 있었어요)에만 집중하려고 했죠. 근데 이것 저것 포기했는데도 정작 게임프로그래밍 공부는 뒷전이더군요. 그래서 결국 BCIT를 가기로 결정했습니다. BCIT에서 뭔가 배울 게 있어서 가기로 한게 아니라 1) 학교를 다니면 스케줄 따라 무언가를 해야하니까 어찌되었든 프로그래밍 공부를 할거고, 2) 당장 제 실력을 증명할 방법이 없으니까 대학을 수석으로 졸업해서 '나 이만큼 실력있소.'라는 걸 보여주면 취업이 조금은 더 쉽겠다는 생각이 들어서였습니다.

다행히 2년치 학비는 번역으로 어느정도 벌어놨었습니다.

BCIT 생활
BCIT의 CST란 프로그램에 입학했습니다. 2003년 9월이었습니다. 2년짜리 과정인데 여길 들어간 이유는 일단 여기가 제대로 빡세게 가르치기로 악명(?)이 높았고, 4년짜리 대학에 들어가기엔 더이상 낭비할 인생이 없다고 생각해서였습니다.

위에서도 말씀드렸듯이 여기 들어갈 때 목표는 수석졸업이었습니다. 어차피 남들보다 영어도 못하고 캐나다 출신도 아니니 내가 취업할 수 있는 방법은 내가 남들보다 뛰어나단 걸 보여주는 게 유일하다고 생각해서였습니다. 하지만 그러면서도 언제나 저 자신에 대한 의문이 생기더군요. 그 이유는:
  • 과연 내가 그 수년간의 공백기간 이후에도 컴퓨터를 잘할 수 있을까?
  • 과연 내가 영어 강의를 이해할 수 있을까?
  • 과연 내가 수석을 할 정도의 실력이 될까?
였습니다.

영어강의... 생각보다 어렵더군요. BCIT 들어오기전에 영어과정에서 영어쓰기와 읽기는 엄청나게 공부해서 A-로 졸업하긴 했지만(역시 빡세게 했습니다 -_-) 역시 듣기/말하기는 참 힘들었습니다. 심지어는 학교친구들하고도 의사소통이 잘 안되었으니까요. 한 몇주간 영어때문에 스트레스 한참 받다가 거의 포기했습니다. 영어 잘하는걸...

그래도 다행이었던 건 제 프로그래밍 실력이 보통사람 이상이었단 겁니다. 그리고 성격적으로 캐나다인들하고 잘 맞다보니, 캐나다 친구들이 절 잘 받아주었고, 결국 캐나다인 3명과 같이 팀을 이뤄 학교 프로젝트 및 과제를 하게 되었습니다. (남에게 도움을 줄 수 있는 인간이 되면 그만큼 돌아오는게 있습니다.). 그리고 팀원들과 거의 밤과 낮을 동고동락할 정도로 학교과제가 빡세었던지라 그렇게 어울리면서 저절로 영어를 익히게 되었습니다. '영어는 포기하면 잘하게 된다.'란 말 들은 적 있었는데 정말 그렇더군요.

정말 주말도 없을 정도로 열심히 공부했습니다. 학교 다닐동안에 어디 놀러가거 쉰 기억 거의 없습니다. (한 학기 끝날 때마다 학교 Pub에 가서 술마시고 노는 정도) 그 결과 제가 전공했던 Digital Processing에서 수석으로 졸업했습니다. 2005년 5월이었습니다.

사기꾼 게임회사 취업, 잠시 방황, 그리고 Dream Came True. Really.
졸업후에 한 3개월간 취업 못하다가 Relic도 떨어지고 KoolHaus라는 악덕회사에 취업을 합니다. 게임개발자가 되려고 하는 졸업생들을 착취해 먹는 회사였죠. 보다보다 못해 5개월만에 때려치고, 다른 게임회사에 당장 취직도 안되서, 데이터베이스 프로그래머로 한 3~4개월 일했습니다. 이 때 다닌 회사 꽤 안정적이고 복지도 좋아서 어머님이 좋아하시긴 했는데, 업무가 너무 지루하고 게임을 너무 만들고 싶었기에 어머니 몰래 게임회사에 원서넣고 면접보고 취업을 했습니다. 이 때부터가 제 꿈을 다시 이룬 때죠. 2006년 6월일 겁니다.

이 회사 이름이 Blue Castle Games입니다. EA에서 야구게임 만들던 사람들이 나와서 만든 회사고 전 여기서 Xbox 360, PS3, Wii, PS2, PSP용으로 야구게임 3개(플랫폼 별로 따지면 10개)를 출시했습니다. 사실 이 회사 다니면서 전 다른 일돌다 많이 했습니다. 거의 5가지 일을 동시에 했던듯 한데요(five jobs족?). 1) BCG에서 그래픽 프로그래머로 일했고. 2) AI 대학에서 HLSL 강사를 했고, 3) BCIT에서 Computer Graphics 전공으로 학사과정을 마무리지었고, 4) BCIT에서 CST학생들 채점을 했고 5) 번역도 했습니다. 거의 미친 짓이었죠. -_-;;;

이렇게 여러가지 일을 몰아서 한 이유는 제가 과거에 방황하느라 낭비한 삶을 좀 만회해보고 싶었기 때문입니다. 정말 바쁘게 살았죠. -_-;;; 남들 full-time으로 2년동안 마치는(CST 2년에 2년 추가해서 학사 받습니다) 학사과정을 전 part-time으로 2년에 마쳤으니까요. 이 때 스케줄이 어땠냐하면요....
  • 월요일: 회사 업무. 회사업무 후 BCIT 수업들음
  • 화요일: 회사 업무. 회사업무 후 AI에 가서 강의
  • 수요일: 회사 업무. 회사업무 후 BCIT 과제 
  • 목요일: 회사 업무. 회사업무 후 BCIT 수업들음
  • 목요일: 회사 업무. 회사업무 후 BCIT 과제
  • 금요일: 회사 업무. 회사업무 후 BCIT 과제
  • 토요일: BCIT 수업들음. BCIT 채점. 번역
  • 일요일: BCIT 채점. AI 수업준비. 번역
정말 미쳤었죠 -_-;

그리고 AI에서도 학생들이 언제나 최고강사로 칭해줬고, 아직까지도 학생들을 길거리에서 우연히 만나면 저에게 정말 고맙다고 술사주고 그럴 정도입니다. 뭐든 열심히 했죠. 고시생 시절하고 비교하면 정말... 그때가 부끄러울 정도죠. 

(이제 제가 왜 싱글인지 아시겠죠? ^^)

그리고 현재
그리고 2008년 5월에 전 Relic으로 옮겼고.. 아직까지 여기서 일하고 있습니다. 그리고 2009년 12월을 끝으로 좀더 게임 프로그래밍에 전념할려고 AI의 강사직을 사임하고, BCIT에서 채점하는 것도 관뒀습니다. 번역도 관둔지 꽤 되었죠.

그럼 다시한번 제 현재상태가 어떤지 볼까요?
  • 현재 Relic Entertainment의 스페이스마린 팀에서 렌더링 프로그래머로 재직중입니다.
  • 북미 경력 6년, 한국경력 포함 대략 10년입니다.
  • 내년쯤에 Senior Graphics Programmer 타이틀을 달 가능성이 높습니다.
  • 한달에 한 번씩은 세계 유수의 게임개발회사로부터 러브콜을 받습니다. (오늘도 Ubisoft에서 전화왔었습니다.)
(그냥 복사해서 붙였습니다 -_-)

지난 15년간을 돌아보면... 
  • 한 5~6년 쓸데없이 방황했습니다. 괜히 남 탓, 세상탓을 했었습니다. 사실 제가 실패가 두려워서 그랬을 뿐인데요. 그래도 그 때의 경험이 많이 도움이 됩니다. 그 뒤로 다시는 그렇게 인생 낭비하지 않으려고 매일매일 최선을 다했습니다.
  • 게임프로그래머가 다시 되려고 마음먹고 노력할 때는 정말 제가 즐겼지만 제 꿈보다는 덜 중요했던 것들(음악, 글쓰기 등) 다 포기하고 이짓만 했습니다. 주어진 시간은 한정되어 있습니다. 세상의 모든 것을 다 즐기면서 자신을 꿈을 이루는 것은 불가능합니다. 그건 자기합리화일 뿐입니다.
  • 제가 할 수 있는 것 다 이루고도(수석졸업) 게임 프로그래머로 취직하는 거 쉽지 않았습니다.
  • 주변에서 '넌 안돼'라고 말하는 사람 꽤 많았습니다. 그래도 '난 돼'라는 거 보여주기 위해 더 노력했습니다. 그리고 그러기 위해 나 자신에게 솔직하고, 내가 정말 원하는 것을 찾기위해 노력했습니다.
  • 운이란 건 확실히 없었습니다. 기회가 왔을 때 준비가 되어있기 위해서 빡세게 노력하는 것만이 성공하는 유일한 방법입니다.
  • 그리고 지금은 확실히 행복합니다.



p.s. 매우 주관적/감정적인 글이 되어버렸습니다. 죄송합니다. -_-;;;
p.s.2. 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^


2010년 8월 11일 수요일

게임개발자 북미취업 가이드 4편: 실전 가이드

안녕하세요. 포프입니다. 여태까지 이런저런 잡소리를 많이 늘어놓은 거 같은데 이번편에서는 북미취업을 하려면 좀 더 구체적으로 뭔 어떻게 준비해야 하는지를 알려드리겠습니다. 원래는 이번 주에 게임 프로그래머용 실전가이드를 쓰고 다음주에 아티스트/기획자용 실전가이드를 쓰려고 했는데 사실 중복되는 내용이 거의 대부분이라 이번주에 그냥 다 쓰기로 했습니다. -_-;

당장 준비할 일
다음은 지금부터 준비하실 수 있는 일들을 그냥 생각나는대로 적어본 것입니다.

한국에서 경력을 쌓자. 
제가 정말 추천하는 방법은 한국에서 몇 년 경력을 쌓으신 뒤에 북미쪽을 노리시는 겁니다. 아무래도 실무경험이 있으면 그만큼 면접을 받을 기회도 높고(3편: 취업을 위한 필수/선택요건 - 면접절차에서 인사부 직원들이 어떤 사람들인지 말씀드렸죠?), 그러면 취업할 확률도 높습니다. 

경력이 없다면(혹은 그리 많지 않다면) 포트폴리오 웹사이트를 만들자.
경력이 없으신데 자기 실력에 너무나 자신 있으신 분들은 포트폴리오 웹사이트를 만드셔서 자신의 실력을 뽑내도록 하세요. 웹사이트에는 자신이 참가했었던 (개인/그룹/취미) 프로젝트들을 소개하고, 코드 샘플 등을 올려 놓습니다. 

다음은 제가 대학에서 가르쳤던 한 학생의 포트폴리오 웹사이트입니다. 이런식으로 만드시면 됩니다. 참고로 이 친구, 졸업한 뒤에 Ubisoft에 취직했습니다. 제가 가르쳤던 쉐이더 과목을 비디오로 찍어놓은 것이 꽤 도움이 된듯 합니다. ^^

일단 경력이 어느 정도 쌓이면 프로그래머들은 포트폴리오 웹사이트가 별 필요가 없습니다. 어차피 저희는 기술면접을 봐야하기 때문이죠. 저도 처음 취직할 때는 포트폴리오 웹사이트가 있었는데 지금은 이미 다 지웠습니다. (이젠 경력만으로도 면접 받을 정도는 됩니다. ^^)

아티스트나 기획자라면 경력이 있어도 포트폴리오는 필수다.
아티스트나 기획자분들은 경력이 있으셔도 포트폴리오 웹사이트를 유지하시는 것이 좋습니다. 아무래도 프로그래머들처럼 기술면접을 통해 쉽게 실력을 테스트 할 수 없기 때문인데요. 여태까지 참가했던 프로젝트에서 본인이 개발한 컨텐츠들을 스크린샷을 찍어서 올려 놓거나 하시길 바랍니다. 프로그래머가 아니시라면 "나 이 프로젝트에 참여했었소" 정도로는 안됩니다. 실제로 본인이 만든 컨텐츠들을 최선의 방법으로 세부적으로 보여주셔야 합니다.

아티스트나 기획자분들에게는 포트폴리오가 취업은 80%를 차지한다고 해도 과언이 아닙니다. 따라서 게임회사 측에서 포트폴리오를 확인한 뒤에 면접을 보자고 연락이 올 정도면 상당히 긍정적인 신호입니다. 따라서 역시 포트폴리오는 웹사이트로 만드는 게 제일 좋겠죠? 다음은 제가 예전에 Blue Castle Games에서 같이 일했었던 한 아티스트의 포트폴리오 웹사이트입니다. 보고 참고하시길...

실무경력을 쌓을 수 없다면 실력은 프로젝트를 통해 키운다.
실무 경력을 쌓을 여건이 안되시는 분들은 맘 맞는 친구분들과 팀을 구성해서 게임을 만드는 것이 실력을 높일 수 있는 최고의 방법입니다. 그리고 이렇게 팀을 짜서 일을 해야 서로 동기부여도 되고, 가끔 만나서 노닥거리며 노는 재미도 있고, 게으름도 덜 피우게 됩니다. 또한, 그 결과물은 본인의 포트폴리오가 되기도 하니 1석 2조이기도 합니다. 플래쉬 게임도 좋고, 페이스북 게임도 좋고, 아이폰 게임도 좋고, UDK를 사용한 프로젝트도 좋고, XNA 게임도 좋습니다. 저는 제 학생들에게 XNA 게임을 만들기를 많이 추천했었는데요. 그러는 것이 좋은 이유중 하나가 XNA로 게임을 만들면 Xbox 360용으로 출시를 할 수 있다는 점이죠. 아직 MS사가 한국에 계시는 분들이 정식으로 Xbox 360용 XNA 게임을 출시할 수 있는 길을 안열어줬지만 그게 나중에 풀린다면 XNA 게임을 만든 뒤에 "난 이 게임을 Xbox 360용으로 출시했소." 라고 말할 수 있는 계기가 된다는 ^^...

어찌 되었든간에 게임을 완성시킬 수 있을 정도의 역량을 보여주는 것이 중요합니다.

이력서는 언제나 준비해 놓는다.
이력서는 한번 써 놓으면 그냥 구인공고가 나올 때마다 곧바로 보낼 수 있습니다. 경력이 쌓일때마다 조금씩 고치는 것도 그리 어렵지 않고요. 따라서 이력서는 언제나 준비해 놓으시는게 좋습니다. 북미에서 쓰는 이력서는 한국처럼 정형화된 서식을 따르는 게 아니라 각 개인이 자기의 실력을 갖아 잘 보일 수 있는 방법으로 알아서 씁니다. 분량은 A4 앞 뒤 한 장을 꽉 채울 정도가 좋습니다. 이력서는 본인이 갖춘 자격/자질/요건에 따라 다르게 써야 합니다. 가장 중요한 내용을 가장 먼저 쓰시는 것이 중요합니다. 대충 다음의 가이드라인을 따르시면 되겠습니다.
  • 회사경력이 많으신 분들은 각 회사에서의 경력과 업무분야, 그리고 참여한 프로젝트 목록을 젤 앞에 둡니다.
  • 회사경력이 없으신 분들은 학력을 젤 앞에 두는게 좋을 겁니다.
  • 포트폴리오 웹사이트가 있으신 분들은 반드시 포트폴리오 웹사이트 주소를 잘 보이는 곳에 적어둡니다. 경력이 없으신분들은 아마 포트폴리오 웹사이트 없이는 취직이 어려울 겁니다. (실력을 어떻게든 보여줘야 하니까요...)
뭐 이렇게 말씀드려도 사실 잘 모르실테니 제 이력서를 예로 보여드리지요. 대충 이렇게 쓰시면 됩니다.

이력서는 가능하면 MS Word 포맷으로 저장해 놓으세요. 보통 PDF나 Word형식을 주로 받습니다. (웹사이트에서 곧바로 지원하는 경우에는 txt를 요구하는 경우도 있습니다만 Word에서 곧바로 복사해 넣을 수 있으니 큰 문제는 아닙니다.)

LinkedIn에 가입하고 온라인 이력서를 만들자.
매우 중요한 일입니다. 북미 게임회사들은 LinkedIn을 통해 많은 사람들을 채용합니다. LinkedIn의 개념은 싸이월드나 페이스북하고 비슷한데 주 목적이 사교가 아니라 프로페셔널 네트워킹입니다. "이 사람은 내가 신뢰하는 동료요." 라는 개념으로 일촌을 서로 맺는 거지요. 따라서 "내 동료가 신뢰하는 다른 사람이면 믿을만하다." 란 개념으로 LinkedIn에서 사람을 많이 찾습니다. LinkedIn에서 사람을 검색할 때는 3촌까지 검색이 됩니다. 즉 제가 신뢰하는 사람이 신뢰하는 사람이 신뢰하는 사람들까지 검색이 되는거지요. 

여기서 한가지 재미있는 사실은 상당히 많은 수의 북미 게임개발자들이 LinkedIn에 가입되어 있어서 3촌정도까지 검색하면 왠만한 개발자들은 다 나온 다는 겁니다. 그렇게 때문에 게임회사의 리쿠르터들도 여기서 엄청나게 사람들을 찾지요. ^^ 리쿠르터들이 먼저 접근해오면 그만큼 취업도 쉬워집니다. 따라서 반드시 LinkedIn에 가입하시고 여기에 온라인 이력서를 만들어 두시길 바랍니다. LinkedIn의 온라인 이력서는 실제 지원할 때 제출하는 이력서보다는 좀 간소합니다. 제 LinkedIn이력서를 참고하세요.

근데 LinkedIn에 가입만 한다고 리쿠르터에게 검색을 받는게 아니죠? 최소한 리쿠르터들하고 2촌관계에 있는 사람들과 연결되어야 검색이 되겠죠. (2촌 + 1촌 = 3촌) 어떻게 할까요? 리쿠르터 1명하고만 1촌관계가 되면 됩니다. 리쿠르터들은 인맥이 넓어야 하므로 아무하고나 1촌을 맺는 경향이 강합니다. 따라서 1명의 리쿠르터하고만 연결되면 그 사람을 통해서 왠만한 리쿠르터하고는 3촌 관계가 될겁니다. 이 외에도 그룹에 가입하시는 것도 좋은 방법입니다. LinkedIn에 가보시면 게임 개발자 그룹을 비롯하여 많은 그룹들이 있는데 본인하고 관련이 있는 그룹이라면 가능한 전부 가입을 해두세요. 그룹을 통해서도 서로 검색이 되더라고요. ^^

지원관련
다음은 막상 게임회사에 지원을 할 때 아셔야 할 사항들 입니다.

구인공고 읽는 법 - 요건은 가이드라인일 뿐이다.
구인공고에서 요구하는 사항들을 다 갖추지 않았다고 아예 지원조차 안하시는 분들 봤습니다. 상당히 멍청한 짓입니다 -_-; 본인이 누군가를 채용하는 입장이라고 생각해보세요. 경력 10년인 사람을 구한다고 구인공고를 내놨는데 경력 5년차들만 지원했습니다. 하지만 당장 사람은 필요하고요. 그러면 경력 5년차여도 실력 좀 괜찮은 사람들 안뽑겠습니까? 당연 뽑아야죠. 

본인을 채용하고 안하고는 그 회사에서 결정할 일입니다. 괜히 남의 결정을 자기 맘대로 대신 내려버리고는 시도조차 안하는 것은 참으로 한심한 일입니다. 시도를 안하면 100% 취업이 안되지만 시도를 하면 최소한 취업이 될 확률이 있습니다. 그리고 이력서가 준비되어 있다면 지원하는 건 5분도 안걸립니다. 그 5분이 아까워서 취업될 기회를 내버리시게요? 전에도 말씀드렸듯이 주어진 시간과 자원을 효율적으로 사용하시는 것이 취업성공의 지름길입니다. 5분 투자하는거... 제가 보기에는 효율적인데요? 따라서, 구인공고에서 요구하는 요건과 아주 엄청난 차이가 나지 않는다면 무조건 지원하세요. 한 1~2년 차이나는건 그냥 먹어주고 들어갑니다. -_-;

저 개인적인 경험에서 비추어 봐도 이건 사실입니다. 경력 3년가지고도 경력 5년~7년차 뽑는데 잘만 취직됩디다. -_-;

지원은 기회가 날 때마다 한다.
위와 마찬가지 이야기입니다. 어느 회사에 한번 지원했는데 면접도 안봐줬다고 해보죠. 근데 1달 뒤에 다른 구인공고가 나왔습니다. 그러면 어떻게 할까요? 당연 다시 지원해야죠. 대규모 공채가 없는 나라라 언제나 각 구인공고마다 찾는 사람이 있습니다. 그전에 나온 자리에 취업을 못했다고 나중에 나오는 자리에 취업못하는 건 아닙니다. 저희 회사 Relic Entertainment만 해도 현재 프로젝트를 3개 진행중인데 각 프로젝트마다 찾는 사람이 다릅니다. 십지어는 Company of Heroes Online 팀에서는 한국말을 할 줄 아는 사람들을 선호하기도 하더군요. (한국에서도 서비스 하니까요.) 하지만 제가 속해있는 Space Marine 프로젝트에는 한국말이 큰 도움이 되진 않습니다.

다시 한 번 말씀드리는데 남이 내려야 할 결정을 자기 맘대로 내리지 마시기 바랍니다. 저만해도 Blue Castle Games에 취직할 때는 3번 지원해서 마지막에서야 면접 한 번봐서 취직했고, Relic에 지원할때는 3번인가 지원했는데 2번 면접봐서 한번은 떨어졌고 한번은 붙었습니다.

자기소개서(Coverletter)는 필요없다.
가끔 이력서와 자기소개서를 같이 제출하라고 구인공고에 적어두는 회사들이 있는데 게임업계에서는 별로 신경안씁니다. 지난 5년간 이거 한번도 제출 안했는데 제출하라고 하는 회사도 없었고요. 정 그때가서 제출하라고 하면 그 때 고민하시고, 일단은 그냥 무시하세요.



이정도면 제가 생각할 수 있는 실전 가이드들은 다 쓴거 같네요. 혹시라도 제가 빠트린 내용이 있거나 궁금한점이 있으시다면 답글로 남겨주세요. 아는 한 성실하게 답변해 드리겠습니다. 자 그럼, 오늘부터 하셔야 할 일이 뭔지 다 아시죠? 혹시라도 모르시는 분들을 위해 다시 한번 반복.....(아 전 너무 친절해요 -_-)

  1. LinkedIn에 가입하고 온라인 이력서를 올린다. 그룹에도 가입한다.
  2. 이력서를 쓰기 시작한다.
  3. 포트폴리오 웹사이트를 준비한다.


p.s. 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^
p.s.2. 게임프로그래밍 관련 서적을 써볼 생각이 있냐는 질문을 최근에 받았었는데, HLSL 쉐이더 입문서적 어떨까요? 학교에서 매주 애들 가르치던 내용들을 강좌형태로 저술해도 괜찮을거 같은데요.



2010년 7월 28일 수요일

게임개발자 북미취업 가이드 3편: 취업을 위한 필수/선택요건 - 면접절차

    안녕하세요.  포프입니다. 이제서야 좀 본격적인 내용으로 들어가게 되서 다행이고 그동안 기다려 주셔서 고맙습니다. ^^ 이번 편을 읽으실 때 아래의 교훈(?)을 반드시 기억하시기 바랍니다. 이것이 이 편의 중심 주제입니다.

    성공하는 유일한 방법은 중요한 소수의 것에 한정된 자원(시간, 돈, 노력 등)을 집중적으로 쏟아붇는 것입니다.

    누구 말을 인용한 것이 아니라 제 스스로의 생각을 담은 것입니다. 북미에 게임개발자로서 취업을 하기위해 갖춰야 할 요건들이 꽤 됩니다. 하지만 그 많은 요건들이 모두 다 동일하게 중요하진 않습니다. 따라서 정말 중요한 것에 집중하는 대신, 모든 요건 전부를 대충 수박 겉핥듯이 갖추려고 하면 절대 성공하지 못합니다. 언제나 중요한 요건을 갖추기 위해 최대한의 노력/시간/돈/인생을 투자하시고 나머지 것은 대충 중간정도만 맞추시길 바랍니다.

    그렇다면 북미에서 취업을 할 수 있을 정도의 훌륭한 개발자가 되려면 어떤 요건들을 갖춰야 할까요? 우선 북미의 면접(interview) 절차에 대해 알아보도록 하죠. 각 면접 단계에서 어떤 요건/자질 등이 중요한지를 알면 전체적으로 어떤 요건들을 준비해야하는지가 보이거든요. ^^

    (일반적인)북미 게임개발자 면접절차
    위에서도 말씀드렸듯이 면접절차를 알면 뭘 준비해야할지가 보입니다. 일반적이라고 써드린 이유는 회사따라 기술면접 및 대인면접의 횟수나 시간이 조금씩 다르기 때문인데 뭐 그래도 아주 큰 차이는 없습니다. 그럼, 더이상 딱히 뭔가 멋지게 소개를 드릴 방법이 없으니 곧바로 본론으로 들어가죠. -_-;;;;

    1. 구인공고를 읽은 뒤 지원
    간단합니다. 일단 구인공고를 찾습니다. 구인공고가 한군데에 전부 나오는 곳은 가마수트라 구인공고란 외에는 딱히 아는 바가 없고 여기에 올라오지 않는 구인공고도 많습니다. 보통은 각 회사의 웹사이트에 직접 가시면 구인공고가 거기에 올라있습니다. (참고로 대규모 공채따윈 없습니다. 실력따라 뽑는 시스템에선 대규모 공채가 존재하기 어렵습니다.) 따라서 각 회사의 웹사이트를 방문하시고 거기서 일자리를 찾아서 지원하시면 됩니다. 북미 게임회사의 목록은 "2편: 북미 게임개발 근무환경/취업시장"에서 이미 소개드렸습니다. 지원은 보통 이메일이나 웹폼으로 합니다.

    이 단계에서 요구되는 자질은 '끈기'와 '노력'밖에 없습니다.

    2. 인사부(HR)의 추리기(Screening) 절차
    대규모 공채가 아니라 특정한 위치 하나에 지원을 하는거라 그만큼 경쟁률도 언제나 높습니다. 따라서 제일 첫번째 절차는 인사부 직원이 지원자들의 이력서를 읽으면서 그 중 면접을 할 사람을 골라내는 것입니다. 참고로 인사부 직원은 게임개발에 대해서는 쥐뿔도 모르는 사람들이므로(-_-) 그 사람들이 봤을때 '오! 이 지원자는 실력이 있어보이는데?'라는 느낌이 들 정도의 이력서를 내야 합니다. (참고로 여기의 이력서는 한국처럼 정형화된 서식이 아닙니다. 자세한건 '4편: 실전 가이드'에서 다룹니다.)

    따라서 이 절차를 통과하려면 옆집 아주머니 같은 분들에게 실력을 뽑낼만한 무언가가 필요합니다. 즉 '실력을 보여줄 방법'이 필요합니다. 경력자시라면 '경력' 및 '출시한 게임목록'이 당연히 도움이 되겠고, 딱히 경력이 없다면 '개인 프로젝트로 만든 게임'도 도움이 됩니다. 또한 '컴퓨터학과를 나왔다는 증명'도 도움이 될 수도 있습니다. (될 수도 있다고 한건 워낙 아시아권의 대학교육이 개판인게 많이 뽀록이 난 판이라... 별로 신뢰를 안두는 회사들이 꽤 생겼습니다.)

    만약에 실력을 증명할 방법이 아무것도 없다면... 여기서 걸려나가실 겁니다. 최소한 개인 프로젝트라도 하셔서 포트폴리오라도 구축하세요. (이에 대한 자세한 사항은 다시한번 '4편: 실전 가이드'에서 다룹니다.)

    3. 인사부 직원과의 전화면접
    인사부직원과의 추리기 절차를 통과하셨다면 가장 큰 골칫거리를 통과하신 겁니다. 사실 인사부 직원들은 게임개발에 대해 아는 게 별로 없으므로 이 사람들 통과하는게 가장 난해합니다.  힘든게 아니라 난해하죠. -_-;;; 본인이 가진 실력을 직접 보여줄 방법이 없으니까요. 어쨌든 추리기 절차를 통과하셨다면 아마 요 밑의 단계들을 거의 전부다 거치는 경우가 더 많을 겁니다. (중간에 엄청 개판치시지 않는한 말이죠..-_-;;;)

    인사부 직원이 이메일을 보내서 언제언제 전화면접을 하자고 약속을 잡고, 그 시간되면 지네들이 전화합니다.(국제전화비 걱정마시길 -_-;;) 시간은 15분에서 30분 정도 걸립겁니다. 인사부 직원들이 전화면접에서 보는건 두가지입니다.

    a) 이력서를 다 진실되게 썼는가? - 이력서에 열거한 내용들을 하나씩 물어보며 그 때 한 일(혹은 공부한 것)에 대해 좀 더 자세히 물어봅니다. 그냥 솔직하게 말씀하시면 됩니다. (여기선 거짓말 했다가 들키면 매장이라고 생각하셔도 됩니다. -_-)

    b) 인성이 어떤가? - 몇가지 질문을 통해 지원자의 인성이 어떤지 대충 알아보려 합니다. 완전히 지 혼자 잘나고 매우 거만한 사람들만 아니면 무사할 겁니다. 이 때 보통 묻는 질문들은 "전에 있던 프로젝트에서 어떤 문제가 있었냐? 그럴 땐 어떻게 해결했냐? 다음엔 어떻게 해결할 거냐?", "본인의 장점이 무엇이라 생각하나?", "본인의 단점이 무엇인라 생각하나?" 등입니다. 역시 별로 크게 문제될 질문 내용은 아닐듯 합니다.

    따라서 이 과정에서 정말 중요한 자질은 '인성'외에는 없습니다. 저는 인성도 실력(skills)중에 하나라고 생각합니다. 게임개발자가 되려면 프로그래머라면 기술적인 실력(technical skills), 기획자라면 창의적인 실력(creative skills), 그리고 아티스트라면 예술적인 실력(artistic skills)이 있어야 하지만 이 외에도 모든 개발자들은 대인관계 실력(people skills)가 필요합니다.  따라서 '인성'도 '실력'으로 보겠습니다.

    4. 개발자들과의 전화면접
    인사부와의 전화면접이 큰 무리 없이 끝났다면 또 다른 날에 전화면접 예약을 잡고, 그 날에 그 회사에 근무하는 개발자 2명 정도가 전화를 줄 것입니다. 이 면접에서도 역시 이력서에 쓴 내용을 중심으로 이전 경력(또는 학교공부)에 대해 짧게 논한 뒤에,  주로 기술적인 내용들을 많이 물어보지만 전화상으로 면접을 보는지라 아주 구체적인 내용을 묻기보다는 전반적인 이해도를 묻습니다. 일반적으로 묻는 질문들은 "추상 함수가 무엇인가?", "행렬의 용도는 무엇인가?", "쿼터니언을 왜 쓰는가?" 등의 질문입니다. 이 면접은 보통 1시간 정도 될 겁니다.

    이 단계에서 중요한 것은 무엇일까요? 당연 '실력'이죠. 다른 것 없습니다.

    5. 개발자들과의 대인면접
    개발자와의 전화면접까지 통과하셨다면 이제 대인면접을 봅니다. 비행기값 100~200만원 별거 아니니까 그냥 내시고 날라오시면 됩니다. -_-;;;;..........는 농담이고 ^^.... 해외에 있는 개발자들을 구인할려고 맘 먹은 회사정도 되면 비행기값/숙박비 정도는 다 제공합니다. 그리고 회사 입장에서도 이 정도 돈을 내고 사람불러다 면접 볼 정도면 이미 채용할 생각을 많이 하고 있단거죠. 따라서 그냥 떨지 마시고 담담하게 면접 보시면 됩니다.

    보통 하루에 개발자들 2명씩 2번이나 3번(총 4명~6명) 면접을 볼 텐데요. 각 면접은 1시간 정도 됩니다(총 2~3시간). 당연히 처음에 다시 이력서에 쓴 내용들에 대해 좀 더 자세히 짧게 물어보고, 곧바로 화이트보드 테스트(칠판 테스트요 -_-)를 합니다. 즉 면접관들이 "이런~ 이런~ 코딩을 해봐라." 라고 하면 화이트보드에 마커로 코딩을 합니다. 따라서 좀 어설픈 프로그래머들은 이거 통과하기 어렵습니다. ^^ 주로 물어보는 주제는 다음과 같죠.

    • C관련
      • 포인터
      • 비트 연산자
    • C++관련
      • virtual 키워드의 의미
      • 다형성(polymorphism)
      • 상속
      • 추상 클래스(abstract class)
      • static 키워드의 의미
      • const 키워드의 의미
      • 포인터와  reference의 차이
      • malloc/free와 new/delete의 차이
    • 일반
      • 2진수 다루기
      • 일반적인 논리력
    • 기타 해당직에 관련된 질문들

    한마디로 C/C++ 프로그래머라면 반드시 기초로 집고 넘어가야한다고 무수히 강조하는 내용들입니다. 기초가 안되면 좀 프로그래머 하시기 어렵습니다. ^^

    아, 참고로 모르시는 질문이 나오더라도 당황하지 마세요. 이 면접관들이 보는 것은 문제를 푸는 과정입니다. 따라서 면접관들에게 힌트를 좀 달라고 해도 되고, 확실하지 않은게 있다면 면접관들에게 물어보면서 문제를 풀면 됩니다. 그리고 문제를 푼 뒤에도 면접관들과 대화를 하면서 좀더 최적화된 방법을 찾거나 하게 됩니다.

    실제 질문 예들은 이 글의 마지막에 실고 보시는 분들 풀어보라고 시키겠습니다 -_-+;

    6. (추천인 체크)와 채용
    대인면접도 무사히 끝났다면 추천인(reference)들 목록을 달라 하기도 할 수도 있고 안할수도 있습니다. 매우 형식적인 절차라고 보셔도 되는데요. 그냥 현재나 과거직장동료, 친한 친구, 선생님 등등을 한 3명정도 보내면 됩니다. 그냥 '이 인간 믿을만한 인간이요?', '당신이 나라면 이 인간 채용하겠소?'라는 정도 질문입니다. 따라서 철천지 원수나, 예전에 칼부림 내고 헤어진 애인 등은 절대 추천인으로 쓰지 마시길 -_-;

    뭐 추천인 체크도 끝났다면(아니면 아예 체크조차 안했다면 곧바로) 채용계약서가 이메일로 날라올겁니다. 연봉 얼마에 언제부터 시작하고 등등, 여기에 적힌 모든 내용은 협상이 가능합니다. 시작날짜는 매우 유동적일거고, 연봉은 그보단 덜하겠지만 협상하면 더 받으실 수도 있습니다. 뭐 협상 안하셔도 한국에서 받는것보단 훨씬 많을 테지만 그래도 시작 연봉에 따라 나중에 연봉인상도 좌우되니 적당히 협상하세요. ^^

    7. 그 외 잡다한 것들
    이제는 오셔서 일하시기 위해 한국정리좀 하시고, 회사에서는 주는 서류 받아다 취업비자 신청하고 기타 등등 입니다. 뭐든간에 궁금한게 있으시면 회사나 미영사관/캐나다 영사관 등에 물어보면 다 하실 수 있을 겁니다. 저는 대학졸업한 뒤에야 먼저 와있던 가족따라 이민온 뒤에 취업한 뒤라 이 부분에 대해서는 잘 모릅니다. 그냥 그렇게 취업비자 받아서 온 한국, 영국, 콜럼비아 분들 몇 분 알 뿐입니다.

    비자 문제는 면접 통과하는 거에 비하면 그다지 어려운 일이 아닙니다.

    취업을 위해 갖춰야할 필수요건 / 선택요건
    위에서 면접절차를 설명드리면서 갖춰야할 이런 저런 자질들을 말씀드렸습니다. 그럼 이 자질들을 중요한 순서대로 나열해보겠습니다. 목록의 위에 있을수록 필수요건이고 아래쪽에 있을수록 선택요건입니다. 처음에도 말씀드렸듯이 중요한 요건(즉 위에 있는 것들)에 집중적으로 자원을 투자하셔야 합니다!!

    1. 실력
    실력이 없으면 운좋게 인사부 면접 통과해도 채용까지 가지 못합니다. 쓸데없이 인사부랑 면접보느라 시간만 낭비하실 겁니다. 따라서 실력이 우선입니다. 며칠전에 실력이 어느정도나 되야 하냐고 물어오신 분이 계셨습니다. 제가 위에서 열거한 대인면접 질문주제들을 빠삭하게 아실 정도면 아무 문제 없습니다. 그리고 아래에 제가 나열할 프로그래밍 질문들을 (어디서 배껴오지 않으시고) 풀 실력정도 되시면 역시 걱정 없습니다. ^^

    위에서도 잠시 말씀드렸듯이 경력이 없으신 분들은 인사부직원을 설득시킬 수 있을 방도를 준비해두시기 바랍니다. 개인 프로젝트를 통한 포트폴리오 구축이 와따입니다.

    이 외에도 대인관계 실력(people skill)이 있습니다. 일반 개발자로서는 중요한건 다른 개발자분들 존중하고 그 분들과 팀을 구축해서 일하기에 모나지 않은 사람입니다.즉 팀플레이어죠. 근데 누구나 개나소나 팀플레이어라고 우깁니다. 진정한 팀플레이어는 남을 존중해야만 가능합니다. 다른 사람들이 하는 일에 마찰을 일으키지 않기 위해서 뒤찜지고 있는 사람은 팀플레이어가 아니고, 다른 사람 하자는대로 아무 말없이 좇아가는 사람도 팀플레이어 아닙니다. '너는 나이가 어리니까', '넌 아는게 없으니까'라면서 무시하고 자기맘대로 하는 인간도 팀플레이어는 아닙니다. 팀플레이어는 건설적은 토론을 통해 게임개발과정을 수월하게 만드는 사람입니다. 언제나 너무 추상적인 개념이라 개나소나 팀플레이어라고 우기긴 하지만요. -_-

    2. 경력
    경력만큼 인사부에게 실력을 증명하기 간편한 수단이 없습니다. 다른 회사에서 근무할 정도면 그만큼 실력이 있을거라고 믿어주는 거죠. (결과적으로 문제는 인사부 직원들이 훌륭한 인재를 알아볼 실력이 없으니 대충 다른 회사의 인사부 직원들을 믿어보자는 속셈이죠 -_- 뭐 그래도 이 사람들을 통과해야 취업도 되니 저희가 굽히는 수밖에 ^^;;) 따라서 경력이 있으시면 훨씬 편할 겁니다. 제가 여러분들에게 권해드리는 방법도 한국에서 최소한 1~2년정도 경력을 쌓으시라는 거죠. 그리고 한국 게임회사에 취직이 안될정도의 실력이시라면 여기서는 더 어려울 거라고 생각합니다.

    또한 경력이 단순히 인사부를 속이기(?)에만 유용한게 아닙니다. 하지만 단지 게임을 오래 만들었다고 존경을 받아야 한다는 말은 아닙니다. (그런 거라면 저 게임계 당장 떠납니다.) 경력을 통해 쌓은 지혜(wisdom)는 정말 귀중합니다. 예를 들어 PS2 개발을 하셨던 분들이라면 PS3에서 하지 말아야 할 일 등 따위를 대략 느낌만으로도 아십니다. 따라서 쓸데없는데 시간 낭비하면서 소중한 개발비 날릴 가능성을 줄인다는거죠. 매우 값진 신내림이죠 -_-. 저만해도 Character Customization만 이미 3번 만들었는데, 실시간으로 DXT 텍스처를 생성하려면 어떤 짓을 하면 안되는지.. 아니면 어떤짓을 해야 하는지 등을 빠삭히 알고있죠. 그것도 PC, 엑박360, PS3등에서요. ^^

    3. 학력
    이거 학벌로 읽지 마시길 바랍니다. 사실 그놈의 학벌주의 때문에 한국대학교육 완전히 파탄났고, 그 때문에 졸업생들 자기들 전공에 전문가가 되기보다는 토익/토플에 전문가가 되는 상황이다보니... 아시아쪽 대학이름을 별로 믿어주지 않는 분위기입니다. -_-;;; 물론 전공에 대해서도 그런 편이고요. 그래도 없는 것보단 있는게 인사부를 통과하기가 조금은 편합니다. 학교이름보다는 전공이 중요합니다. 그리고 경력이 없으시다면 반드시 포트폴리오 준비하세요.

    4. 영어
    영어... 뒤에서 두번째에 나열했습니다. 놀라셨나요? 제가 1편, 2편 쓰고 가장 많이 들은 반응은 '전 영어를 못해서 힘들겠죠?'였습니다. 제발 좀... 깨어납시다. 한국분들 사실 영어 참 잘하십니다. 근데 영어 문법 하나만 틀려도 주변에서 '넌 영어를 왜그리 못하니?' 등등의 태클이 들어옵니다. 따라서 괜히 영어못하면 바보라는 자괴감만 들고 따라서 영어 잘못할까봐 피하게만 되고 무서워하고... 그래서 결국에 모든 일이 안되면 영어탓입니다.

    세상에 게임프로그래밍 하는데 영어쓸일이 얼마나 있습니까? 하루 8시간 일하면서 30분 영어쓰면 많이 쓰는 걸꺼 같은데요? 그 30분 영어하는거 아주 유창하게 못한다고 초천재 프로그래머 채용 안하겠습니까? 영어 몸짓발짓으로 그림그리면서 의사소통만 할 정도면 취직은 됩니다. 취직되면 살면서 자연히 늡니다. 저 고등학교때 수학성적은 올렸어도 영어성적은 올리는데 2년간 실패한 인간입니다. 대학때는 영어수업시간에서 선생이 발표준비하라는거 싫다고 했다가 대판 싸운 뒤 한번도 영어수업 안들어간 놈이구요. 고시준비하면서도 영어가 너무 싫어서 독어 했던 놈입니다. -_-;;; (그 뒤에 영어를 어떻게 했는지는 '5편: 실제 취업사례 - 포프'에서 말씀드리지요.) 영어는 닥치면 합니다.

    좀 더 현실적으로 말씀드리겠습니다. 이왕이면 다홍치마란 말이 있습니다. 만약 2명이 같은 자리에 지원을 했는데 2명의 실력/경력/학력(즉 위에서 1,2,3번)이 똑같으면 당연히 영어실력이 좋은 인간이 취업을 합니다. 이건 인종차별이 아닙니다. 본인이 한 회사의 사장이시더라도 똑같지 않으시겠어요? 따라서 언어의 벽을 넘어서 취업을 하시려면 영어는 몸짓발짓을 섞어가면서라도 의사소통이 될 정도로만 하시고 실력을 다른 지원자보다 높이기 위해 노력하셔야 합니다. 만약 2명이 지원을 했는데 한명은 실력/경력/학력이 훨 출중한데 영어가 딸리고 다른 한명은 실력/경력/학력이 딸리는데 영어가 출중하면 당연 실력/경력/학력이 출중하신 분이 취업합니다. 이건 정말 상식아닌가요?

    '나는 한국인이라 취업이 안돼.', '나는 본토인만큼 영어가 안되서 취업이 안돼.'라고 자위를 하면서 동정심이나 사고자 하시는 분들 많이 봤습니다. (특히 한인 이민자사회에 쌔고 쌨습니다.) 그리고 어쩌다 누가 한 명 백인회사(이렇게 표현하시더라구요?)에 취업하면 무슨 영웅보듯이 합니다. 아니, 베트남, 영국, 일본, 중국, 러시아, 폴란드, 콜럼비아 등  세계 모든 나라 사람들이 여기와서 취직하는데 왜 한국인은 안된다는게 말이나 됩니까? 저런 말들하시는 분들은 말그대로 자기가 못난거 인정할 자신조차 없고, 자기 발전시킬 노력도 하기 싫어하시는 게으르신 분들이니 제발 저런 분들이 하시는 말씀 무시하시기 바랍니다. 부탁드립니다.

    영어에 공포심을 느끼시는 분들이 너무 많고, 그것때문에 발목 잡히시는분들도 많으신거 같아서 별로 중요하지도 않은 영어에 대한 내용만 길어지고 있습니다. 하지만 이 내용을 더 길게 하기 위해(-_-;;;)제가 아는 다른 두 분의 이야기를 들려드리겠습니다.

    a) 캐나다에 놀러왔던 제 대학 후배: 여행을 매우 좋아하는 제 대학후배가 있습니다. 하지만 영어권보다는 이상한 개발도상국들을 많이 놀러다니는 친구입니다. 따라서 어느 한 언어를 딱히 공부하거나 연습할 기회가 없던 친구인데 제가 여기 온지 1년정도 되었을 때 놀러왔었습니다. 그 당시 저 스스로도 영어때문에 매우 주눅이 들어있었을 땐데 이친구... 사실 저를 매우 놀래켰죠. 이 친구 영어 정말 못하더군요. -_- 아주 심각할 정도로.... -_-;;;어디가서 물건 사는 것조차 힘든 친구였습니다. 근데 웃긴건 어딜 가든 길도 잘 물어서 척척 가고. 물건 찾는것도 물어봐서 척척 삽니다. 저보다 100배는 낳았습니다. 어떻게 하냐구요? 한영 전자사전을 들고다니면서 자기가 원하는 단어를 치고 그걸 발음합니다. 상대방이 못알아들으면 아예 보여줍니다. 이 친구 어느나라 가도 그렇게 살아남고 절대 부끄러워하지도 않습니다. "당연히 내 나라 언어가 아닌데 못하는게 당연한게 아냐?", "내가 돈주고 물건사겠다는데 내가 왕이지." (이걸 개발자에게 맞춰 바꾸면..."내가 지네 게임 만들어 주겠다는데 내가 왕이지."입니다.)  이런 자세 갖추시길 바랍니다. 가끔은 얼굴에 철판까셔도 됩니다. ^^

    b) EA에 취직하신 한국에서 오신분: 한국에서 고등학교 졸업하시자마자 경력 6년쯤 쌓으시고 EA 스포츠(캐나다에 있음)에 취직하신 분을 뵌적이 있습니다. 이 분도 영어 잘 못하셨습니다. 머물던 호텔에서도 영어 잘못이해해서 맨날 룸서비스시켜 드셔서 돈도 많이 내시고, 어디가서 뭐하실 때도 영어때문에 좀 시행착오를 거치시는거 많이 봤습니다. (심지어는 호텔에서 나갈 때도 영어를 이해를 못하셔서 여러번 물어보면 시간 꽤 끌었다는...^^) 그래도 몇년 째 일 잘하고 계십니다. 그리고 한동안 못뵈었지만 지금은 영어도 잘하시리라 생각합니다. (동료들 하고 어울리면서 늘어요.) 

    위의 이야기들이 힘이 되길 바래 봅니다. ^^ 영어는 그냥 쓰고 사셔야 늡니다.(한마디로 '영어공부 절대로 하지마라'라는 책에서 정찬용씨가 소개한 공부법이랄까요..) 그전엔 대충 못하셔도 상관없습니다. 영어에 쪽팔려하지 않고 대충이나마 연습하시고 싶으신분들은 저에게 영어로 트윗을 주시거나 답글을 영어로 남기셔도 됩니다. 저도 곧바로 영어로 답글합니다. -_-

    5. 인종
    뭐라 할말이 없습니다. -_-;;; 이걸 거론해야 하는 것 조차 참 어이없습니다. 하도 쓸데없이 '인종이 백인이 아니면 취업이 안된다.'라는 이야길 하면 자신의 허접함을 숨기시려는 분들이 많아서인데요 그런거 없습니다. 설사 있어도 한국의 인종차별에 비하면 아예 없다고 보셔도 됩니다. 무시합시다.


    마지막 몇마디
    이정도면 대충 이해하셨으리라 생각합니다. 실력 > 경력 > 학력 > 언어 > 인종 이라는 것을... 

    운이란 것은 없습니다. "운이 좋다"라는 말은 실력과 노력으로 뭔가를 이룬 멋진 사람들이 겸손한 척을 하기 위해 쓰는 말일 뿐입니다. 운이란 것은 없습니다. 단지 기회가 왔을 때 이미 준비가 되어있었던 사람들이 운을 만난 것처럼 보일 뿐입니다.


    그럼 프로그래머 면접문제 예제들을 드리면서 이 글을 마무리 짓겠습니다.

    프로그래머 면접문제들 예제
    당장 머리속에서 생각나는 면접문제들입니다. 친구분들하고 화이트보드 테스트를 흉내내며 서로 질문을 해봐도 재밌겠네요. ^^ 문제를 푸셔서 댓글로 답을 달아보시는 건 어떨까요? 제 맘대로 평가해드릴 수도 있습니다. ^^

    1. C의 atoi 함수를 구현해 볼 것
    2. C의 strlen 함수를 구현해 볼 것
    3. virtual void foo() = 0; 의 의미는 무엇인가 (클래스 선언 안에서)
    4. virtual 함수란 무엇인가
    5. polymorphism이란 무엇인가
    6. virtual 함수를 이용하는 간단한 클래스들을 구현해 볼 것
    7. bool isPowerOfTwo(unsigned int num) - num이 2의 승수인지를 판단하는 함수를 구현할 것
    8. void ReveseWordByWord(char* str) - str로 전달된 문장의 단어순서를 뒤집는 함수를 구현할 것. 예: "Dog is Cute"가 입력값이면 "Cute is Dog"이 반환값이어야 함
    9. void swap(unsigned char a, unsigned char b) - a와 b가 8bit 숫자일때 a와 b의 값을 바꾸는 함수를 구현할것. 단 새로운 변수를 사용하면 안됨.
    10. void foo() const; 에서 const의 의미는 무엇인가 (클래스 선언안에서)



    p.s.
    • 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^
    • 3주동안 한번도 안거르고 썼어요.. 칭찬해주세요 ^_^
    • 질문은 답글로 남겨주세요.
    • 면접문제 다른거 생각나면 본글 에디트 한뒤 답글에 달겠습니다

    - 캐나다 버나비에서 Pope 올림.

    2010년 7월 24일 토요일

    이것 저것: 컴퓨터 게임 그래픽의 미래


    CryEngine 3Image via Wikipedia

    지난 몇주간 보고 들은 게임에 관련된 흥미로운 뉴스들:



    Enhanced by Zemanta

    2010년 7월 23일 금요일

    포토샵 블렌딩 수학공식

    게임업계에서 일하는 그래픽 프로그래머라면 아티스트들이 가끔 이런 요청을 해올 것입니다.

    "포토샵에서 오버레이 블렌딩 옵션이 있는데 이거 게임에서 쓸 수 있어요?"

    이럴 때 "꺼져 -_-!" 라고 한마디 하는 것보다... "네 그러지요 ^^" 라고 하면 아티스트들에게 좀더 사랑을 받을 수 있겠죠? 저도 최근에 포토샵 블렌딩 옵션중에 Overlay하고 Screen을 쉐이더에서 지원할 일이 있었답니다. 그 때 도움이 된 웹사이트 링크들을 아래 나열했습니다. (코드만 보셔도 됩니다 ^^)


    2010년 7월 22일 목요일

    게임개발자 북미취업 가이드 2편: 북미 게임개발 근무환경/취업시장


    드디어 전자책이 나왔습니다. 전자책 구매 방법은 연두미디어의 홈피를 참조해주세요.




    게임개발자 북미취업 가이드 시리즈 목차
    안녕하세요.  포프입니다. 지난 주에 이어 이번 주에는 북미 게임개발자들의 근무환경과 취업시장에 대해 짤막하게 논해보겠습니다. 가능하면 한국과의 차이점을 설명드리고 싶은데 제가 한국에서 제대로 게임개발을 한 게 벌써 15년 전이라 과연 얼마나 제대로 할 수 있을지 모르겠습니다. 제가 아는 한국시장에 대한 지식은 15년전의 것이거나 최근에 아는 지인들을 통해 들은 것이 전부니 제가 잘못알고 있는 것이 있으면 지적 부탁드립니다.

    북미 게임개발 근무환경
    사실 어느 나라의 근무환경은 그 나라 국민이 공유하는 문화의 영향을 가장 많이 받습니다. 이쪽의 근무환경이 한국의 근무환경과 다른 것도 바로 그런 문화차이 때문일 것입니다. 사실 미국/캐나다라는 나라와 문화를 막연히 동경하시는 분들도 꽤 계신거 같은데(사대주의?) 그런 잘못된 동경때문에 인생 그르치는 일 없으시길 바랍니다. (많이 봤습니다 -_-) 그 나라의 문화가 몸에 맞아야 그 나라에서 일하고 사는 것이 즐거운 법입니다. 저는 이쪽 문화가 저에게 더 잘 맞아서 여기서 일하는게 즐겁습니다. 부디 저와 비슷한 분들이 이쪽으로 많이 오셨으면 좋겠습니다.

    다음은 제가 생각하는 북미문화와 한국문화의 차이점입니다. 부디 본인에게 맞는지부터 먼저 확인해보시길 바랍니다.

    • 합리주의: "~라면 당연히 그래야 한다."라는 억지는 잘 통하지 않습니다. 합리적이고 논리적인 타당한 이유가 없으면 다른 사람들을 설득하기가 어렵습니다.
    • 실용주의: 실제 쓸모가 있는 일에 많은 중점을 둡니다. 따라서 기술자들의 대우가 상당히 좋습니다. (왠만한 사무직 보다 낫죠.)
    • 개인주의: 개인의 사생활 보장을 매우 중요하게 받아들이는 문화입니다. 따라서 강제적인 집단문화가 없고, 소수일지라도 각 개인의 의견을 존중해 줍니다. 따라서 일과 삶의질 사이의 균형도 매우 중요시합니다.
    • 가족중심: 가족중심 문화는 사실 개인주의라는 특징에서 유래합니다. 한국에서는 남편이 직장에 다니고 부인이 집에서 살림하면 남편은 가족은 등한시하고 회사일만 하며 가족은 부인이 다 챙기는 경우가 여전히 비일비재하더군요. 여기서는 별로 안그렇고, 회사자체에서도 근무시간 외의 이벤트에는 가족(또는 애인)동반을 장려하는 경우가 대부분입니다.

    그럼 위와 같은 문화적 차이점들이 구체적인 근무환경에 어떤 영향을 미치는지 살펴보겠습니다.

    급여/사회적 지위
    한국의 게임프로그래머들 얼마 받으시죠? 초봉 꽤 적은걸로 알고 있습니다. 왠만한 사무직보다 적지요? 사실 한국에선 기술자들이 왠만한 사무직보다 봉급이 다 적지 않나요?  제 기억엔 은행에 취업하는게 게임프로그래머 하는 것보다 돈 더 잘받는 걸로 알고 있습니다. 그래서인지 왠지 공돌이 무시하는 분위기도 사회에 만연하죠. ('기술자 박대'라는 표현도 몇 번 들었습니다.)

    근데 전 이게 언제나 이해가 안되었습니다. 사실 한국의 성장을 주도한 것은 사무직이 아니라 기술자들 아니었나요? (기술자 노동착취가 삼성의 비약적인 성장의 원동력이었다란 이야기도 들었죠.) 전 언제나 기술자들이 더 사회적으로 인정받고 급여도 더 높이 받아야 한다고 생각해왔습니다. 이런 말 하면 "니가 공돌이니까 그래."라고 하시는 분들이 있을 법도 한데 저 사실 한국에서 법대 나왔습니다. ^^ 법대졸업생으로 한국에서 사무직으로 취업하면 왠만한 기술자들 보다 더 인정받는 다는거 알고 있을 때에도 여전히 기술자들이 더 받아야 한다고 생각했었습니다.

    그럼 북미쪽은 어떨까요? 일단 급여부터 말씀드리면 당연 왠만한 사무직보다 많이 받습니다. 보다 객관적인 자료를 드리자면 가마수트라하고 Game Developer Magazine으로 유명한 CMP Media에서 매년 행하는 연봉조사(survey)가 있습니다. 다행히도 며칠 전에 그 결과를 무료로  공개했더라구요. 이 자료를 보면 아시겠지만 전체 프로그래머의 평균봉급은 대략 미달라 80,000불 정도 됩니다. (자세한 자료는 위 링크의 차트를 보세요.) 이건 연봉이고 여기다 보너스는 별도로 평균 15,000불 정도 받아갑니다. 게임 아티스트나 기획자들은 대략 연봉으로 70,000불정도 받아가신다고 보면 됩니다. 연봉이란게 사실 그 도시의 물가하고도 많이 관련이 있습니다. 물가가 높은 도시에 사시면 연봉도 더 받고 물가가 낮은 도시에 사시면 연봉도 덜 받습니다. (예전엔 밴쿠버 물가가 확실히 서울물가보다 높은 거 같았는데 이젠 그것도 아닌 것 같습니다.)

    제 연봉만 해도 -- 회사와 체결한 고용계약서 때문에 정확한 수치는 말씀드릴 수 없지만 -- 환율 좋으면 한화로 1억 좀 넘고 나쁘면 1억 안됩니다. 물론 제가 현재 수요에 비해 공급이 좀 딸리는 그래픽 프로그래머라 봉급이 남들보다 조금 높을 수도 있지만 저보다 더 많이 받으시는 분들 허다합니다.

    그렇다면 사회적인 지위는 어떨까요? 절대 무시받지 않습니다. -_-;;; 물론 변호사나 의사들을 더 인정해주는 분위기지만 공돌이를 일반사무직보다는 더 인정해주네요. ^^  하긴 자본주의 사회니까 '사회에서 인정받는 직업 = 높은 연봉' 이라는 공식으로 대충 보셔도 될 듯 합니다.

    근무시간
    하루 8시간씩 주 5일 근무, 즉 1주에 40시간 근무가 기본입니다. 물론 게임출시일을 맞추려 하다 보면 프로젝트 말기나 중요한 마일스톤 전에 초과근무를 하는 경우가 있습니다. 하지만 본인이 원하지 않으면 그렇게 강제로 시키지도 않습니다. 저만해도 주 40시간 넘어서 초과근무한 건 지난 4년동안 1~2달도 안됩니다.

    설사 초과근무를 하더라도 프로젝트가 끝나면 초과근무시간 보상해준다는 명목으로 휴가도 좀 줍니다. 제가 저번에 프로젝트 끝냈을 때는 2주 받았네요. (거의 초과근무도 안했는데 줬어요 -_-) 물론 예외는 있습니다. 일례로 바이오웨어의 Mass Effect 게임은 2~3년간의 끝내주는 초과근무로 악명이 높았습니다. 문제는 이 프로젝트 끝나자마자 꽤 많은 수의 개발자들이 회사를 떠났다는 건데요. 실력있는 개발자를 구하기가 쉽지 않다는 것을 회사에서도 아는지라 가능하면 이런 짓(?)을 안하려는 분위기입니다.

    근무시간 외 회사이벤트는 선택사항
    이쪽 문화가 각 개인의 의견 및 결정을 존중해주는 문화이다 보니 집단주의는 좀 찾아보기 힘듭니다. 강제적인 회식 같은 것도 없고, 반드시 참여해야 하는 회사 워크샵이냐 팀빌딩 이벤트 같은 것도 찾아보기 힘듭니다. 따라서 우르르~ 문화 좋아하시는 분들은 좀 외로우실 거고, 스스로 결정 내리기 싫어하고 윗 사람들이 억지로 끌어주는 거 은근 즐기시는 분들도 좀 안맞으실 겁니다. -_- 이런 부분이 인간미가 떨어진다고 하시는 분들도 계실텐데 개인주의 성향이 강한 저에겐 매우 잘 맞습니다.

    그렇다고 팀빌딩 이벤트 따위가 없는건 아닙니다. 팀 빌딩 이벤트는 언제나 직원들의 의견을 물어서 결정하고, 다수결로 어떤 이벤트를 하기로 결정을 해도 참여하기 싫은 사람은 참여 안해도 됩니다. 물론 이것이 근무시간 도중에 일어나는 이벤트면 그 이벤트에 참여안하는 대신 회사에 남아서 일반 근무를 해야합니다. 근무시간 외에 일어나는 이벤트면 그냥 집에 가도 됩니다. -_-;

    이 외에도 회사주최로 하는 바베큐 파티라던가 야유회등도 가끔 있는데 이런 경우에는 보통 가족 및 애인 동반으로 합니다. (그렇지 않으면 사람들이 그냥 참여 안하고 집에 가거든요. -_-;;; 그런 면에서 매우 가정적인 사회이기도 합니다.)

    휴가는 자기 원할 때 쓴다.
    근로기준법상 모든 직원들은 최소 1년에 2주의 개인휴가를 받습니다. (캐나다는 2주인게 확실한데 미국은 확실히 모르겠습니다. 미국도 2주라고 들은 게 전부입니다.) 법적으로 보장되는 것은 2주인데 실제 대부분의 회사가 2 ~ 4주의 휴가를 줍니다. 이 휴가는 자기가 원할 때 아무 때나 쓸 수 있습니다. 예를 들면 매주 금요일마다 휴가를 써서 집에서 편히 금, 토, 일을 쉬는 법도 있고, 아예 통째로 3주를 한 번에 몰아써서 길게 여행을 다녀와도 됩니다. 아마 이것도 개인의 결정을 존중하는 문화적 배경 때문에 나온게 아닐까 싶습니다.

    물론 이 개인휴가는 법정 공휴일하고 아무 상관이 없습니다. 법정 공휴일 다 놀대로 놀고 그 외에 2 ~ 4주 또 노는 겁니다. 법정 공휴일 이야기가 나왔으니 말인데 이곳의 법정공휴일도  거의 언제나 금요일이거나 월요일입니다. '4월 5일은 식목일'이라는 식의 공휴일이 아니라 '5월의 4째주 월요일은 빅토리아 데이'라는 식으로 공휴일이 정해져있기 때문입니다. 따라서 좀 어중간하게 수요일쯤에 껴서 있으니 만도 못한 공휴일이 적습니다. 전 이것도 매우 합리적이라고 생각합니다. (아님 그냥 놀길 좋아하는 거던가.. -_-)

    이 외에도 또 다른 공짜 공휴일이 있습니다. 대다수의 게임회사들이 12월 25일부터 1월 1일까지 스튜디오 문을 닫습니다. (게임개발자들은 단지 놀기 좋아하는 인간들이라 그렇다고 생각합니다.... 가 아니라 보통 크리스마스 시즌을 목표로 게임을 출시하므로 그 뒤에는 좀 놀아도 됩니다 -_-.)

    실력위주: 나이나 학벌은 별 상관이 없다.
    이곳은 실력위주입니다. 실력 있는 놈들이 빨리 승진하고 봉급도 팍팍 올려받습니다. 회사에 단지 오래있는다고 해서 상사가 되는 곳은 절대 아닙니다. 학벌도 크게 상관없습니다. (하지만 학력은 경력이 없을 때 실력을 증명하는 척도가 될 수 있으므로 상관이 있을 수 있습니다. 자세한건 "3편: 취업을 위한 필수/선택요건 - 면접절차"에서 논하겠습니다.) 나이도 크게 상관이 없습니다. 처음 사람 만나자 마자 "나이가 몇살이세요?" "학교 어디 나왔어요?"이런 질문 묻지도 않습니다. (물론 가끔 한국 분들이 물으시긴 합니다만 전 가볍게 무시합니다. '내가 형이네 아우네....', '내가 선배네 후배네....', '어쩌네 저쩌네....', '얼씨구나 지화자 좋네.. -_- ' 딱 질색입니다 -_-;;;) 

    물론 줄 잘서서 취업되는 경우도 드뭅니다. 그런 경우를 한 두번 보긴 봤는데 결국 얼마 못가서 지가가 못버텨서 나가거나 짤리더군요 -_-; 대충 묻어가는 건 없다고 보셔도 됩니다.

    따라서 승진도 하고 연봉 인상도 받으려면 계속 실력을 쌓으셔야 합니다. (일하다 보면 자연스럽게 쌓이긴 하죠.) 하지만 현재 하는 일에 100% 만족하시고 더 이상 성장하고픈 욕망이 없으신 분들은 그냥 현재 실력 유지하면서 같은 직급에서 같은 봉급 받으시면서 평생을 유유자적 하셔도 됩니다. 여기서는 "실력 = 연봉"입니다.

    업무영역의 전문화가 잘 되어있다.
    한국에서는 서버 프로그래머/클라이언트 프로그래머로 구분을 많이 짓는 것 같습니다. (MMO및 웹 게임이 주류라 그럴지도 모르겠군요). 여기서는 그보다는 좀 더 자세히 구분을 짓습니다. 위키피디아만 보셔도 매우 자세히 나누는데 일반적으로는 다음과 같이 구분짓는 것 같습니다.

    • 네트워크 프로그래머
    • 그래픽스 프로그래머
    • 게임플레이 프로그래머
    • 프론트엔드(UI) 프로그래머
    • 오디오 프로그래머
    • 도구(tools) 프로그래머
    • 만능(generalist) 프로그래머: 특정 분야에 전문화 되지 않고 이것저것 두루두루 적당히 할 수 있는 프로그래머입니다.

    참고로 아티스트들은 다음과 같이 구분짓습니다.

    • 컨셉 아티스트
    • 3D 캐릭터 모델러
    • 3D 환경(environmental) 모델러
    • 애니메이터
    • UI 아티스트
    게임 기획자들의 전문화는 특별히 정해진 바가 없고 각 게임따라 바뀌는 것 같습니다.
    • 전투 시스템 기획자
    • 싱글 플레이 캠패인 기획자
    • 멀티 플레이어 기획자
    • 등등..

    굳이 팀장이 안되도 상관없다.
    한국에서는 실력/경력이 쌓이면 팀장이 되서 팀을 이끄는 것을 당연하게 여기는 것 같습니다. 그래야만 승진도 되고 봉급도 인상받는 거 같구요. 여기서는 굳이 팀장을 할 필요는 없습니다. 이것도 역시 보통 개인의 성향따라 달라지는데요 리더쉽있고 사람을 다루는 능력이 있는 사람들은 팀장을 할 수 있지만, 좀 은둔자 성격이 강하고 사람하고 말하는 거 그닥 즐기지 않지만 엄청난 코딩스킬을 가진 사람이라면 그냥 Senior 프로그래머가 되서 코딩만 계속 열심히 하며 사는 길도 있습니다. 어느 길을 가던 승진이라던가 봉급의 차이는 크지 않습니다. 당연히 팀장이 아닌 사람보다는 팀장이 직급도 높아지고 돈도 많이 받을테지만 팀장이 Senior 프로그래머보다 직급이 높다곤 할 수 없고, 돈을 반드시 더 많이 받지도 않습니다.

    사실 제가 여태까지 직급타령을 해서 '아~ 북미에도 엄격한 위계질서가 존재하는구나~" 라고 생각하실 분들이 계실거 같은데 그렇지도 않습니다. 여긴 상하 위계질서가 상당히 없는 편입니다. 보통 프로그래머들 직급 나눌 때, 일반 개발자 직급은 보통 Junior / Intermediate / Senior 셋으로 나누는게 보통이고 개발자가 아닌 관리직으로 가면 그 위에 뭐 Technical Director 정도가 있습니다. 그리고 이 몇 안되는 직급에서조차도 역시 위계질서는 찾기 힘듭니다. 쥬니어던 시니어던 그냥 친구처럼 잘 어울려 지냅니다. 아마 이건 사실 존댓말/반말 구분이 없는 영어라는 언어때문인지도 모르겠습니다. 나이에 따라 직급에 따라 쓰는 언어가 다르지 않다보니 그냥 다들 평등하게 보는 것 같습니다.

    대형회사는 콘솔게임이 대세다.
    한국의 게임 대기업들은 주로 MMO를 만들거나 웹게임을 만드는 것 같습니다. 불법복제 때문이기도 하겠고 게이머들의 대부분이 MMO나 웹게임을 하기 때문인 것 같습니다.. 여기는 불법복제문제가 한국보다는 좀 괜찮습니다. 게이머들의 취향도 좀 다르고요.  월드 오브 오크래프트 외에는 MMO를 플레이하는 사람들이 그리 많지 않고, 대부분의 게이머들의 콘솔이나 PC등의 패키지 게임들을 즐깁니다. 그래서인지 콘솔용 AAA 타이틀을 개발할 자금이 있는 대기업들은 여전히 패키지 게임을 많이 만듭니다.

    이 외에도 엑스박스 라이브 게임이나, 아이폰 게임, 페이스북 용 플래쉬 게임 등을 만드는 회사들도 있는데 이들은 주로 중소기업입니다. 참고로 아이폰 게임과 페이스븍용 플래쉬 게임은 최근들어 급성장하고 있는 분야입니다.

    사실 한국에서 곧바로 북미로 취업을 하시려면 규모가 큰 게임을 만드는 회사를 노리셔야 할겁니다. 그 이유는 중소기업 보다는 대기업들이 언제나 실력있는 인재에 목말라서 취업비자 받는 것을 보조해주면서 까지도 해외인재를 영입하는 경우가 많기 때문입니다. 물론 이미 취업비자가 있거나 이민을 하셔서 영주권을 먼저 따신다면 아무 회사나 가셔도 되겠죠. ^^ (따라서 영주권이나 시민권 있는데도 취업 못하시는 분들은 100% 실력이 없으셔서 입니다. 죄송 -_-)

    북미 게임개발 취업시장
    자, 이제 이쪽의 취업시장에 대해 알아보겠습니다. 과연 게임개발자가 미래가 있는 직종인지 그리고 어느 도시에 게임회사들이 많은지가 제일 중요하겠죠?

    게임회사의 운명은 안정적이지 않지만 게임개발자의 미래는 밝다.
    게임업계는 사실 프로젝트의 성공/실패가 회사의 존패를 좌우하는 곳입니다. 수십억에서 수백억 들어가는 AAA급 콘솔 타이틀들 망하면 당연히 타격이 크겠죠? 따라서 그런 게임들 망하면 회사문닫고 직원들 전부 내보내는 경우 허다합니다. Need for Speed로 유명했던 EA 블랙박스도 최근에 그렇게 문닫고, 직원의 대다수 짤랐습니다.

    하지만 전 이런 문제에 크게 신경쓰지 않습니다. 전세계적인 게임시장을 보면 여전히 성장 중이고(심지어는 이젠 30/40/50대 여성분들까지 플래시 게임들을 상당히 즐기시더군요) 앞으로도 계속 성장할 것이므로 게임개발자들 -- 특히 실력이 있는 -- 에 대한 수요는 여전히 높습니다. 일례로 몇 년 전에 Activison Blizzard에 인수된 Radical Entertainment라는 밴쿠버 회사가 구조조정 명목으로 직원의 절반 이상을 짤랐을 때, 다른 밴쿠버 기업들이 취업박람회를 열어서 실력있는 직원들을 재빨리 영입했습니다.

    저희 회사도 그렇고 다른 회사만 봐도 언제나 실력있는 개발자들을 구하는 구직공고가 계속 올라옵니다. 제가 느끼는 북미쪽의 게임개발자 취업시장은 아직도 매우 밝습니다. 물론 주변에서 "경기가 안좋아서 취직이 안된다."라고 불평을 하시는 분들 몇 분 봤습니다. 하지만 솔직히 죄송한 말씀이지만 그 분들 취업안되는 이유는 실력이 없어서더군요. -_-  (실력이 없어서 취직이 안된다는 걸 빨리 인정하셔야 실력을 높일 궁리라도 할 텐데 말이지요.)

    물론 그럴 일은 없겠지만 게임업계 자체가 완전히 붕괴되서 일할 곳이 없어지면 어떻할까요? 그럼 다른 업계로 가면 됩니다. 게임개발자라는 직업이 사실 매우 기술적/정신적으로 많은 것을 요구하는 직업이라 다른 업계에 가서도 잘 적응하고 잘 삽니다. 프로그래머라면 다른 프로그래밍 회사에 쉽게 취직이 될테고, 저처럼 그래픽 프로그래머거나 아티스트들은 영화쪽 스페셜 이펙트 및 애니메이션으로 경로를 돌리셔도 됩니다. (헐리우드가 미국에 있는 건 다 아시죠? 캐나다도 헐리우드에서 외주를 많이 받습니다.)

    게임회사는 기후 좋은 곳에 많이 몰려있다.
    게임개발자들 중에 워낙 좀 하고픈대로 하고 사는 자유인들이 많다보니 기후좋고 살기 좋은 동네에 게임 스튜디오들이 많이 모여있습니다. 그래서 캐나다 및 미국의 서부해안을 따라 게임회사들이 좀 많습니다. 제가 있는 밴쿠버만 해도 EA 스포츠, 락스타 밴쿠버, Relic, Ubisoft 밴쿠버 등의 게임회사들이 모여있고, 게임회사 수로만 따지면 전세계 1위인 도시입니다. 역시 서쪽 해안에 위치한 미국의 캘리포니아 주에도 블리자드, 에픽, 루카스 아츠 등의 상당히 많은 회사가 모여 있습니다.

    하지만 기후가 별로인 몬트리올, 텍사스(사막지대! 아악~) 같은 곳에도 게임회사들이 몰려있는데 이것은 그 주정부의 세금혜택이 좋아서입니다. 각 도시에 있는 회사들을 대충(그다지 자세하진 않더군요) 살펴보시려면 http://www.gamedevmap.com/을 이용하세요. 가장 자세한 밴쿠버 게임회사 목록은 제가 AI 대학에서 강의하면서 만들었던 웹페이지에 있다고 합디다.. -_-

    이 정도면 대충 이쪽의 근무환경이나 취업시장에 대해 설명드린 듯 합니다. 저번 편과 이번 편은 사실 그냥 서론에 불과합니다. 다음 편부터는 좀 더 구체적인 내용을 살펴볼 것입니다. 다시 한 번 우려의 말씀을 드리자면 본인이 가장 행복한 곳에서 가장 즐거운 일 하시고 사시길 바랍니다. 본인에게 안 맞는데 이쪽으로 오셨다가 결국 적응 못하시고 돌아가시는 분들 많이 봤습니다. 그리고 애들 조기교육시키려고 이 쪽 오셨다가 오히려 애들 교육망치는 분들 수도 없이 봤습니다. (거의 대부분인듯.... -_-). 제발 그런 일 없었으면 합니다.


    "They must find it difficult ... those who have taken authority as the truth, rather than truth as the authority." -- Gerald Massey


    p.s.

    • 글 즐겁게 보셨고 다른 사람들에게도 도움이 되겠다 싶으시면 View On(Daum)이나 좀 눌러주세요. ^^
    • 언제라도 질문은 답글로 남겨주세요. "8편: 질문/답변"에 답변을 정리해 올리려고 합니다.

    - 캐나다 버나비에서 Pope 올림.