난 누군가 이 코드는 어딘가, 고민을 멈추지 않는 개발자 구종만 1

신림동 캐리:어릴 적부터 많은 프로그래밍 경시대회에서 상을 휩쓰셨는데 언제부터 프로그래밍에 관심을 가졌고 어떤 계기로 그리되셨는지?
구종만: 어릴 적부터 휩쓸다니 오해입니다. 대학교 온 후에나 좀 성적이 좋았지, 그 이전에는 대회에서 큰 상을 타본 적이 없다.
신림동 캐리: 대기만성 타입!
구종만: 그 그런가…. 프로그래밍은 열 살에 컴퓨터가 생기면서부터 시작했다. 그때는 컴퓨터 사면 무조건 프로그래밍을 해야 하는 줄 알았다. 컴퓨터 사면 깔려 있는 게 게임 두 개랑 베이직 밖에 없었거든. 그래서 이걸 제대로 가지고 놀기 위해 프로그래밍 하다가, 프로그래밍하는 친구들을 만나고, 어찌어찌하다보니 여기까지….
신림동 캐리: 참여한 프로그래밍 경시대회 중에서 가장 인상적이었던 에피소드 하나만 들려달라.
구종만: 2007년 라스베가스에서 탑코더 오픈 와일드카드전을 앞두고, 한국에서 참가한 다른 친구와 수다를 떨고 있었다. 탑코더 오픈은 대회 15분 전부터 자리에 앉아서 코드를 미리 짜 둘 수 있어서, 이 코드를 뭘 짤까 두런두런거리다가 마지막에 말이 나온 유리수 구현을 미리 작성해 뒀다. 그런데 그게 1번 문제로 나왔다! 으아, 내가 결승 가라는 신의 뜻이구나 생각했다. 결국은 와일드카드 1등으로 결승 진출했다.

신림동 캐리: 한국에서 대학을 나와 미국에 취업하셨는데 왜 해외 취업을 결심하셨는가?
구종만: 대학에서 전산학을 전공하기로 했을 때부터 쭉 대학원 갈 계획을 하고 있었기 때문에 사실 취업은 생각도 안 해봤었다. 미국에서 일하게 된 것은 우연에 더 가깝다.
신림동 캐리: 우연이라고?
구종만: 2007년에 탑코더 오픈 참가하러 라스베가스에 갔는데, 당시 스폰서 중에 트레이딩 회사가 하나 있었다. 각종 기계학습이나 데이터 마이닝 기법들을 적극적으로 써서 어렵고 재미있는 문제를 푼다고 광고하더라. 당시 NHN에서 병특하면서 데이터 마이닝 업무를 배우고 있기도 했고, 원래부터 기계학습이나 인공지능에 관심이 있었기 때문에 기대하지 않고 그 회사 인턴쉽에 한 번 지원해 봤다. 그랬는데 전화 면접 보고 그 인턴쉽이 덜컥 붙은 거다. 그래서 복학하고 여름방학에 시카고에서 인턴쉽을 했는데, 회사 환경도 그렇고 문화도 그렇고, 너무 마음에 들었다. 마침 그때 인턴 프로젝트도 굉장히 결과가 좋아서 정규직으로 돌아오라는 제안을 받았기에 반쯤 홀려서 덥석 물었다.
신림동 캐리: 그럼 대학원은 포기하신 건가?
구종만: 처음 미국 갈 때만 해도 언젠가 대학원에 갈 수도 있겠다는 생각을 했었다. 근데 회사에 다니다 대학원 가려면 정말 강철같은 의지가 있어야 하더라. 난 안될 거야.

