IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
한국 developerWorks   >  dW Interview  > developerworks

“진지한 취미가로서 즐겁게 살기”



요즘은 개발이 전문 직업이지만 컴퓨터 역사 초창기의 홈브루 클럽을 보면 취미로서의 성격도 강했음을 볼 수 있습니다. 오늘날에도 홈브루 클럽 회원들이 그랬던 것처럼 취미로서 개발이 가능할까요? 이번 인터뷰에서는 취미로서 임베디드 개발을 즐기는 고현철 님을 만나보았습니다.

고현철 | 텔인포스 기술연구소 책임연구원
airdiver@telinfos.co.kr


 
  고현철 자기 소개를 부탁 드립니다.
현재 AESOP(An Entertainment Solution On a Platform, 이하 이솝)이라는 임베디드 리눅스 프로젝트를 운영하고 있습니다. 원래 전공은 전자공학이었고 동영상 쪽을 연구하다 보니 소프트웨어 코딩을 많이 하게 됐고 졸업 후 소프트웨어 개발 일을 시작했습니다.
임베디드 리눅스 개발은 언제부터 시작하셨나요.
1998년부터입니다. 그 전에는 웹 쪽 개발을 했었는데 회사를 그만 두고 제 전공인 동영상 관련 분야를 찾다 셋톱박스 개발사에서 일하게 되면서 시작했습니다. 그 후 회사를 다시 옮기면서 중간에 잠시 VxWorks 관련 개발을 하기도 했고 본격적으로 시작한 것은 2003년부터입니다.

이솝 프로젝트에 대해 소개해 주세요.
2004년 말 다음(Daum) 이리눅스(eLinux) 카페에서 소모임을 모집하는 기간이 있었습니다. 삼성 s3c2440 칩으로 동호회 보드를 공동제작하려던 시기였는데 어떤 회원 한 분이 개인적으로 만든 보드 사진을 올렸습니다. 당시에 저는 커널 등 기본적이고 공통적인 부분을 플랫폼으로 만드는 게 좋겠다고 생각하고 있었는데 그 분과 뜻이 통해 프로젝트를 시작해 보기로 했습니다. 공통 하드웨어에 임베디드 리눅스를 올리고 애플리케이션을 개발할 수 있게 기반을 닦는 작업을 해보려는 취지였습니다. 이솝 프로젝트의 자랑이라면 하드웨어를 직접 동호회에서 제작한다는 점입니다. 또 동호회 회원 중에 적극적으로 활동하는 분들이 많은 것도 특징입니다. 요즘은 신형 MP2530 칩에 리눅스 커널을 이식하는 작업을 하고 있습니다.

이솝은 처음부터 멀티미디어 플랫폼으로 구상했던 건가요.
프로젝트에서 고른 s3c2440이 원래 PDA용으로 나온 칩이었습니다. 보드를 PMP 같은 휴대형 기기 크기로 만들고 4인치 LCD도 달았는데 하드웨어를 설계자가 그런 종류의 단말기를 만들던 분이었고 운영진 역시 그런 것들을 좋아해 멀티미디어 플랫폼으로 나가게 됐습니다. 개발도 할 수 있고 들고 다니면서 즐길 수 있는 보드를 만들자는 의도였습니다. 현재 앞서 이야기한 MP2530 칩을 기반으로 공동제작을 해보려고 계획중인데 그것 역시 같은 개념의 플랫폼으로 만들 생각입니다.

임베디드 리눅스 기반 멀티미디어 플랫폼을 만드는 데 어려운 점이 있다면.
GUI입니다. 표준 GUI 시스템이 쓸만한 게 부족합니다. 임베디드용 Qt(Qtopia)가 있지만 라이선스비가 있고 개발이 그다지 쉽지 않습니다. WinCE에 비하면 개발환경도 약간 불편하고요. 기존 X 윈도우도 있지만 PDA 같은 시스템에는 쓰기 힘든 편이고 일일이 개발해야 할 것이 너무 많은 상황입니다. 최근에는 wxWidget을 활용해 보려고 시도중입니다. wxWidget의 경우 코드를 윈도우에서 짜고 리눅스에 가져가 컴파일하면 윈도우에서 작성한 모양 그대로 리눅스에서도 보여 개발이 편합니다. 그와 같은 교차 플랫폼(cross platform)은 해볼 만한 프로젝트로 보입니다.

