brunch

[6화] 죽기 살기의 절실함.

by 곽준원
이제 더 이상 물러날 곳이 없다.

DirectX 3D 학원에 등록하던 날, 마음 한편에는 아주 단순한 문장이 있었습니다.


'이 길 아니면 없다.'


말 그대로였습니다. 돌아갈 곳이 없는 감각은 사람을 억지로라도 성장시키고, 버티게 만드는 힘이 있습니다. 그전까지의 저는 늘 '이게 아니면 저거 하지 뭐'라는 식의 여지를 두고 살았습니다. 전산학과가 맞지 않으면 대학원을 가고, 대학원에서 당장 취업이 막히면 일단 더 배우고, '그래도 어떻게든 되겠지'라는 여유가 남아 있었습니다.


그런데 게임 프로그래밍을 배우는 시기부터는 그 여유가 사라졌습니다. 다른 친구들은 이미 회사 생활을 한지 벌써 3년이 다되어가고, 대학원 동기들도 하나둘씩 취업해서 번듯한 직장인이 되어 있었으니까요.


저는 더 이상 '전공 선택'을 할 수 없었습니다. 이건 더 이상 '눈치 보기용 학력'도 아니었습니다. 바로 생계의 문제였습니다.


앞으로 뭘 해서 먹고살 것인가. 나는 어떤 사람으로 존재할 것인가. 나는 앞으로 무엇을 하면서 하루를 보낼 것인가. 이 질문들 앞에서 저는 꽤 냉정해져야만 했습니다.


'다시 대학으로 도망갈 수도 없다.', '집에 그냥 있을 수도 없다.', '이제 진짜 뭔가 할 줄 아는 사람이 되어야 한다.' 결국 도달한 생각 끝에는 '이걸 못하면 나는 끝이다'라는 절박함이었습니다.


너무 극단적으로 들릴 수도 있지만, 그때의 저에게는 정말로 그렇게 느껴졌습니다. 그만큼 절실했습니다. 그만큼 물러설 곳이 없었습니다.


수업은 10명이 정원이었다.

학원 첫날, 제가 듣는 수업에는 정원이 10명이었습니다. 다들 표정이 비슷했습니다. 대학 갓 졸업했거나 잠시 휴학을 하고 게임 개발자가 되려고 학원에 등록한 사람들. '나도 이제 진짜 먹고 살아갈 무기를 만들어야 한다.'라는 부담을 얼굴로 들고 온 사람들이라 할 수 있었습니다.


처음에는 분위기가 꽤 활기찼습니다. 아직 초반이라 여유가 있었던 탓일까요. 아니면 본격적인 프로젝트가 이나라 C/C++과 같은 기초 수업이라서 그랬을까요. 우리는 그때 배운 내용을 잘 따라가면 개발자가 되리라 진심으로 믿었습니다. 하지만 그 믿음은 프로그래밍 언어 수업이 어느 정도 진행되고부터 시험대에 오릅니다.


학원은 C언어부터 시작합니다. 그다음은 C++이었고요. 기본적인 문법이야 모두 잘 따라 합니다. 그러나 포인터, 메모리, 객체지향, 상속, 가상 함수, 인터페이스... 아직 개념을 확실히 다지기도 전에 곧바로 DirectX와 3D 렌더링 개념까지 익힙니다. 좌표계, 행렬, 카메라, 버택스, 텍스쳐, Z-buffer.


말만 들으면 순서가 있어 보이지만 실제 체감은 이랬습니다. '수영을 가르쳐준다고 해서 수영장에 왔는데 일단 수심 5m인 데로 밀어 넣고, 팔다리를 움직여 보라고 하는 느낌'. 이 휘몰아치는 감각을 버티지 못하는 사람들이 하나둘씩 사라지기 시작했습니다.


처음에는 10명. 3개월이 흐른 뒤에는 줄어 있었습니다. 6개월이 지나자 절반 이상이 사라졌습니다. 그리고 다른 반도 마찬가지였나 봅니다. 진도가 비슷한 두 반을 합쳐도 10명이 채 되지 않았습니다. 그리고 마지막까지 버티며 실제로 '개발자 취업'이라는 단어에 달려가는 사람은 더 적었습니다.


