당시 그렇게 세운상가를 드나들던 사람들을 '세운키드'라고 부른다던데.
예. 맞습니다. 그 전에는 모니터 없이 기판에 LED와 숫자판이 달려 있는 기계를 썼었죠. 그 다음 세대를 세운키드라고 할 수 있습니다. 그 때는 IBM PC가 나오기 훨씬 전이었고 애플 컴퓨터로 시작한 사람들이 많았습니다. 또 다른 파(?)로는 MSX, z80이 있었죠. z80을 하던 사람들은 마이컴 쪽으로, MSX를 쓰던 사람들은 게임 쪽으로 많이 간 것으로 알고 있습니다. 저는 애플로 시작했는데 당시에 애플로 만든 당구장 집계 시스템을 본 기억이 나고 친구 중에 세운키드가 한 명 있었는데 그 친구는 잡지에 기고도 했었죠. 그 시절을 생각하면 재미있습니다. 그리고 제일 순수하게 좋아했고요. 당시 착각했던 것 중 하나가 '컴퓨터로 안 될 게 없다'였습니다. 나중에 그게 아니구나 하는 걸 깨달았지만요. 세운키드들의 특징이었습니다. 그 다음으로 IBM PC 세대가 등장했고 '하늘소', '아래한글' 등이 나왔습니다.
|
 |
 |
|
그 당시 활동하셨던 분들에게는 컴퓨터가 일이라기보다는 순수한 재미였겠군요.
그렇죠. 진짜 재미있었으니까요. '이렇게 하면 어떨까, 저렇게 하면 어떨까' 하는 지적 호기심이죠. 아이들이 즐거운 이유는 모든 게 배울 거리이기 때문이고 나이가 들면 재미가 없어지는 게 다 아는 것이기 때문이 아닐까 합니다. 저도 새로운 것을 배우는 게 지금도 즐거워 ‘사람한테 배우는 것이 참 즐거운 것이구나’ 하는 생각을 합니다. 당시 '키드'들은 컴퓨터 자체를 순수하게 좋아했습니다. 지금 비보이들과 다를 게 없죠.(웃음) 기성 세대가 보기에 비보이는 이해가 안 되는 아이들이었지만 지금은 하나의 공연 문화로 자리잡았고 직업으로까지 발전했으니까요. 프로그래밍을 정말 좋아하면 그걸 업으로 하지 않아도 행복하겠다는 생각을 가끔씩 합니다.
|
 |
 |
|
만약 요즘 개발자들을 타임머신에 태워 그 시절로 돌려보낸다면 똑같은 즐거움을 느낄까요.
요즘 프로그래머들이라도 백지 상태로 과거로 돌아가 프로그래밍에 빠져든다면 같은 즐거움을 느낄 수 있을 겁니다. 지금도 프로그래밍 자체가 좋아 몰입하는 개발자들을 볼 수 있죠. 그런데 어쩌면 지금이, 예전보다 재미 면에선 빈곤하다는 생각을 합니다. 예전에는 아무것도 없었지만 무에서 유를 창조하는 재미가 있었고 사소한 것이라도 자기가 먼저 해냈다는 만족도 있었으니까요. 요즘은 그 시절에 비하면 많이 편리해졌지만 그만큼 더 복잡해졌고 해야 할 일도 늘어나 제 개인적으로도 옛날이 더 재미있었던 같습니다.
|
 |
 |