멀티디미어 단말 운영체제로서 임베디드 리눅스의 가능성을 어떻게 보시나요.
한국의 경우 (PDA 등 단말에서) WinCE가 강세이지만 해외의 경우 임베디드 리눅스로 활발한 시도가 이뤄지고 있습니다. 칩 개발사들이 칩을 개발하고 나서 검증을 위해 먼저 리눅스를 이식해 보는 사례도 늘고 있고, 리눅스 기반 스마트폰도 나오고 있고요. 국내의 경우 그 동안은 임베디드 리눅스가 제어 시스템이나 공유기 같은 네트워크 장비에 많이 쓰여왔는데 최근에 임베디드 리눅스 기반 PMP가 성공한 사례도 있고 리눅스 기반 네비게이션 장치도 출시되고 있어 앞으로 점점 나아지리라 봅니다.

현재로서는 취미로 임베디드 개발을 하는 사람들이 쓸 수 있는 운영체제는 임베디드 리눅스뿐이겠군요.
WinCE를 쓸 수도 있겠지만 취미가들이 접근하기 쉽지 않은 측면이 몇 가지 있습니다. 크게 보면 비슷하겠지만 좀더 재미있게 공부하면서 하기에는 리눅스가 좀더 낫다고 봅니다. 직접 만들어 쓰는 재미도 크고요.

프로젝트를 하면서 도전거리가 있다면.
“임베디드 리눅스 문제에 관해서라면 이솝 프로젝트에서 다 해결할 수 있다”는 이야기를 들었으면 좋습니다. 그래서 새로운 칩에 리눅스를 올리거나 동호회 보드를 직접 제작하는 작업을 계속 하고 있습니다. 한 가지 아쉬운 것은 칩 제조사들의 기술 지원이 충분하지 않다는 점입니다. 아마도 아마추어에 대한 신뢰 문제인 것 같습니다. 이솝의 경우 진짜 취미로, 재미로 하면서 이런 상황을 바꿔 보고 싶다는 생각도 있습니다. 또 다른 나라 개발자들이 한국어를 배워 이솝 프로젝트를 찾아오게 하고 싶다는 바람도 있습니다. 이제는 이솝 프로젝트가 해외에도 알려져 유럽에 보드를 열다섯 장 정도를 판 적이 있고 영국 개발자들과도 MP2530에 리눅스를 이식하는 것에 대해 이메일을 주고받고 있는데 그 사람들도 취미로 임베디드 리눅스를 개발하는 사람들입니다. 한국이란 나라에 이런 프로젝트가 있었구나 하면서 놀라더군요.

이솝 프로젝트와 같은 동호회 활동들이 활발한 편인가요.
2005년까지만 해도 6~7개 정도였는데 최근 들어 점점 줄어드는 추세 같습니다. 현재 하드웨어와 커널을 모두 하면서 활발하게 활동하는 곳은 2~3개 정도로 알고 있습니다.

줄어드는 이유는 무엇일까요.
동호회에는 구심점이 필요한데 구심점이 없어지기 때문으로 보입니다. 구심점 역할을 하는 사람이 처음부터 끝까지 책임을 지고 끌고 나가야 하는데 그 사람이 지치는 경우가 많습니다. 자기 생활을 뺏기고 조력자도 많지 않으니까요. 이솝의 경우 다행히도 주변에서 도와주는 분들이 많습니다.

자신에게 가장 영감을 준 코드를 꼽는다면.
디지털 오디오, 비디오를 처리하는 데 사용하는 FFmpeg 라이브러리입니다. MS 윈도우용 애플리케이션에서도 이 라이브러리를 많이 씁니다. 이런 종류의 통합 라이브러리로는 거의 유일하지 않나 싶어요. 이 라이브러리를 이용해 만든 유명한 동영상 재생 프로그램이 바로 MPlayer입니다. 동영상 처리의 경우 최적화가 중요하면서 매우 어려운 부분인데 FFmpeg은 이 최적화 부분이 예술의 경지에 올랐습니다. 집대성이라고도 할 수 있죠. 오픈소스로 이 정도까지 할 수 있다는 점과 그렇게 잘 짠 코드를 대가 없이 공개했다는 점이 부럽기도 하고요.