저를 포함해서 4명이었습니다. 다른 반까지 합쳐서 겨우 그 정도였습니다. 그 말은 곧 이렇게도 들립니다. 절반 이상이 떨어져 나갔고, 절반 중에서도 끝까지 간 사람은 더 적었다는 것입니다. 그 현실을 눈앞에서 보게 되면 흔들리지 않을 수 없습니다.


'나는 남을 수 있을까?'

'1년이 다 되어가서 포기하고 싶으면 어떻게 하지?'


교육이라는 말은 보통 안전하고 중립적인 단어처럼 들립니다. 하지만 그때의 학원은 그런 분위기가 절대 아니었습니다. 거의 생존 훈련장이었습니다.


지하철에서 노트에 코드를 작성하다.

그 시절 어떻게든 포기하지 않고 개발자가 되려는 저의 하루 루틴을 말씀드려 볼까 합니다. 학원 수업을 듣고 나면 저는 지하철을 탔습니다. 버스로도 집으로 올 수 있었지만, 지하철에서 밖에 할 수 없었던 하나의 행동 때문입니다. 앉든 서 있든 가방에서 공책을 하나 꺼내고 볼펜으로 코드를 썼습니다. 손으로 직접.


지금은 IDE(통합 개발 환경)에서 자동완성, 문법 오류 밑줄, 경고 메시지와 같은 것들이 도움을 꽤 줍니다. 하지만 그때 저는 '내 머리로 코드의 형태를 기억하는 연습'을 일부러 했습니다.


예를 들면 이런 식입니다.


1. 메인 루프에서 뭘 먼저 돌려야 하지?

2. 윈도우 생성하고 메시지 처리하고, 렌더링 호출하는 순서가 맞나?

3. 매 프레임마다 어떤 값을 경신해야 할까?

4. 지금 이 포인터는 누구 소유일까? 내가 해제해야 하나? 아니면 시스템이 알아서 정리하나?


저는 이러한 로직을 직접 노트에 적었습니다. 전부 손으로 썼습니다. 지하철 칸 안에서 주변은 다 피곤한 얼굴로 고개 떨구고 자거나, 이어폰에서 흘러나오는 음악을 듣고 있었지만 저는 혼자서 노트에 괄호를 그리고 세미콜론을 찍고 포인터 기호를 적었습니다.


지금 생각하면 꽤 이상한 풍경일 수도 있습니다. 그런데 그때의 저는 그게 당연했습니다. 왜냐하면 학원에서 배운 걸 그날 집에 가기 전에 한 번이라도 제 문장으로 다시 재구성하지 않으면 다음 날이면 다 잊어버렸기 때문입니다.


그만큼 저는 기초가 상당히 약했습니다. 이미 대학 시절 코딩에 전혀 소질이 없었던 학생이었기 때문에 '한 번 듣고 바로 이해' 같은 건 제 영역이 아니었습니다. 그래서 저는 계속 적었습니다. 설명 다시 적고, 변수 이름 정하고, 포인터의 레퍼런스가 어떻게 되는지 로직을 구구절절 적고, 머릿속으로 흐름을 따라가 봤습니다.


그건 마치 이런 느낌이었습니다. 운전을 못하는 사람이 머릿속에서 시뮬레이션을 반복하는 것. '왼쪽 깜빡이 켜고, 사이드미러 보고, 고개 돌려서 사각지대 확인하고, 천천히 차선 바꾸고..' 그 과정을 계속 머리로 재현하는 것과 같았습니다.


그리고 집에 도착하면. 바로 컴퓨터를 켜고 Visual 6.0을 실행시켰습니다. 노트에 적은 걸 그대로 타이핑합니다. 오타로 컴파일에 오류가 생기면 어디서 틀렸는지 확인하고 수정했습니다. 멈추면 왜 멈췄는지 로그를 찍어봤습니다. 화면에 뭔가 하나라도 그려지거나 원했던 동작이 제대로 진행되면 그걸 한참 쳐다봤습니다.


