6월 172006
 



 자기소개서를 쓰다가 “특기”란을 만나면 항상 멈칫한다. 휴우- 제길슨- 딱히 특기라고 내세울 만한게 하나도 없는 매력없는 놈이란 말인가. 아니지, 뭐, 뭐든 못 하는게 없어서겠지, 풋- (종종 샤워 중 거울을 보다가 스스로를 잘 생겼다 느끼며 멍하니 시간을 보내는, 그런 놈이다, 난) 다만 클라리넷연주, 스쿠버다이빙, 우슈 등 무언가 개성있고 강렬한 걸 적어보고 싶을 뿐이다. 하릴없이 컴.퓨.터. 세글자 적어넣는데, 요새 컴퓨터 못 하는 사람도 있을까.


컴퓨터 프로그래머가 꿈이었던 터라 책을 읽다가 다시금 꿈꾸던 옛 시절을 회상한다.
그랬더니 잊혀진 꿈이 조금씩 다시 되살아났다.



-컴퓨터와 만남 그리고 이별-


일곱살 때, 아버지께서 8088프로세서에 고해상도이지만 흑백이라 원통스런 허큘리스 그래픽카드를 탑재한 삼보컴퓨터를 구입하는 것으로 컴퓨터와 인연을 맺게 됐다. 동시에 아버지의 강요로 컴퓨터학원을 다녔는데, 취학 전 고작 1년 동안 GW-BASIC에 보석글, 한글, 하나스프레드시트, dBASE까지 배운다는 건 불가능했고 힘들었다. 학원 끝나고 남아서 게임하는 재미가 없다면 진즉 때려쳤을 것이다. 그러다 학원이 이사가는 바람에 관두고, 그저 또래에서는 컴퓨터를 잘 한다는 소리를 듣는 데 그쳤다. 친구집에 최정한 씨의 그 유명한 Mdir이나 깔아주러 다니고–부팅완료 후 Mdir이 안 나오면 컴퓨터를 못 하는 사람이 많던 시절–  ARJ, RAR등의 압축프로그램으로 게임을 분할압축해서 복사해주면서 디스켓 뻑 나지 않길 기도하곤 했다. 게임에 필요한 메모리 확보를 위해 config.sys나 autoexec.bat를 만지며 잠깐 진지했을 뿐이다. 밖에서 해 저몰도록 뛰어노는 게 좋았지, 컴퓨터를 “공부”한 적은 없었다.


중학생이 되고 머리빡이 커진 난, 빌게이츠가 부러워선지 몰라도, 돌연 컴퓨터 프로그래머나 컴퓨터과학자가 되겠다고 결심했다. 그 사이에 어느 덧 5.25인치 2D디스켓은 창고에 쳐 박혔고, 2배속 CD-ROM을 달고 나온 펜티엄 시스템이 기나긴 펜티엄의 역사를 막 시작하고 있었다. 학교에서 PC통신학교를 개설한다고 “미래텔”이라는 한국통신의 예하부대(!)에 가입을 권유했는데, 그게 인생의 중요한 이정표가 될 줄은 몰랐다. 친구들이 느려터진 한통단말기로 atdt 01410을 칠 때 난 정말 빠른 19.2K모뎀으로 01411을 때리며 우쭐댔고, 그 때부터 정보의 바다에, 컴퓨터에 본격적으로 빠져들었다.


중학교 시절(1997~1999) 난 그렇게 채팅, 각종BBS, 동호회활동, 인터넷(Kornet PPP를 애용)등이 쏟아내는 엄청난 정보와 사람 앞에 밤낮을 잊고 매달렸다. 모니터 앞에서 뉴스도 보고, 노래도 듣고(MIDI, RM), 친구도 사귀고, 장거리 연애도 하고, 그렇게 잘 놀던 와중에, (케텔은 이미 꽤 이전에 하이텔이 됐고) 고향 미래텔도 IMF사태로 망하고 하이텔에 합병됐다. 그리고 정처없이 하이텔, 천리안, 나우누리를 떠돌고 VT를 벗어나 인터넷에 머무는 시간이 많아졌다.


