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

“다방면에 박식한 아마추어”



한국의 오픈소스 수준에 대해 크고 작은 논란이 있지만 사람들이 알아주지 않아도 꾸준하게 묵묵히 오픈소스에 공헌하는 개발자들이 있고 dW 인터뷰를 통해 꾸준히 소개되고 있습니다. 이번 인터뷰에서 만난 서상현 님도 그런 개발자 중 한 명입니다. ‘두루’와 ’깊이’를 모두 갖춘 아마추어가 되고자 하는 서상현 님의 오픈소스 개발 이야기를 들어보시죠.

서상현 | PyPy, FePy, IronMonkey 개발자
sanxiyn@gmail.com


 
  서상현 여러 오픈소스 프로젝트(http://kldp.org/node/73796)에서 활동중이신데 언제, 어떤 계기로 오픈소스 세계에 발을 들여놓으셨나요.
정확히 기억나지는 않지만 2001년 파이썬을 쓰면서부터입니다. 국내에 위키가 막 소개됐을 무렵인데, 노스모크라는 위키가 모인모인이라는 파이썬 프로그램을 쓰고 있어서 공부하게 됐습니다. 그 이후로 PyPy 프로젝트에 개발자로 참여했고, pyparsing이나 그 외 여러 프로젝트에 패치를 공헌했습니다. 그리고 2006년에는 FePy 프로젝트를 시작했고, 최근에 모질라의 IronMonkey 프로젝트에 합류했습니다.

오픈소스 프로젝트에 참여할 때 기술 외적인 부분에서 중요한 점을 꼽는다면.
영어입니다.

프로젝트에서 활동하다 보면 영어로 메일을 많이 쓰시겠네요.
예. 사실 수정된 사항이 명백하면 말이 필요 없는데 그렇지 않으면 필요합니다. 영어를 전혀 못하면 문제가 되겠지만 대부분의 경우 문법이 틀려도 이해해 줍니다. 단 자신의 의견을 유리하게 이끌어 나가야 할 경우에는 영어 실력이 상당히 필요하다고 볼 수 있습니다.

다양한 오픈소스 커뮤니티에 적응한 경험에 대해 소개해 주세요.
모인모인으로 파이썬을 시작해 공부를 제대로 하기로 마음 먹고 python-dev 메일링 리스트 아카이브를 하나하나 꼼꼼히 읽었습니다. 비슷한 시기에 PyPy에 대해 알게 되어 PyPy 메일링 리스트 아카이브도 마찬가지로 읽었구요. 오픈소스 프로젝트 메일링 리스트에 글을 올리기 전에 해당 메일링 리스트에서 지난 한두 달 동안 어떤 일이 있었는지 살펴보고 올리라는 조언을 극단적으로 받아들인 셈인데 그런 식으로 먼저 해당 커뮤니티의 분위기를 파악했습니다. 또 프로젝트마다 관례가 서로 다른데 웹사이트 등에 나온 지침을 살펴보는 게 중요합니다. 패치를 메일링 리스트에서 받는 곳도 있고 버그 트래커로 받는 곳도 있고 제각각이니까요.

분위기를 파악한 다음에는 뭘 하시나요.
해당 프로젝트 웹사이트에서 소스 코드는 어디에서 받는지, 빌드는 어떻게 하는지, 테스트 스위트가 있는지, 있다면 어떻게 쓰는지 등을 확인합니다. 특히 요즘은 테스트 스위트를 많이들 쓰므로 패치를 보내기 전에 테스트 스위트에서 기존 테스트를 통과하는지 확인해 봐야 합니다. 새로운 기능이라면 그 기능에 대한 테스트를 요구하는 경우도 있고 또 프로젝트마다 테스트 방식이 다르므로 살펴봅니다. 또 요즘은 구글 코드 검색 같은 코드 전문 검색 엔진이 있어서 필요한 코드를 찾아볼 수 있어 더 편해졌습니다.

블로그를 통해 어떤 활동을 하는지 알리시는데 국내 개발자들로부터 어떤 반응이 있었나요.
가끔 개인적으로 메일을 받은 적이 있고 블로그를 통해 알게 된 분과 플론(http://plone.org) 번역을 함께 진행하기도 했습니다. 그 분이 지금은 저보다 더 많이 플론 번역을 하시는데 이 자리를 빌려 감사드립니다. 오픈소스 프로젝트에서 활동하는 한국 개발자들이 많지 않다 보니 서로 네트워킹이 잘 안 되는 점이 좀 아쉬울 때가 있습니다. 그리고 간혹 개인 메일로 질문을 보내시는 분들이 계신데요, 다른 분들도 함께 읽을 수 있도록 공개된 게시판에 질문을 올려주세요. 게시판 링크를 메일로 보내더라도 말이지요.

PyPy, FePy, 그리고 최근 참여한 IronMonkey를 보면 어떤 공통점이 있는 것 같은데…
프로그래밍 언어를 구현하는 프로젝트라는 공통점이 있습니다. 설명하기는 어렵지만 컴파일러나 인터프리터에 많은 매력을 느낍니다. 전산과에 처음 들어갔을 때부터 프로그래밍 언어를 공부하기로 했고 지금도 그 생각은 변함은 없습니다. 중요한 분야니까요. 주로 파이썬을 쓰고는 있지만 루아 등 기타 언어에도 관심이 있습니다.

감명 깊었던 코드를 하나 꼽는다면.
초창기 리스프 코드들, 예를 들면 존 매카시의 eval이나 리스프를 PDP-1에 이식한 L. 피터 도이치의 코드 들입니다. 역사적인 의미가 크고, 현재 프로그래밍 언어에서 쓰이는 중요한 아이디어의 많은 부분이 리스프에서 왔기 때문입니다. 전산학이 비교적 새로운 분야기는 하지만 전산학에도 역사가 있고 시간의 깊이가 있다는 걸 느끼게 해주기도 하구요. 제가 태어나기도 전에 씌어진 코드들 중 오늘날에도 쓰이는 것이 있다는 사실은 저를 늘 놀라게 합니다.

프로그래밍 언어 분야 중에서도 현재 가장 관심 있는 것은 무엇인가요.
ECMA-335 CLI(Common Language Infrastructure)에 관심이 많습니다. 프로그래밍 언어에는 크게 문법과 의미론 그리고 라이브러리가 있습니다. 라이브러리는 그 규모가 커서 컴파일러나 인터프리터를 만드는 사람이 라이브러리까지 모두 짜기란 쉽지 않습니다. 언어들 사이에 상호 호출할 수 있는 런타임이라는 CLI의 아이디어는 상당히 매력적입니다. 최근에 JRuby 1.0이 나왔는데 JVM 역시 비슷한 역할을 할 수 있을 것 같습니다.

모질라의 IronMonkey 프로젝트에는 어떻게 참여하셨나요.
모질라 코퍼레이션에서 IronPython 프로젝트에 관련된 사람을 통해 제게 연락을 했습니다. 지난해 어도비가 모질라 프로젝트에 타마린이라는 VM을 기여했는데 이 타마린에서 다양한 언어를 실행할 수 있게 개발하는 작업을 해줄 수 있겠냐는 내용이었습니다. 특히 IronPython이나 IronRuby 소스코드를 활용할 수 있겠느냐는 것이었습니다. 현재 C로 짠 파이썬과 루비 런타임은 공유하는 부분이 없는 반면, IronPython과 IronRuby는 공통 런타임을 갖고 있어 여러 언어를 지원할 때 용량 등 여러 측면에서 유리하거든요. 또 보안 측면에서도 C로 구현한 파이썬이나 루비보다는 샌드박스 같은 보안 모델을 고려해 설계한 CLI에서 실행되는 IronPython과 IronRuby가 작업하기에 수월할 수 있겠구요.

모질라에서 그런 구상을 한 배경은 무엇인가요.
이번 프로젝트는 Brenden Eich가 2004년 6월 차세대 게코 엔진의 VM을 위한 요구 사항을 발표할 때부터 계획된 것입니다. 처음에는 핫스팟이나 모노도 고려 대상이었지만 여러 가지 이유로 결국에는 어도비에서 기증한 타마린을 쓰기로 결론이 났습니다.

타마린에서 다양한 언어를 실행해야 할 어떤 필요성이 있을까요.
물론 자바스크립트만으로 다 할 수 있다고 생각하는 사람들도 있지만 자바스크립트 이외의 스크립트 언어를 쓰고 싶어하는 수요가 있었으니까요. 웹 외에 XUL 프로그램을 짤 때도 활용할 수 있구요.

어떤 어려움이 있을 거라 예상하시나요.
CIL(Common Intermediate Language)을 ABC(ActionScript Byte Code)로 바꾸는 데 몇 가지 어려움이 있을 것 같고 Lightweight Code Generation 같은 타마린에는 아직 없는 기능들도 넣어야 하구요. 그 외에도 개념 증명(proof of concept) 코드를 짜다 보면 예상 외의 문제점도 나올 것 같습니다.

어떤 면에서 흥미를 느끼시고 수락하셨나요.
프로그래밍 과제로서 도전적이고 대단히 재미있어 보여 참여하기로 결정했는데 이 프로젝트가 마무리됐을 때 실제 어떤 변화가 있을지는 아직 잘 모르겠습니다.

IronMonkey 외에도 재미있고 도전적인 느낌을 주는 프로젝트가 있었나요.
PyPy입니다. 똑똑한 사람들이 번뜩이는 아이디어를 모아 진행하고 있는 야심찬 프로젝트인데요. 당장 세상에 영향을 미치지는 못하더라도 프로그래밍 언어 분야에서 비슷한 연구를 할 때 많은 참고가 되리라 생각합니다. PyPy의 기본적인 아이디어는 고수준 언어가 저수준 언어보다 낫다는 판단에 따라 고수준 언어를 쓰고 있지만, 정작 고수준 언어 구현 자체는 고수준 언어를 쓰지 않는다는 문제 의식에서 출발했습니다. 예를 들어 C로 구현한 파이썬은 레퍼런스 카운팅을 쓰는데 이걸 쓰지 않도록 바꾸려면 세상을 뒤집는 것과 같은 변화를 주어야 합니다. 비용이 많이 들죠. 반면 파이썬으로 파이썬을 구현하면 이런 저수준적인 결정을 하지 않아도 되고 백엔드 컴파일 과정에서 메모리 관리 부분을 자유롭게 선택할 수 있게 됩니다. 물론 쉬운 일은 아닙니다.

   소셜 북마크

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

다방면에 박식한 아마추어”라고 자기 소개를 하신 걸 봤는데 지금 하는 것 외에도 앞으로 더 해보고 싶은 일이 있다면.
자연 언어 처리에 대해서도 관심이 많습니다. 자연 언어 처리가 그 동안 맞춤법 검사나 내용 요약 같은 것에 적용되어 왔는데요, 개인적으로 인상 깊었던 것은 SHRDLU 데모였습니다. 1970년대 당시 자연 언어 시스템 중에서 최고 수준의 묘기(tour de force)라고 볼 수 있습니다. 당시 맥리스프로 짠 코드가 현재 컴퓨터 환경으로 이식되어 지금도 실행해 볼 수 있습니다. 취미가 바둑이라 바둑 프로그래밍에도 관심이 많습니다.



[서상현 소개] 카이스트 전산학과를 휴학중이고, 파이썬을 비롯한 프로그래밍 언어와 그 구현에 관심이 많다. 여러 오픈소스 프로젝트에 참여하고 있다.

[지난 인터뷰 보기]



위로


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

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

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드

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


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