'삼각형이 떴다.'

'삼각뿔의 각 면에 칼라 값이 적용됐다.'

'회전이 제대로 됐다.'


이건 저에게 기적이었습니다. 어제까지만 해도 책을 덮게 만들던 그 코드들이 이제는 제 손에서 조금씩 움직이고 있었습니다. 그 체험은 단순한 성취감이 아니었습니다. 거의 살아 있다는 확인이었습니다.


'나도 프로그래밍이라는 걸 조금은 할 수 있구나.'


이 감각은 사람을 버티게 합니다. 당장 잘하는 건 아니어도, '완전히 불가능한 인간은 아니구나.'라는 확신을 줍니다. 그 확신 하나로 저는 또 다음 날 학원으로 발걸음을 옮겼습니다.


서버 개발은 나와 맞지 않다

학원에서는 개발 전체 과정을 거진 다 배웁니다. 그중에서 네트워크 개발도 빠질 수 없었죠. 이러한 공부를 하다 보면 의외로 빨리 드러나는 게 있습니다. '내가 어떤 쪽과 맞는가'라는 감각입니다.


게임 개발에도 여러 역할이 있습니다. 서버 쪽은 데이터를 관리하고, 동시 접속, 세션 유지, 부하 분산, 보안, 동기화 같은 걸 다룹니다. 클라이언트 쪽은 화면에 보이는 것, 조각감, 애니메이션, 이펙트, 물리 반응 등을 다룹니다.


저는 네트워크를 배우면서 어떤 감각이 나에게 맞는지 점검했습니다. 물론 둘 다 일단은 잘 배워둬야 했습니다. 왜냐하면 이 시점의 저는 뭐든 할 줄 알아야 했거든요. 그런데 공부를 하면 할수록 제 마음이 어느 쪽으로 기울기 시작했습니다.


서버보다는 클라이언트로..


서버 쪽 공부는 제가 늘 '안 보이는 걸 상상해서 관리하는 일'처럼 느껴졌습니다. 그건 중요히지만, 동시에 제겐 불안한 영역이었습니다. 눈에 잡히질 않으니까요. 반면 클라이언트 쪽은 제가 코드를 치고 실행하면 눈앞에서 무언가가 반응했습니다. 조금만 바꿔도 캐릭터 움직임이 달라지고, 조면을 바꾸면 분위기가 달라지고, 카메라 시야범위만 바꿔도 게임의 분위기가 확 달라졌습니다.


저는 이런 직접 반응이 상당히 마음에 들었습니다. '내가 수정한 코드가 지금 저 화면에 나타나는구나.' 이건 단순히 재미의 문제가 아니었습니다. 이건 적합성의 문제였습니다.


저는 실체를 보고 싶어 하는 사람이었습니다. 제가 손댄 결과가 즉시 눈에 잡혀야 머리가 돌아가는 타입입니다. 즉, 저는 사용자의 경험에 가까운 곳에서 일할 때 에너지가 나오는 사람이었습니다. 그걸 깨달은 순간 저는 스스로에게 이렇게 말할 수 있었습니다.


'아. 나는 클라이언트 프로그래머 쪽이구나.'

'나는 결국 화면을 다루고, 움직임을 만들고, 감각을 다듬는 방향이 맞는구나.'


6개월 이후, 혼자 싸우는 구간

학원의 전체 과정은 대략 1년입니다. 처음 6개월은 강의실에서 이론과 기초 기술을 총력으로 밀어 넣는 구간이었습니다. '이건 이렇고 저건 저렇다.', '지금은 일단 개념만 알면 돼.' 같은 말들이 쏟아지는 시기입니다.


그리고 그다음 6개월은 조금 다릅니다. 그다음부터는 개인전입니다. 말 그대로 포트폴리오 싸움입니다. 이 시점부터는 '가르쳐주세요.'가 아니라 '내가 뭘 만들었는지 보여줄게요'의 단계입니다.


자기 이름으로 걸 수 있는 결과물이 있어야 합니다. 당장 판매할 만한 제품의 퀄리티까지는 아니더라도, 최소한 '내가 이런 시스템을 직접 설계하고 구현해 봤다.'라고 말할 수 있는 수준의 결과물이 필요합니다.