그리고 자전거 타는 법을 책을 보고 배우는 게 아니듯, 컴퓨터도 책을 보고 배우는 게 아니란 말을 이 때 실감했다. “모니터 앞에 앉아서 새벽까지 무슨 공부냐, 거짓말이다, 이상한 거나 보지 마라, 전기세 나온다, 전화요금 나온다” 그렇게 잔소리 하는 어른들이 보기에는 책도 없이 노닥거리는 모양새였을 것이다. 하지만 책 한 권 없어도, 책을 쓸 수 있는 수많은 전문가들에게 언제든 갈 수 있었다. go hwf(하드웨어), go osc(OS), go net(네트워크), go pds, go forum, go win, go linux, go… 그리고 subj, tr, find 등의 검색 명령.


그래서 돌아보면 한참 C프로그래밍에 맛붙였을 때, 고교 진학으로 네트의 세계와 차단되고 만 것이 삶에서 못내 아쉽다. 다람쥐 쳇바퀴 시간표와 야간타율학습과 우열반, 행복은 성적순이라는 꼰대의 세뇌 속에서 난 컴퓨터와 이별하게 된 것이다. 생이별을 부른 세상에 대한 증오가 비판의 밑거름이 되고, 그 덕에 요즘 우울한 이공계보다 원래 우울한 인문계로 진로를 정한 계기가 됐을지도 모르겠다.



-헤어져도 헤어진게 아니야-


헤어진 연인들이 흔히 그러하듯 나 역시 이별을 합리화해보려 애썼다. 고수가 얼마나 많은데, 그저그런 코더(coder)로 전락해서, 시킨대로 수천수만 줄의 프로그램코드를 작성하는 노가다를 하고 싶지 않다는 나름 현실적인 하지만 겁쟁이식 변명을 했다. 내가 원하는 건 사람들에게 정말 유용한, 기발한 프로그램을 생각해내어 만드는 것이지 고철덩어리 컴퓨터의 성능 향상에는 흥미가 없다는 말로 컴퓨터공학 대신 심리학을 택했다고 말했다.


그러나 저자이자 행복한 프로그래머인 임백준은, 내가 여전히 컴퓨터를, 컴퓨터 프로그래밍을 삶 속에 깊이 품고 있음을 새삼 깨닫게 해 주었다. 프로그래밍을 둘러싼 세상이야기는 마치 모두 내 이야기인것처럼 들렸다. 프로그래머가 느끼는 성취감, 일상생활 속에서 볼 수 있는 알고리즘은 평상시에 내가 추구하는 것들이엇다.  —- 노래방에서 한 명씩 돌아가며 노래를 부르는 것 처럼 네트워크 상의 컴퓨터들이 토큰을 가지고 차례로 정보를 주고 받는 토큰링(token ring) 방식이 있다. 귀중품을 상대에게 전달하기 위해 상자에 넣고 열쇠로 잠근 뒤 상자와 열쇠를 보낼 경우, 운반하는 도중에 열어 볼 위험이 있다. 해결책은 역시 “암호”의 개념. 미리 상자를 열 수만 있는 열쇠를 상대에게 주고, 나는 잠글 수만 있는 열쇠로 상자를 잠궈 보내면 된다. 인터넷뱅킹을 안전하게 하는 게 이런 알고리즘이다. public key로 암호화(encoding)하면 private key가 있어야 풀 수(decoding) 있다. ——


프로그래밍에 대한 관점도 비슷했다. 요즘처럼 컴퓨터의 속도와 용량이 충분한 시절에는, 최적의 코드를 작성하는 것보다 유지보수 및 관리과 용이한 코드를 작성하는 게 좋다. 몇 밀리 세컨드 빨라봐야 그다지 체감할 수도 없고, 기가바이트의 세계에서 변수크기를 신경쓰는 것도 궁색해보인다. 모바일 게임이나, 가전제품 칩셋에 넣을 프로그램이 아닌 이상, 사람에게 “편리한”걸 만들고, 만드는 과정도 “편리한”게 좋은 것이다. 저자는 아마도 반얀 스트라우스로부터 시작된 객체지향 프로그래밍의 매력을 늘어놓다가 (저자의 주무기일 것으로 보이는) 완전객체지향의 Java언어가 C언어보다 컴퓨터의 메모리를 세세하게 조작하는 데 약하긴 하지만, 별 상관없다는 말을 하고 싶었던 것일지도 모르지만. 어쨌든,