|
세운키드와 오늘날의 컴퓨터 긱(geek)들을 비교한다면.
근본적으로는 같다고 생각합니다. 지적 호기심이 강한 사람이 깊이 빠지죠. 프로그래머 체질이 있는 것 같습니다. MIT 해커든, 세운키드든, 현대의 전문가이든 기본적인 속성은 지적 호기심을 충족하고 그것에서 희열을 느끼고 그 자체를 즐긴다는 것입니다. 아무래도 재미있어 하는 사람과 의무감으로 하는 사람은 심리적 압박도 다르고 집중도도 다르니 즐기는 사람이 더 유리한 위치에 있게 되죠. 언어나 환경, 형식은 각각 다르겠지만 그런 차이를 떠나 그 자체를 즐길 수 있다면 그런 사람들을 해커라고 부를 수 있고요. 세운키드나 지금 해커들이나 배움에 대한 열망은 같아 보입니다. 요즘 해커들의 불행이라면 개발 환경은 좀 편해진 것처럼 보이는데 알아야 할 게 너무 많아 고수 되는 게 어려워졌다는 것이겠죠. 예전에는 조금만 잘 해도 됐는데 요즘에는 고수 대접을 받으려면 그야말로 '산 넘고 물 건너야' 하니까요.(웃음)
|
 |
 |
|
소프트웨어와 하드웨어를 모두 다루다 보면 또 다른 어려움이 있을 것 같습니다.
우선은 전문 분야가 나뉘어 있습니다. 그래서 팀워크가 굉장히 중요합니다. 혼자서 만능일 수는 없으니까요. 그래서 융합을 중시하고 있습니다. 아직까지는 삐그덕 거린 적은 없고요. 6년째 되다 보니 큰 문제는 없습니다. 다만 최근에 들어온 신입사원들이 기술 격차 때문에 좀 힘들어 하는 게 걱정입니다.
|
 |
 |
|
하드웨어를 개발할 때 어느 부분에 신경을 쓰시나요.
우선 기획입니다. 회사는 이윤을 추구하는 조직이니 팔 수 있는 보드를 만들어야 하는데 엔지니어는 또 나름대로 추구하는 것이 있어 충돌이 생기는 경우가 있습니다. 또 소비자가 바라는 것과 엔지니어의 판단이 다른 경우도 있는데 조정을 해야 하죠. 두 번째로는 하드웨어에 대한 자료입니다. 자주 쓰이지 않는 보드의 경우 자료 찾기가 쉽지 않다는 문제가 있거든요. 예전에는 회로 불안정 같은 문제들이 있었는데 지금은 그런 문제들은 거의 없고 더군다나 리눅스가 다양한 아키텍처에 이식된 덕분에 거의 같은 메커니즘과 접근 방식으로 작업을 할 수 있게 됐습니다. 그래서 현재는 기획과 보드 특성 파악에 필요한 자료를 모으는 것이 어려운 부분입니다. 그런 면에서 이제는 정보전인 것 같습니다. 실제 개발 측면에서는 하드웨어를 만들고 나서 LED를 켰을 때 깜박거리기까지, 저희는 그걸 “심장이 뛴다”고 표현하는데요. 일단 심장이 뛰면 보드 회로, CPU에 이상이 없고 컴파일러도 쓸 수 있고 부팅 메커니즘도 작동하게 되는데, 거기까지의 과정이 어렵습니다.
|
 |
 |
|
정보전이라고 하셨는데 정보 수집은 어떻게 하시나요.
어떻게 보면 노하우인데 설명하자면 좀 애매합니다. 경험적인 면도 있지만 직감적인 면도 있거든요. 정보를 빠르게 찾는 요령이라면 검색어 선정이라든지, 해당 분야 커뮤니티 사이트를 찾아내는 방법이라든지, 여러 가지 질답 중에서 비슷한 점을 찾아 자신의 문제 상황에 연관시켜 본다든지 하는 것들을 들 수 있겠습니다. 그 외에 KELP 같은 커뮤니티 사람들과 오프라인에서 자주 만나려고 합니다. 만나서 이야기를 나누다 보면 관점이 다른 사람들로부터 최근 경향이라든지, 새로운 문제 해결 방법 들을 배울 수 있습니다. 정보의 위치를 아는 것만큼 정보를 지닌 사람들을 아는 것도 중요해지고 있다는 생각을 합니다.
|
 |
 |
|
리눅스 커널은 어떻게 관리하시나요.
현재 2.6.21 버전을 기반으로 패치를 해 쓰고 있습니다. 전에는 보드 별로 커널이 다 달랐는데 요즘은 통합 작업을 하고 있습니다. 보드 역시 통합 작업을 하고 있고요.
|
 |
 |