저는 완벽한 사람도 아니고 천재도 아니고 타고난 재능으로 치고 나가는 타입도 아니었습니다. 그래서 전략은 간단했습니다. '압도적인 완성도는 못 내더라도, 난 포기하지 않고 끝까지 간다.'


끝까지 가는 사람이 많지 않다는 걸 저는 이미 눈앞에서 본 상태였습니다. 한 반에 10명으로 시작해서, 인원이 부족한 다른 반과 통합해도 취업까지 가는 건 4명이라는 현실. 그 숫자는 제게 이렇게 들렸습니다.


'끝까지 가기만 해도 상위권이야.'


그러니까 저는 끝까지 버티기로 했습니다. 기능을 붙이고, 조작감을 다듬고, 월드를 구성하고, 메뉴를 만들고, 카메라의 여러 값들을 설정하고, 최소한 실행 가능한 파일로 만드는 것. 그걸 제 이름을 만들겠다는 집착이 생겼습니다.


첫 면접 제안

그렇게 포트폴리오를 만들고 있던 어느 시점부터, 기업에서 연락이 오기 시작했습니다. 이력서를 열람하는 기업에는 누구나 알법한 이름의 기업도 포함되어 있었습니다.


'한 번 면접 볼 수 있을까?', '지원 의사 있으면 당사 홈페이지를 통해 서류를 제출해 주세요.'


솔직하게 말씀드리면 그 연락을 받았을 때의 감정은 자부심보다는 안도에 가까웠습니다. '진짜로 연락이 오긴 오는구나.', '내가 완전히 헛짓한 건 아니었구나.' 왜냐하면 제 머릿속에는 여전히 이런 의심이 남아 있었습니다.


'나는 전산학 전공자였지만 코딩 못하던 학생이었는데..'

'대학원은 도피 같았잖아.'

'신입으로 가기에 꽤 나이가 있는 내가 취업을 할 수 있을까.'


이러한 의심이 연락 한 통으로 조금 균열이 갔습니다. 지난 1년을 승인해 준 느낌이었습니다. 물론 첫 면접에서 기술 면접과 포트폴리오를 설명하면서 부족함이 드러났습니다. 아직 다듬고 있다고 변명을 해보아도 그 결과물에서 커트라인을 넘길 정도의 퍼포먼스는 나오지 않았나 봅니다.


그리고 나는 입사했다.

부족하면 다시 보완하면 됩니다. 아직 1년의 학원 과정이 끝나지 않은 상태에서 첫 면접의 피드백은 저에게는 소중했습니다. 그렇게 개인 프로젝트의 퀄리티를 올려가며 여러 회사에 면접을 보러 다녔습니다.


결국 여러 회사 중 한 곳에 합격했습니다. 그 회사는 누구나 알만한 대기업도 아니었고, 화려한 간판이 붙은 회사도 아니었습니다. 업계에서 유명한 이름은 아니었습니다. 저도 처음 들어본 게임 회사였으니까요.


하지만 저는 상관하지 않았습니다. 그 회사는 제 인생 최초로 저를 '개발자'로 받아들여준 회사였습니다. 그 문을 넘는 순간, 제 인생이 아주 조용하게 바뀌었습니다. 명함에 적힌 제 직무가 바뀌었습니다. '학생'이 아니라 '개발'이 들어가기 시작했습니다.


이건 제게 너무나 큰 의미였습니다. 왜냐하면 이건 단순히 취업이 아니었기 때문입니다. 이건 제 정체성의 전환이었기 때문입니다. 누군가에게는 평범한 '취업 성공기'처럼 들릴지도 모릅니다. 하지만 제게는 그 이상입니다. 저에게 이 시기는 이런 선언이었습니다.


'나는 이제 구경하는 사람이 아니다.'

'나는 게임을 만드는 사람이다.'





#입사 #취업 #프로그래머 #개발자

keyword
매거진의 이전글[5화] 게임은 인간이 존재하는 한 없어지지 않는다.