신림동 캐리: 병특하니까 말인데 최근 학사 병특이 없어져 많은 이들이 절규하고 있다. 이노티브와 NHN에서 소프트웨어 엔지니어로 병특하셨다고 알고 있는데 병특 제도에 대해 어떻게 생각하나?
구종만: 나는 운이 좋아서 병특 시절을 아주 즐겁고 보람차게 보냈다. 배운 것도 엄청나게 많고, 회사 생활도 즐거웠다. 병특은 개발자의 몸값을 낮춘다는 부작용이 있지만, 막상 병특 하는 당사자 입장에서는 경험도 쌓고, 병역도 해결하고 굉장히 좋은 제도라고 생각한다. 물론 세상은 넓어서 군대보다 못한 병특도 존재한다고 들었지만 뭐 그건 예외라고 생각하겠다. 주변에 훌륭한 후배들이 병특을 미루다 이번에 병특 없어진 것 때문에 군대 가거나 자의 반 타의 반 대학원 진학을 하게 되는 경우를 좀 봤는데 그저 눈물만….
신림동 캐리: 역시 인생은 타이밍이다.

신림동 캐리: 또 타이밍 하니까 말인데 재하를 미국에서 낳으셨잖나. 무시무시하기로 소문난 미국의 의료비용을 어떻게 커버하셨는지?
구종만: 미국 의료 시장이 사람들 말대로 정말 막장이긴 하다. 무엇을 상상하든 그 이상이다.
신림동 캐리: 나도 미국에서 신종플루에 걸렸었는데 의료보험이 없어서 그냥 자가치유했다.
구종만: 다행히 미국의 IT회사는 개발자가 없어서 난리이기 때문에, 회사복지의 하나로 의료보험을 많이 지원해준다. 게다가 이게 비싸고 좋은 플랜인 경우가 많아서 재하를 낳는데 회사 의료보험을 썼더니 내 돈은 거의 안 들었다.