FFmpeg에서 실제적으로 어떤 면에서 도움을 받았나요.
gp2x라는 게임기에 동영상 재생 프로그램을 이식할 때였는데 기존 MPlayer가 제대로 동작하지 않아 주요 코드를 대대적으로 수정해야 했습니다. 그 때 FFmpeg의 기법들을 많이 차용했습니다.

개발을 하면서 가장 희열을 느낄 때는 언제인가요.
몇 달 동안 안 되던 게 해결됐을 때입니다. 예전에 동영상 재생 프로그램을 이식하는데 오디오-비디오 동기가 맞질 않아 석 달을 식음전폐하다시피 하면서 매달렸던 적이 있습니다. 2005년 1월인가 그 문제를 해결했죠. 그리고 근래에는 MP2530에 아무것도 없는 상태에서 리눅스 커널을 이식했던 적이 있습니다. 새벽까지 작업하다 지쳐 집에 돌아왔는데 후배로부터 시리얼 콘솔이 열렸다는 전화를 받았습니다. 아마 새벽 네 시였던 것 같은데 세상을 다 얻은 듯이 기뻤습니다. 개발자들이라면 다 비슷할 겁니다. 그런 보람이 없다면 이 생활을 하지 못할 겁니다.

앞으로 임베디드 리눅스 개발자에게 필요한 경쟁력으로는 어떤 것들이 있을까요.
소스를 많이 분석하는 것을 권하고 싶습니다. 요즘은 100% 직접 다 짜기보다는 대부분 다른 사람이 만든 코드를 고쳐 쓰는 경우가 많습니다. 다른 사람의 좋은 코드를 보지 않으면 자신의 실력이 늘지 않습니다. 또 하나는 두려워하지 않는 것입니다. 저도 지금도 새 보드를 보면 겁부터 나는데 그걸 이겨내지 못하면 임베디드 개발이 어려워집니다. 마지막으로 임베디드 개발은 어찌 보면 '종합 격투기'에 가까워 단기간에 고수가 되기 어렵습니다. 어느 분야나 마찬가지겠지만 기술 역시 무르익어야 제대로 발휘할 수 있으므로 급하게 서두르지 않는 것이 좋다고 생각합니다.

   소셜 북마크

   mar.gar.in mar.gar.in
    digg Digg
    del.icio.us del.icio.us
    Slashdot Slashdot

앞으로 개인적인 목표는 무엇인가요.
리눅스에 계속 집중하려고 합니다. 커널이 2~3개월에 한 번씩 빠르게 바뀌고 있어서 부지런히 따라가야 합니다. 커널이 체계가 잡히는 과정이겠죠. 또 그렇게 공부한 것들을 다른 개발자들과 공유해야 할 책임도 느끼고요. 그리고 계속 현역 개발자로 남고 싶습니다. 여전히 재미있으니까요. 단기적으로는 올해 말까지 MP2530으로 커널 이식을 완벽하게 해서 공동제작을 추진해 보고 싶습니다. 동호회 수준에서 새 칩에 운영체제 커널을 이식하는 것은 해외에서도 드문 경우이기 때문에 완성해 보고 싶습니다.



[지난 인터뷰 보기]



위로


뉴스레터
  
자바스크립트가 작동이 중지되었습니다. 이 기능을 수행하시려면 브라우저에서 자바스크립스트를 작동시켜 주시거나 이곳을 클릭해주세요.
사이트 여행

dW 커뮤니티
포럼 | 블로그 | Spaces
dW Student Community

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드

Special offers
IBM SOA Sandbox 시험판
dW Student Community
로보코드
코드 트레이닝


    IBM 소개 개인정보 보호정책 문의