행복지수 상위 1% 개발자 '이문수'


[프로필]------------------
서강대학교에서 컴퓨터공학을 전공했으며 동 대학원에서 분산시스템을 공부했다. 2004년에는 제2회 임베디드 소프트웨어 공모대전에서 대상을 수상했으며, 2005년에 열린 제4회 JCO 자바 소프트웨어 공모전에서도 수상했다. 이후 nFractals(http://www. nfractals.com/)라는 클라우드 컴퓨팅 회사를 창업해 현재 연구소장으로 일하고 있다.

-----------------------------

공모전에 나가게 된 계기는
학창 시절에 방황을 많이 했다. 내가 뭘 잘하는지 생각해 봤더니 컴퓨터 밖에 없었고, 때마침 임베디드 소프트웨어 공모전이 열렸다. 로봇이 임의로 정해진 체크포인트를 가장 빠르게 통과해 골인하면 이기는 대회였다. 나는 친구들과 함께 공모전에 나가기로 결심했다. 그리고 친구들에게 “나는 1등을 할 계획인데 내가 2등보다 2배 빨리 골인하면 상금의 절반을 가지면 안 되겠느냐”라고 물었다. 친구들이 이에 동의했고 나는 정말 열심히 준비했다.

그런데 로봇을 더 빨리 움직이게 하고 싶어도 신호를 보낸 후 반응하기까지 시간 차이가 계속 발생했다. 아무리 프로그램을 정교하게 만들어도 로봇의 주행속도가 빨라지면 신호의 응답 속도가 늦어졌다. 도대체 어디가 문제인지 알 수 없었다. 그래서 전자공학과 연구실에서 오실로스코프를 빌려서 직접 신호를 검사했다. 신호가 모터까지 가는 중간에 있는 시리얼 포트 컨트롤러에서 신호가 늦어진다는 걸 발견했다. 그래서 그 컨트롤러의 커널 드라이버 소스 코드를 변경해서 불필요한 버퍼링을 제거했다. 덕분에 내 로봇은 21초를 기록하며 우승을 차지했다. 2등은 1분이 지나서 골인했다.

첫 번째 창업에 대해 말해 달라
대학원을 다니면서 창업했다. 처음에는 내 오피스텔에서 책상도 없이 시작했다. 그러다 마음이 맞는 후배들도 함께했다. 교수님의 추천으로 대학교 창업센터에 입주하면서 거의 3년간 사업을 했다. 그 당시에는 수익에 대한 압박감이 없었기 때문에 다양한 주제의 프로젝트를 진행했다. 예를 들어 위키피디아를 분석해서 관계를 찾아내거나 비주얼 위키, 아이폰 게임 등도 만들었다. 그리고 낮에는 일하고 밤에는 컴퓨터 공부를 했는데, 그런 생활을 몇 년 동안 계속 하니까 많이 지치게 되더라.

지칠 때마다 어떻게 극복했는가
지칠 땐 무엇보다 체력을 보충해야 한다. 그러나 정신적으로 피로가 쌓일 때가 더 큰 문제다. 나는 그럴 때마다 해야 할 일을 종이에 적어두고 “나는 이것을 하는 기계다”라고 최면을 건다. 그러면 하고 싶어서 할 때보다 능률은 낮지만 하다 보면 어느새 다 끝나 있었다. 그렇게 내 스스로를 이끌어 갔다.

자신의 개발 철학은
컴퓨터 프로그래머는 내 생각을 컴퓨터에 이식하는 사람이라고 생각한다. 이는 인류 진화의 다른 단계라고 말할 수도 있을 것 같다. 그동안 우리의 지식을 DNA를 통해 유전시켰는데 이제는 소스 코드를 통해 기계에 옮기는 것이다.

인간이 하기 어렵거나 귀찮은 일을 기계가 대신할 수 있도록 소스 코드 형태로 이식하는 것이다. 예를 들어 자동차 내비게이션을 들 수 있다. 예전에는 모든 길을 사람이 기억하고 판단해서 차를 운전했지만 지금은 내비게이션이 모두 알아서 해준다. 사람은 시키는 대로 따라가기만 하면 된다. 인간이 갖고 있던 지리적 정보를 기계에 이식한 것이라고 볼 수 있다.

단, 인간이 해야만 하거나 잘 하는 일과 기계가 잘하는 일이 다르기 때문에 잘 구분할 필요가 있다. 기계가 더 잘 할 수 있는 일을 기계에게 이식하는 게 프로그래머가 해야 할 일이라고 생각한다.

두 번째 창업은
국내 모 ISP에서 CDN 사업을 하고 싶다는 이야기가 있었다. 학부 시절부터 많은 걸 만들어 봤기 때문에 충분히 만들 수 있다고 생각했다. 6개월 동안 서버와 솔루션, 클라이언트 시스템까지 모두 만들어야 했기에 상당한 도전이었다. 그 후에 스토리지 파일시스템, 통계시스템, 고객용 웹사이트, 데이터 캐싱 서버, 가상 파일시스템, 동영상 스트리밍 시스템, 동영상 인코딩 시스템 등을 모두 만들었다.

가장 마음에 드는 프로젝트는
가상 파일시스템을 만들었던 프로젝트다. 웹 서버나 다운로드 서버, 스트리밍 서버 등을 통해 전송하려는 데이터가 우리 스토리지와 고객 스토리지에 분산되어 있다. 그래서 다양한 애플리케이션들이 파일시스템에 접근할 수 있도록 인터페이스를 설계했다. 특히 사용자가 직접 파일시스템 호출을 재정의할 수 있도록 만들었다. 사용자에 따라 유연하게 시스템이 동작하기 때문에 그동안 발생했던 장애가 사라졌고 매우 안정적인 서비스를 제공할 수 있게 됐다.

개발자로서 더 노력해야 할 점은
자기가 만든 걸 어떻게든 잘 표현해야 한다고 생각한다. 사용할 사람이 프로그래머가 아니라 일반 사람이기 때문이다. 포장도 잘 하고 자신 있게 보여줘야 한다. 그래야만 개발자 자신의 가치도 인정받을 수 있고 여러 대가도 받을 수 있다고 생각한다. 밤을 새서 열심히 일해 놓고는 제대로 보여주지 못해 실패한다면 아쉽지 않나.

개발하면서 아쉬웠던 점은
생산성이 가장 높은 개발자는 코드를 작성하지 않는 프로그래머라고 한다. 이 말은 코드를 작성하지 않는 대신에 이미 만들어져 있는 좋은 소스 코드들을 가져다 잘 쓰는 게 생산성이 높다는 의미다. 이는 별것 아닌 것 같지만 매우 대단한 일이다.

예를 들어 필요한 오픈소스가 존재하는지 알아야 하고 그 오픈소스를 분석해 내려면 깊은 내공에서 나오는 경험과 지식이 있어야만 한다. 더군다나 다른 사람이 만든 소스 코드를 이해하고 사용하려면 그만한 실력이 따라줘야만 한다. 그렇게 해서 프로젝트를 성공적으로 끝냈다면 엄청난 일을 한 것이다.

그런데 개발자를 평가하는 관리자들은 “남이 만든 걸 가져다 쓴 것 외에 네가 한 게 뭐 있어?”라고 묻는다. 이미 잘 만들어져 있는 프로그램을 또 만드느라 많은 시간과 자원을 사용하는 사람보다 훨씬 일을 잘 했음에도 불구하고 가치를 인정받지 못하는 현실이 안타깝다.

일을 재미있게 하는 방법은
남보다 더 인정받아 더 많은 대우를 받길 원한다면 남들보다 열심히 해야 한다. 자신이 얼마나 열심히 노력했느냐가 중요한 게 아니라 남들보다 얼마나 더 노력했느냐가 중요하다. 컴퓨터라는 분야가 특히 그런 것 같다. 그렇게 뒤처지면 결국 남이 시키는 일만 하게 되고 재미없는 일만 하게 되며 일정에 압박을 받고 대우도 못 받게 된다. 따라서 하려면 제대로 해야 하고 남들보다 더 열심히 해야 하는 것 같다. 그러면 대우도 잘 받고 일에 보람도 얻게 되고 결국 재미있게 일을 할 수 있는 것 같다.

3년 후의 자기 모습은
심리학과 뇌공학을 배워보고 싶다. 내 생각을 컴퓨터로 옮겨야 하는 사람이라고 스스로 생각하고 있기 때문에 내가 무엇을, 어떻게 생각하는지 좀 더 자세히 알고 싶다. 그러면 프로그래밍을 더 잘 할 수 있을 것 같다.

지금 행복한가
나는 모든 개발자 그리고 직장인을 통틀어 행복지수 상위 1% 안에 들만큼 행복한 사람이라고 생각한다.

용영환 xenonix@gmail.com|행복한 삶을 꿈꾸며 글쓰기를 좋아하는 개발자다. NHN에서 근무했으며, 현재 클라우드 컴퓨팅 전문 기업인 아헴스(http://ahems.co.kr)에서 미래를 위해 일하고 있다.

 
댓글은 로그인 사용자만 작성 가능합니다. 로그인하기