초등학생 때부터 프로그래머가 되다.

프로그래머 시리즈 #1

by 즁 필름

지난주에 언급했던 것과 같이 나는 서비스를 만들어가는 모든 직군(프로그래머, 기획자, 디자이너)을 모두 개발자라고 재정의했다. 부동산 개발업자가 대표적인 뜻이었던 ‘Developer’의 개념이 프로그래머로 변해버린 지금, 기획자들도 프로그래머 영역의 도구를 배우고, 디자이너도 마찬가지로 점점 코딩의 영역으로 확장해나가고 있는 현 상황에 좁혀진 직군의 ‘서로에 대한 이해'를 돕고 싶어 글을 연재하기로 마음먹었다.


심지어 최근에는 코딩이 필수교육으로 자리 잡았으며, 모두가 코딩을 배우는 시대가 눈앞에 왔다. 이렇듯 프로그래머의 영역으로 다른 직군들이 모이고, 누구나 코딩을 하는 시대를 예고하고 있다. 그래서인지 프로그래머들의 몸값은 점점 더 올라가고만 있다. 현업에서 10년 동안 프로그래머로 일했던 내가 피부로 체감해온 일이기도 하다. “사람은 역시 기술을 배워야 해"라는 말이 우스갯소리가 아니게 된 것이다.


프로그래머들이란 도대체 어떤 사람들일까? 하나로 정의할 수는 없지만 모두의 머릿속에 떠오르는 몇 가지 이미지들은 있을 것이다. 앞으로 5주간 연재될 <개발자 사용설명서; 프로그래머 시리즈>는 단순히 이미지가 아닌 10년 차 프로그래머인 내가 쓰는 경험담과 생각들로 채워진다. 이 글을 읽는 많은 이들이 내가 쓴 글로 프로그래머들이 어떤 사람들인지 이해하는데 도움이 된다면 더할 나위 없을 것 같다.


프로그래머라는 직종을 처음 꿈꿨던 나의 어린 시절의 이야기부터 시작해보고자 한다. 1993년 초등학교 3학년 시절, 우연히 전학 간 학교에서 컴퓨터 언어를 처음 경험하게 된다. GW-BASIC이라는 아주 기초적인 언어였고, 그때의 이 우연한 만남이 내 인생을 통째로 바꿔놓을 줄 누가 알았을까. 그 우연한 만남에 반하게 된 나는 부모님을 졸라 당장 컴퓨터를 집에 들여놓기에 이른다.


그것을 시작으로 컴퓨터와 친숙해지기 시작해 나는 점점 영역을 넓혀간다. 게임을 하기 위해서 메모리 공간이라는 것이 필요해 컴퓨터의 부팅 시스템을 고쳤던 것이 시작이다. 게임 내의 캐릭터를 강화하기 위해 세이브 파일을 에디팅을 했던 경험도 기억에 남는다. 그리고 PC 통신을 시작으로 대면 없이 사람과 만나고, 정보를 얻는 새로운 시대를 자연스럽게 만나게 된다.


그중 특히 기억에 남는 일화가 있다. 친구네 집에서 너무나 재밌었던 <삼국지 영걸전>이라는 게임을 집에서도 하고 싶은데, 그러려면 게임을 복사해와야 했다. 당시 작았던 디스켓의 용량에 게임이 들어가지 않아 절망하던 중. 컴퓨터 선생님께 질문해 ‘압축'이라는 방법을 배우게 된다. 우리가 흔히 가방을 쌀 때에 물건을 진공상태로 최대한 눌러 압축하고, 그걸 각 가방의 사이즈에 맞게 나눠 담는 것을 그대로 컴퓨터 환경에서 구현해낸 기술이었다.


이때의 경험으로 나는 어렴풋이 알게 된다. 컴퓨터에서의 문제 해결방법은 그것을 만든 사람의 것과 유사하며, 또한 그것은 컴퓨터가 알아들을 수 있는 방법으로 해야 한다는 것을 말이다. 누구나 흔하게 했던 이 경험 속에서 나는 컴퓨터와 정말 사랑에 빠지게 된다. 그러면서 프로그래머로 커나갈 자신을 발견하고, 더 나아가 내부적인 구조를 이해하게 된다. 사랑에 빠지면 저절로 상대방의 시선(이 경우에 컴퓨터)에서 이해가 되는 법이다.