나는 이렇게 잘 나가는 프로그래머의 마음에 공감할 수 있는, 자신을 발견할 수 있었다. 그리고 저자가 부러웠다, 질투심 만빵.
그만큼 나도 줄곧 컴퓨터, 프로그래밍을 사랑하고 있었다. 컴퓨터없는 내 삶을 말할 수가 없는 걸-


-다시 행복한 프로그래머를 꿈꾸며-


고교 시절, 입시에 영양가 없는 동네 정보검색대회나 홈페이지제작대회 대신에 정보올림피아드나 컴퓨터창의성대회 같은 데에서 좋은 결과를 얻었다면, 특기자로 대학에 입학해서 이미 행복한 프로그래머의 길을 걷고 있었을지도 모르니 아쉽다. 하지만 재밌게도 대학에 가서도 군에 와서도 나는 프로그래밍을 하고 있긴 하다. 인지과학에 관심이 있어 실험을 계획하다보니, 실시하기도 결과얻기도 편한 방법, 사람들을 컴퓨터 앞에 앉혀놓고 모니터로 자극을 주고 키보드로 반응하게 하는 실험 프로그램을 만들어야 했다. 행정병 주제에 소싯적 홈페이지 몇 개 쪼물딱거린 경험으로 제로보드 얹은 부대 홈페이지를 건드리다 그만 업무관련 웹 프로그래밍에 투입되고 말았다.


영어를 그렇게 많이 오래 공부했으면서 왜 아직도 의사소통을 못하냔 마음에 짜증이 이는 것 처럼, 컴퓨터를 그렇게 많이 오래 했으면서 왜 아직도 난 컴퓨터 프로그래밍 언어에 능통하지 못하는지, 요즘 참 원망스럽다. 고작 남의 소스 가져와서 수정하고, 남의 프로그램을 긁어 붙이기에만 급급하는 자신이 부끄럽다. 어쩜 논문을 쓸 때도, 음악을 고르거나, 사랑을 할 때도 언제나 Copy and Paste 에만 머무를까, 부끄럽고 두려워진다. 


저자의 말 처럼 좋은 프로그래머가 되려면, 내공(수학, 알고리즘)과 외공(실제 코딩, 경험)을 착실히 쌓아야한다. 이 말은 다른 모든 것들에도 적용된다. 좋은 인생을 살려면 깊이있는 자기수양-많은 생각과 고민 뿐만 아니라 실제 현실에 부딪히며 몸소 행동해야만 하니까. 의미를 굳이 그렇게 멀리 확장하지 않아도, 나로서는 충분하다. 내 인생을 프로그래밍 해볼적에, 인공지능이든 감성과학이든 뜬구름잡는 소리에 그치지 않고, 구현을 해내려면 컴퓨터 프로그래밍 없이는 안 될테니까.


자기소개서 얘기로 돌아가자면, 언젠가는 특기란에 “컴퓨터”말고 “컴퓨터 프로그래밍”이라고 적고 싶다. 직업은 “심리학자” 아님 “부잣집 사위” ? 원래 직업과 특기를 똑같게 적거나 단어의 외연과 내포를 고려하지 않으면 구려보인다. <이승엽, 특기:야구>, <박세리, 특기:운동>, 이런 건 좀 아니잖아. <차두리, 특기:축구해설> 정도는 되어야 먹어주지 않나. 모든 걸 컴퓨터로 하는 세상에서, “컴퓨터”를 적어넣는 건 “숨쉬기”라고 적는 거나 마찬가지인 셈이다.


아무튼 이럭저럭해서, 나는 다시


행복한 프로그래머를 꿈꾼다. 고마워 책!


 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>