|
커널 작업을 하시면서 직접 개선해 보고 싶은 부분이 있다면.
몇 가지 있습니다. 가장 대표적인 것을 들자면 시리얼 장치 부분입니다. IA(Industrial Automation) 쪽에서는 여전히 시리얼 장치를 많이 쓰는데 리눅스의 시리얼 장치 드라이버가 느리고 복잡해 접근하기 어렵습니다. 또 하나는 로그 문제입니다. 로그를 저장하는 NAND 특성상 느리고 한꺼번에 다 지워야 하는데 그에 최적화된 새로운 알고리즘을 만들어보고 싶습니다. 그 외에 GPIO, I2C에도 관심이 있습니다. 그리고 임베디드용 배포판이 있었으면 좋겠고, 윈도우 환경에서도 자유자재로 컴파일 할 수 있으면 좋겠다는 바람이 있습니다.
|
 |
 |
|
IA 쪽이라면 죽지 않는 시스템을 만들어야 하는 압박감이 상당할 것 같은데.
리눅스가 의외로 죽지 않습니다. 물론 애플리케이션 단에서 죽는 문제가 있을 수 있겠지만 커널 자체는 많이 안정화되어 있습니다. 저희의 경우 커널 안정성을 높이기 위해 장치 드라이버를 최대한 단순하게 만듭니다. 그리고 애플리케이션에서 그것을 응용하는 방식으로 구성해야 자유도도 높고 성능이나 안정성을 보장할 수 있다고 봅니다. 그 외에 애플리케이션이 죽지 않는지 감시하는 프로그램으로 문제가 생겼을 때 빠르게 복구할 수 있도록 하고 있습니다.
|
 |
 |
|
빡빡한 일정은 어떻게 관리하시나요.
무리한 일을 하지 않습니다. 다시 말하면 주어진 시간 안에 할 수 있는 일만 합니다. 그간의 경험에 비추어 필요한 시간을 예측할 수 있어서 무리한 일을 맡아 힘들게 작업하거나 고객과의 신뢰가 깨지는 상황을 만들지 않으려고 합니다. 덕분에 실패율이 낮은데 될 일만 하기 때문인 것 같습니다.
|
 |
 |
|
개발에 집중할 수 없게 하는 외부 요인들에는 어떻게 대처하시나요.
일에는 두 종류가 있는데 하나는 남과 연관된 일이고 다른 하나는 혼자 처리하는 일입니다. 그런데 개발자의 실력이 높아질수록 연관된 일이 늘어납니다. 보통은 오후 여섯 시 이전에 연관된 일이 생기고 그 이후가 자기 일을 하는 시간이 됩니다. 예를 들면 각종 회의, 즉 기술 토의, 영업 회의 등은 낮에 할 수밖에 없으니 밤에 일을 하는 거죠. 낮에도 할 수 있겠지만 방해를 많이 받습니다. 그리고 개인적으로 전환 시간이라고 부르는 것이 있는데 한 사람이 하루에 두 가지 이상의 일을 하는 것이 힘들다고 생각합니다. A라는 일에서 B라는 일로 전환하는 데 대개 30분에서 한 시간 이상이 걸린다고 보는데 근무 시간이 여덟 시간이면 집중할 수 있는 시간은 여섯 시간 이하인데 전환 시간을 빼면 실제 일하는 시간은 더 줄어듭니다. 그래서 전환 시간을 줄여야 합니다. 하루에 하나 또는 두 가지 일 정도만 하고 욕심을 내지 말아야죠. 그렇게 해서 집중도를 높이려 합니다. 말씀 드렸듯이 무리한 일을 억지로 할 필요는 없는 거죠.
|
 |
 |