처음에 만났던 GW-BASIC으로 돌아가 보자. 5학년 때 화면에 눈사람과 눈 내리는 그림을 그리고, 징글벨 노래를 연주하게 하는 내 인생 첫 프로그램을 만들게 된다. 그 완성의 희열이 지금의 프로그래머로 만들었다고 해도 과언이 아닐 것이다. 각종 도형을 그리는 방법. 멜로디를 연주하는 방법. 그것을 화면에 유지시키는 방법등을 차례로 알아가던 그 시절의 조악한 나의 첫 프로그램의 추억이다. 그 매력에 빠진 나는 앞으로 평생 이걸 하며 살 것이라는 다짐을 하게 되는데, 어렸을 땐 그게 ‘과학자'인 줄만 알아서, 장래희망란에 과학자를 적어 넣었던 나의 어린 시절이 지금도 생생하다.


그 외에도 매력적으로 다가온 것들이 있다. 대표적으로 레고, 과학상자, 고무동력기, 라디오 조립을 들 수 있다. 이쯤 되면 이 것들에는 공통점들이 있다는 걸 쉽게 알아챌 수 있다. 모두 떨어진 부품(=모듈)들을 조립하면서, 하나의 완성된 것(=프로그램)을 만들어나가는 과정이며, 과정 자체가 논리적이고 절차적으로 진행하는 코딩과 매우 유사하다는 것을 말이다.


이렇듯 어려서부터 프로그래밍과 비슷한 것에 흥미와 재능을 보였던 나는 그대로 프로그래머로 성장하게 된다. 혹시라도 언급된 것들 중에 자신이 흥미 있는 것과 유사하다면, 그 사람은 코딩에서도 비슷한 재미를 느낄 수 있을 거라 확신한다. 그만큼 근간을 이루고 있는 원리가 흡사한 지점이 많다.


이렇듯 나의 어린 시절은 ‘만드는 것을 좋아했던 아이'에서 ‘특히 컴퓨터로'라는 말이 앞머리에 붙었던 시절이다. 그것은 굉장한 우연이지만 어린 나이에 컴퓨터와 프로그래밍을 만났던 것이 절대적인 영향을 끼쳤다 말할 수 있다. 하지만 불행한 것은 어디 가서도 프로그래밍을 제대로 배울 곳이 없었다는 것이다. 지금과 다르게 프로그래밍 자체를 배우거나 접할 수 있는 곳이 없었다. 그래서 중학생 때는 모르고 일러스트레이터 수업을 프로그래밍 수업이라며 착각하고 수강했다가 금방 그만둔 웃지 못할 일화도 있었다.


결국 나는 대학생이 되어서야 본격적으로 프로그램을 만드는 방법을 배우기 시작한다. 반면에 전혀 다른 지금의 상황이다. 코딩은 이제 필수교육이 되었고, 나처럼 운이 좋아서 초등학교 때 프로그래밍을 경험한 것과 다르게 그보다 더 깊은 세계를 모든 아이들이 경험하는 시대이다. 접하는 사람들이 많아질수록 좋아하게 되는 이들도 자연스레 늘어갈 것이고, 그 미래 시대의 프로그래머는 지금보다 훨씬 더 친숙한 모습이 되어있을 것이 너무나 분명하다.


마치 지금 모두가 사진을 찍고, 영상을 찍어 올리는 게 익숙한 것처럼. 모두가 코딩을 하는 시대도 머지않은 일이 될 것이다. 모두가 프로그램을 만들 수 있는 세상을 앞둔 이때에 코딩을 이해하고, 프로그래머들을 이해하는 것이 무엇보다 중요해질 것이라고 나는 생각한다.


위의 글들은 유튜브 <즁 필름>에서 영상으로 만나보실 수도 있습니다. [해당 영상 보러가기]

keyword
매거진의 이전글연재를 시작합니다.