신림동 캐리: 한국에서 애 낳는 것에 비교하면?
구종만: 한국에서 애를 낳아본 적이 없어….
신림동 캐리: 미안하다. 내가 이상한 질문을 했어….
구종만: 근데 미국 보험이 비싸긴 정말 비싸다. 회사에서 안 대주면 정말 피눈물 난다. 이직금지 기간 동안 쉬면서 내가 보험비 냈는데, 한 달에 백만 원 넘게 나갔다.
신림동 캐리: 이 소프트웨어와 도구 없이는 살 수 없다 하는 거 있나?
구종만: 대부분의 시간을 터미널에서 보내기 때문에 대부분 터미널에 관련된 도구들이다. 여기에 대한 글(http://www.theyearlyprophet.com/love-your-terminal.html)도 썼다. 여기에 나와 있지 않은 것은 xmonad랑 ipython, lyx이다. xmonad는 타일링 윈도우 매니저로, 윈도우 위치/크기를 직접 조정할 필요 없이 미리 정해진 알고리즘에 따라 화면을 꽉 채우도록 윈도우를 배열해 준다. 터미널을 여러 개 빠르게 열고 닫으면서 일하는 스타일이라 아주 유용하게 쓴다. 얼마 전에 맥북 에어를 사면서 포기하려고 해 봤는데, 결국 포기하고 우분투 깔았다. ipython은 뭐 말할 것 없는 파이썬 쉘인데, 여기의 노트북 모드(http://ipython.org/notebook.html)가 아주 훌륭하다. numpy, matplotlib 등을 이용해 파이썬으로 리서치를 하는 사람들이라면 무조건 써라. 두 번 써라.
신림동 캐리: 이게 전부인가?
구종만: lyx도 있다. 이건 LaTeX를 백엔드로 하는 워드프로세서다. LaTeX의 수많은 기능을 지원하면서도, 기본적으로 위지윅이라 수식 조판하기가 엄청 편하다. 이번에 책 쓸 때도 이걸로 썼다. 라텍을 매번 셋업하기 귀찮고, 불편한 점도 꽤 많아서 마크다운이나 기타 마크업 언어를 쓰려고 해보는데 결국 이걸로 돌아오고 있다.
신림동 캐리: 예전에 구종만님이 나와 H에게 mint.com을 추천해주신 게 기억나는데, 이 어플 없이는 내 생활이 훨씬 불편했을 것이다 하는 건?
구종만: 아, 저번에 그랬었지. 근데 사실 나는 민트 안 쓴다.
신림동 캐리: 그럼 왜 우리에게 민트를 줬….
구종만: 민트는 훌륭한 가계부 어플이다. 다만 내가 너무 게을러서 가계 관리를 아예 안 하거든. 개인적으로는 workflowy.com을 좋아한다. 단순한 할 일 목록 같은데, 목록을 중첩할 수도 있고, 목록을 접고 펴거나 특정한 할 일에 줌인할 수 있는 툴이다. 내가 생각하는 중요한 아이디어들을 단순한 인터페이스에 훌륭하게 담아냈다.
신림동 캐리: 최근에 읽은 개발에 대한 인상적인 책은? <프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략>?
구종만: 사실 최근에 딱히 읽은 책이 없다.
신림동 캐리: 육아는 힘들죠.

그래도 재하는 긔엽긔!

신림동 캐리: 아참, 2007년부터 알고스팟의 운영에 참여하고 계신 걸로 알고 있다. 커뮤니티를 운영하며 느끼는 점이나 도움이 된 점은?
구종만: 음…. 별건 없는데, 커뮤니티 하나가 굴러가는 데에는 정말 많은 이의 많은 노력이 필요하다. 하고 싶은 일은 많은데, 다들 생업이 있고 유부남도 늘어가다 보니 새로운 일을 못 하고 있다. 옛날에 모의고사라도 한번 할라치면 운영진을 일주일 갈아 넣어야 했다. 그런 의미에서 우리끼리는 운영진을 노예라고 부른다. 기회가 될 때마다 노예진의 확충을 적극적으로 꾀하고 있는데 쉽지 않다.
신림동 캐리: 세상엔 ‘내가 왜 이런 노예질을 하지!’라고 외치며 스스로를 괴롭히는 훌륭한 매저키스트가 많으니 희망을 버리지 마라.


알고스팟에서 일할 매저키스트, 아니 노예, 아니 운영자를 찾습니다.

구종만님의 선량한 미소를 믿으세요.
신림동 캐리: 그럼 알고스팟을 운영하며 좋았던 건 뭔가?
구종만: 내게 도움이 된 점이라면 글쎄…. 진부하지만, 좋은 사람을 많이 만났다는 점이랄까?
신림동 캐리: 진부해….
구종만: 근데 지금 내가 하는 이야기가 누군가에게 도움이 될까?
신림동 캐리: 근데 이 개발자 인터뷰가 개발자분들 입장에선 ‘내 사적인 이야기인데 이걸 왜 읽을까?’ 싶은데, 컴퓨터를 전공하는 학생이나 현직 개발자에게는 의외로 도움이 되는 것 같더라. 나도 처음엔 내가 이걸 하면서도 내 업무를 이해 못 했는데 주변에서 좋은 반응이나 감사 메시지가 가끔 들어오는 걸 보면서 점차 사명감까지 느끼고 있다.
구종만: 그렇군.
신림동 캐리: 내가 네이버 메인에서 연예인 공항패션 기사를 클릭해서 보는 것과 같은 느낌이랄까.
구종만: 뭔가 이상한데 무슨 뜻인지는 확 와닿는군.
신림동 캐리: 그러니까 아무튼 계속해서 인터뷰 진행한다.
신림동 캐리: 후배에게 개발에 대해 추천해주는 사이트는?
구종만: 뭐가 됐든지 많은 것을 접해보고 지평을 넓히는 것이 중요하다. 어디서 주워들은 게 많다고 훌륭한 개발자가 되는 것은 아니지만, 훌륭한 개발자치고 지평이 좁은 사람은 또 별로 없더라. 그래서 계속 새로운 것을 접하는 게 중요하다고 생각한다. 그런 의미에서 이전 분들도 언급했지만, 해커 뉴스같은 뉴스 사이트와 자기가 관심가지는 기술에 관한 포럼을 읽는 것이 좋다. 아 그리고, 당연하지만 algospot.com!
신림동 캐리: 하하하!
구종만: 하하하!
신림동 캐리: 최근에 쉬면서 공부하고 계시는 건?
구종만: 내가 하는 일이 퀀트 개발자다. 개발자 인터뷰에서 이런 말을 하는 게 부끄럽지만 퀀트 개발자에게 요구되는 개발의 수준이 그다지 높진 않다. 뭘 만들 것인지 결정하는 과정이 더 중요하다고 할까? 지금 이 업무에서 내게 가장 부족한 것은 수학이랑 계량 금융 기초라서 교과서까지 펼쳐놓고 열심히 혼자 공부하고 있다. 다행히 백수라서 공부할 시간은 많다. 고등학교 때나 대학교 다닐 때나 수학을 정말 싫어했는데, 내가 이러고 있을 줄 몰랐다. 이렇게 필요할 줄 알았나.
신림동 캐리: 난 타이핑에 검지만 사용하는 완벽한 독수리 타법을 고수하는데 이런 내가 IT계에서 일할 줄은 몰랐다.

신림동 캐리: 그럼 구종만님은 스스로 어떤 개발자라고 생각하시는지? 본인에게 어울리는 수식어를 붙이면?
구종만: 고민하는 개발자가 되고 싶다. 아까도 말했지만 나는 계획을 세우고 거기에 맞춰 수행하는 것을 즐기는 타입이다. 그런데 좋은 계획을 세우려면 항상 고민해야 한다. 뭘 해야 하나? 어떻게 해야 하나? 이런저런 방법 중 뭐가 제일 좋은가? 이런 고민을 멈추지 않는 사람이 되고 싶다. 그것이 꾸준히 성장할 수 있는 가장 좋은 방법이라고 생각한다.
신림동 캐리: 그럼 스스로 개발자로서 점수를 매기면?
구종만: 개발자로서는 한 70점 정도? 특정 분야에 특기가 있다거나 하지 않기 때문에 그 이상 점수를 주긴 힘들 것 같다.
신림동 캐리: 아이고, 겸손도 하셔라.
신림동 캐리: 한국 개발자의 끝은 치킨집이라고 한다. 요즘은 카페라고도 하는데, 아무튼 여기에 대해서 어떻게 생각하시는지?
구종만: 기본적으로 한국의 직장 문화가 바뀌어야겠지만, 꾸준하게 자기 계발을 하고 성장한 개발자라면 그럴 필요가 없어야 하는 게 정상 아닐까? 이전에 일하던 회사에 정말로 호호백발 개발자가 있었다. 61학번이셨다. 61년생이 아니다. 이 분이 그렇다고 뭐 코볼 레거시 시스템 유지보수 하시냐면 그것도 아니고, C++11로 작성하는 최신 프로젝트 개발에 참여하고 있었다. 65살이 된 기념으로 2년 동안 푹 쉬면서 C++ 새 표준과 부스트, 템플릿 메타프로그래밍 등을 진득하게 공부해서 우리 회사에 오셨더라. 이건 좀 극단적인 예지만 한국에서도 앞으로 점점 이런 환경이 가능해지지 않을까?

신림동 캐리: 개발자에게 재능이 얼마나 중요하다고 생각하는가?
구종만: 타고난 재능은 당연히 중요하다. 열심히 하는 천재를 어떻게 이기겠는가? 하지만 세상은 넓어서 열심히 하는 천재가 배터지게 먹어도 항상 남는 파이가 있으니까 걱정 안 해도 된다. 자기에게 재능이 있는지 고민하지 말고 그냥 일단 열심히 하시라.

말했다시피 1년 동안 백수라서 동네 스타벅스를 전전하면서 공부하는 신세다. 노트북이랑 핸드폰, 책 한두 권 들고 다니고 있다. 이것은 2014년 3월 12일 점심에 갓 찍은 따끈한 사진이다. 현재 이러고 있다.