|
'개발자를 위한 회사'라는 설립 목표는 어느 정도 이뤘다고 보시나요.
이제 걸음마 단계입니다. '개발자를 위한다'는 말에 딜레마가 있는데 '어떤 사람이 개발자인가' 하는 것과 '위한다'는 기준이 각자 다르다는 것입니다. 현재는 개발자를 위한 회사에 대해 정해진 모양은 없고 끊임없이 바꿔나가고 있습니다. 회사가 계속 살아남으면서 개발자들도 좋아할 수 있는 중간선을 찾으려 하죠. 회사 사훈이 '가늘고 길게' 입니다. 명퇴 당하지 않고 스트레스 덜 받으며 자기가 정말 하고 싶은 할 수 있는 환경을 만들려고 합니다. 용역 일을 하다 보니1년 중에 일이 없는 기간이 있는데 궁극적인(?) 꿈은 겨울에 한 달, 여름에 한 달 쉬는 것입니다. 언제가 될지는 모르겠네요.(웃음)
|
 |
 |
|
귀차니즘에 빠진 적은 없으시나요.
많습니다. 누구나 일하기 싫을 때가 있죠. 제 경우에는 일하기 싫을 때는 억지로 하지 않고 쉬거나 책을 읽거나 합니다. 귀차니즘을 극복하려 하기보다는 그냥 두는 게 일하고 싶을 때 더 열심히 할 수 있게 되고요.
|
 |
 |
|
개발 작업 중에 회사 일을 제외하고 어떤 부분이 가장 재미있으신가요.
그때그때 다르지만 요즘은 이클립스와 자바가 재미있고, 나중에는 로봇 쪽 일을 하고 싶습니다. 태권브이 만들어야죠.(웃음) 하드웨어 엔지니어들에게 로봇은 꿈인 것 같습니다. 그 외에 회사에서 직원들이 자기가 갖고 싶은 자작 PMP를 만든다거나 하는 것도 생각하고 있습니다.
|
 |
 |
|
자기 소개를 하실 때 '순돌이 아빠형 프로그래머'라고 하시는데 이 땅의 수많은 '순돌이 아빠'들이 하는 일에 대해 어떻게 생각하시나요.
불쌍하죠.(웃음) 자의로 순돌이 아빠가 되는 사람은 없는 것 같습니다. 순돌이 아빠들은 대부분 용역 회사 출신이고 혼자서 여러 가지 일을 다 해야 합니다. 대기업에서 순돌이 아빠가 나오기는 힘들겠죠. 대신 일에 대해 경험이 많을 수밖에 없고 나중에는 순돌이 아빠들이 유리하다고 봅니다. 수많은 경험 덕분에 적응이 빠르고 혼자서 많은 일을 해왔기 때문에 실천적이니까요. 물론 그렇게 되기까지 엄청나게 힘들었을 테고 그래서 불쌍한 인생일 수도 있지만요.
|
 |
 |
|
'순돌이 아빠' 생활은 언제까지 하실 계획이신지.
회사가 본 궤도에 오르면 강원도에 연구소를 만들고 하고 싶은 연구를 해야겠다는 꿈이 있습니다. 에디슨이 말했던 것처럼 개발에서 손을 놓는다면 그건 죽는 날이겠죠. 하고 싶은 일이 너무 많다는 게 문제입니다.(웃음) 그 재미로 살고요.
[유영창 소개]
세운상가에 갔다가 애플 컴퓨터를 보고 프로그래밍을 시작했고 지금은 주로 시스템 프로그램과 임베디드 프로그램을 개발하고 있다.
NEXT> 유영창 님의 인터뷰 대상자 추천
고현철 님
추천 이유: AESOP(An Entertainment Solution On a Platform)이라는 흥미로운 임베디드 리눅스 프로젝트에서 활발히 활동중인 실력자입니다.
|
 |
 |
 |
 |
|
*IBM developerWorks의 개발자 인터뷰는 릴레이 인터뷰 형식으로 다음 인터뷰 대상자는 고현철 님입니다. 다음 인터뷰도 많은 기대 바랍니다.
[지난 인터뷰 보기]
|
 |
 |