소프트웨어/실용주의 프로그래머

뉴욕의 프로그래머 ★★★★

falconer 2008. 6. 25. 12:20

변호사가 주인공인 드라마, 의사가 주인공인 드라마, 경찰이 주인공인 드라마는 다 있는데, 왜 유독 공대생/엔지니어가 주인공인 드라마는 없나요?

라는 애절한 목소리를 들어본 적이 있는가? 1

대부분의 영화/드라마에서 과학자나 엔지니어는 약자였다. 이들, 아니 우리는 영화에서 보통 몇가지 패턴으로 등장한다. 악당에게 이용만 당하다가 실험이 성공하면 결과물을 뺏기고 살해를 당한다. 아니면, 악당의 습격을 받고 핵심자료를 뺏기고 죽는다. 또는, 자유의지 없이 그저 악당이 시키는 대로 실험만 열심히 해댈 뿐이다. 그게, 인류의 종말을 위한 무기이건 말건 말이다.

외국에는 Numbers와 같은 드라마도 나오고 있지만, 우리나라의 문화산업에서 그리는 엔지니어의 모습은 여전히 주체적이지 못하며, 조연에 불과하다. 이런 편향된 모습에 우리[!]는 때때로 상처를 받곤 했고, KLDP에서는 '공대생은 왜 스토리텔링의 주인공이 될 수 없는가?' 라는 스레드가 열리기도 했다. 2

[뉴욕의 프로그래머]는 뉴욕의 금융시장에서 자바 프로그래머로 살아가는 영우라는 가상의 인물이 겪는 "개발자로서의 일상"을 그린 소설이다. 몇초도 안되는 찰나에 수백, 수천만 달러가 오가는 숨막히는 현장과 여러 인종으로 구성된 다양한 개성의 개발자들, 그 안에서 벌어지는 갖가지 사건과 '버그'들을 그린다.

해커들은 왜 User Friendly와 같은 만화를 재미있어 할까? 공대생들은 왜 공대생 개그에 열광할까? 배경지식이 있어야 이해할 수 있는 '깊이'가 있는 것도 요인일테고, 테두리 안에 있는 자신들만 이해할 수 있다는 (약간의 선민의식 섞인) 점도 있을 것이다. 이 책에서 나오는 여러가지 사건들.. 즉, 급히 고쳐야 하는 심각한 버그가 튀어나왔을 때의 긴박감, 디버깅을 해나가는 과정들은 프로그래머만이 손에 땀을 쥐며 읽을 수 있다. 과연 어떤 소설책에서 이런 문장을 만나볼 수 있을까?

"이 메쏘드가 담고 있는 코드는 가격을 처리하는 쓰레드와 동일한 쓰레드에서 실행되니까 상관이 없어, 하지만 이 코드에서 익셉션이 발생했을 때 catch 구문 안에서 일어나는 일을 봐봐. 로그 메시지를 파일에 기록한 다음 메쏘드를 다시 호출하고 있잖아. 자기가 자기를 부른다는 점에서 일종의 재귀함수인 셈이지.

...

그 익셉션 때문에 동시성(concurrency) 문제가 발생하면서 이 메쏘드가 이용하는 캐시의 내용이 망가졌을 테지. 캐시 안에 담긴 데이터가 제대로 무효화(invalidate)되지 않으면서 메쏘드의 두 번째 호출이 망가진(stale) 데이터를 이용했던 것일지도 몰라. 음, 그게 맞는거 같다. 서버에 접속해서 로그 파일을 검사해보자"

이 책이 재미있는 또 하나의 이유는 주인공이 "뉴욕"의 프로그래머라는 것이다. 한국의 많은 개발자들이 한국에서 IT종사자로 살아간다는 것을 힘들어한다. 외국에서 엔지니어들이 '제.대.로.' 대접받고 있는 사례들을 들으며, 부러움을 토로할 때도 많다. 이 책을 통해 뉴욕이라는 곳에서 개발자로 살아가는 사람들은 어떤 일을, 어떤 식으로, 어떤 사람들과, 어떤 대우를 받으면서 하는지에 대한 궁금증을 해소할 수 있고, 그것이 즐거움으로 다가온다.

아니, 어찌보면, 이건 자기위안의 용도일지도 모르겠다.  '이런 환경에서, 이런 사람들과 일한다는 건 꿈같은 일이야. 이건 허구일거야. 아니면, 뉴욕이기에 가능할꺼야. 부럽다, 정말' 라는 생각을 하거나, '그래. 우리나라 사람들은 역시 뭘 몰라. 우리가 이렇게 크게 대접받아야 하는 인재들인데, 인력 무서운 줄 모르고.. 나 잘 안해주면, 확 미국 가버린다!' 뭐 이런..? (농담이다)

임백준님의 책 제목을 패러디해보자면, 이 책은 마치 "누워서 읽는 디버깅"이라고도 할 수 있다. 단지, 개발자의 일상을 소설로 그렸다고만 말하기에는 뭔가 아쉽다. 디버깅을 위해 논리적으로 버그를 역추적하는 과정을 읽으며  "아, 나는 여기까지 생각할 수 있었을까?" 라는 생각도 해보고, 논리적 흐름을 흥미진진하게 머리속에 그려보며 따라가기도 한다.

영우의 독백은, 임백준님의 독백일 것이다. 그리고 그 독백은 나와 같은 이 시대를 살아가는 한 개발자의 독백이며, 또 나보다 한 발 앞서나간 선배 개발자의 독백이기도 하다. 그래서 영우의 독백은, 머리속에서 쉽게 스쳐지나가지 않는다.

한 가지 아쉬운 점은, 책의 많은 부분이 월간 마이크로소프트웨어에 연재되었던 내용이라는 것이다. 뉴욕의 프로그래머가 마소에 연재될 때 너무 재미있어서, 연재가 안되었을 때 메일을 보내서 '이번 호에는 연재가 안되나요?' 라고 물어볼 정도로 팬이였다. 그래서, 새로운 내용들이 더 많아졌으면 하는 아쉬움이 있었다.


출처 : http://fribirdz.net/entry/1-2