IBM developerWorks Interview with Trustin Lee

December 2006, copied from: http://www.ibm.com/developerworks/kr/interview/2006_12.html

최근 아파치 디렉터리 프로젝트의 서브 프로젝트였던 MINA가 TLP (Top Level Project)로 승급되면서 PMC (Project Management Committee) 의장으로 선출됐다고 들었습니다. MINA 프로젝트에 대해 설명해 주세요.

기존의 아파치 프로젝트는 HTTP 서버 관련 프로젝트만 진행했지만, 점차 웹 서버 외에 다른 프로젝트들이 생겨나고 있습니다. 이를 관리하기 위한 조직이 PMC입니다. 제가 의장으로 선출된 MINA 프로젝트는 ‘Multi-purpose Infrastructure for Network Applications’의 약자로, 아파치 디렉터리 프로젝트 하에서 진행되던 프로젝트입니다. 아파치 디렉터리 프로젝트는 오픈 소스 기반의 LDAP 서버 개발 프로젝트인데, LDAP 서버는 프로토콜이 상대적으로 복잡합니다. 복잡한 프로토콜을 갖는 네트워크 애플리케이션들을 신속하면서도 고성능으로 개발할 수 있는 인프라를 마련하기 위한 것이 바로 MINA 프로젝트입니다.

MINA 프로젝트에 공헌한 바가 크다고 알고 있습니다.

5년 전쯤, 네트워크 애플리케이션 프레임워크인 ‘네티 (Netty)’를 직접 개발했습니다. 당시 근무하던 ㈜아레오 커뮤니케이션즈에서 SMS (Short Message Service) 게이트웨이를 개발하면서 네트워크 애플리케이션을 쉽게 작성할 수 있는 툴이 필요해서 만들게 됐죠. 네티는 일정한 지침만 준수하면 네트워크 애플리케이션을 빠르고 쉽게 만들 수 있는 프로그램입니다. 이 프로그램이 알려지면서, 아파치 디렉터리 프로젝트의 PMC 회원이 제게 합류를 권유했습니다. 그래서 아파치 인큐베이팅 프로그램으로 참가하게 됐고, 2년 6개월 전에 네티와 기존 프레임워크의 장점을 결합해보자는 MINA 프로젝트가 탄생하게 됐습니다.

아파치 소프트웨어 재단의 멤버가 아닌 커미터가 PMC 의장이 된 첫 사례라, 그 의의가 자못 크다고 생각되는데요.

아파치 소프트웨어 재단에는 커미터-멤버-이사회 멤버로 구성되는데, 초대의장에 멤버가 아닌 사람을 선출한 것은 전례가 없던 일입니다. 초대의장은 지금껏 멤버 중에서 선출되는 것이 관례였으므로 이번에도 멤버 중에 선출하자는 의견이 없었던 게 아니었습니다. 하지만 프로젝트에 실질적인 공헌을 하고 향후 발전에 도움을 줄 사람으로 뽑자는 의견도 팽팽했다고 들었습니다. 이번 의장 선출은 제게 더욱 잘하라는 믿음과 격려를 보내준 것이라고 생각합니다. 국내에서도 PMC 의장이 된 것은 처음이라 더욱 열심히 해야겠다는 각오를 다지고 있습니다.

오픈소스 개발 활동이 회사 업무에 도움이 되나요.

첫 직장이었던 ㈜아레오 커뮤니케이션즈에서는 현업에 필요한 일반적인 컴포넌트를 오픈 소스로 개발했었고, 그 후 솔라시스에서는 아파치 디렉터리 서버 기반의 사업을 추진했습니다. 첫눈에서는 직접적으로 연관된 업무가 없어서 아쉬웠지만, NHN으로 합병된 후에는 웹플랫폼 개발팀에서 다양한 오픈 소스 소프트웨어를 접목한 ESB (Enterprise Service Bus) 개발을 하고 있습니다. 무겁고 복잡했던 기존의 ESB가 아닌, 초경량 ESB죠. 이처럼 맡았던 업무가 대부분 오픈 소스와 연관돼 있었습니다.

오픈 소스 개발을 시작한 계기는 무엇인지요.

컴퓨터를 처음 접한 것이 초등학교 1학년 때였습니다. 이 때부터 프로그래밍을 시작했습니다. 중학교 때는 게임 제작을 시작했는데, PC통신 동호회 활동을 통해 공개를 하고, 평가 받고, 인정받는 것이 재미있었습니다. 이를 통해 단점도 보완할 수 있었고요. 공유하고 개선하는 것을 자연스레 즐기게 됐다고 할 수 있죠. 고등학교 3학년 때 정보올림피아드에서 동상으로 입상하면서 특기생으로 대학에 진학한 후부터 본격적인 개발을 시작하게 됐습니다. 당시에 국내에 오픈소스 붐이 일었었고, 특히 자바 관련 프로젝트들이 많아서 자연스럽게 오픈소스 개발자가 된거죠.

오픈 소스 개발의 매력이 무엇인지, 설명할 수 있으신가요.

소프트웨어는 한 개인의 뛰어난 능력보다는 여러 사람들의 노력과 검증에 의해 성패가 좌우된다고 생각합니다. 특히 사용자와 함께 개발을 진행해 나간다면, 비판과 보완을 통해 지속적인 발전이 가능하지 않겠습니까? 그 과정에서 다양한 사람들을 만나고 광범위한 지식을 축적할 수 있기 때문에 직접적인 경험에 대한 부족함을 메울 수 있습니다. 소프트웨어의 성능은 처해진 환경에 따라 달라지기 때문에 여러 가지 상황에서의 문제 해결 방식과 의사소통을 통해 발전할 수 있습니다. 지구 반대편 사람들과의 공조도 가능하고, 이를 통해 새로운 일자리 기회도 창출할 수 있다는 매력이 대단한 것 같습니다.

오픈 소스 기반의 ID관리 플랫폼도 개발하셨던데요.

기존의 ID 관리 플랫폼은 너무 비싸고 FOB 기기를 통해서만 인증이 가능한데다가 주기적으로 FOB를 교체해줘야 합니다. 하지만 아파치 디렉터리 기반의 IDM은 휴대전화에 Java ME 기반의 FOB를 장착하기 때문에 간편하고 저렴하게 제공할 수 있습니다. 현재 아파치 디렉터리 프로젝트에 포함돼서 진행하고 있으며 안정성과 완성도를 보강하고 있습니다.

요즘 관심을 두고 있는 이슈나 기술은 어떤 것이 있나요.

ESB 구현, 그리고 MINA 입니다. ESB를 구현하는데 있어서도 MINA를 적극적으로 사용할 예정입니다. 앞으로 MINA를 단순한 프레임워크를 넘어선 플랫폼으로 발전시킬 생각입니다. 이미 정의된 프로토콜 구현체가 있기 때문에, 여기에 구미에 맞는 웹 서버/SMTP 서버와 같은 나만의 맞춤 서버를 구성할 수 있습니다. 프로토콜 설계 시에도 스펙 문서 등을 드래그앤드롭으로 테이블로 만들어서, 스펙 문서와 클라이언트/서버측 코드를 자동 생성할 수 있는 GUI 도구를 제공하고, 또 나아가서는 MINA로 작성된 애플리케이션이라면 일체의 노력 없이 완벽히 JMX를 통해 모니터링할 수 있게 되도록 할 생각입니다.

현재 MINA의 개발은 어느 정도 진행됐나요.

1~2개월 전에 1.0이 공식 발표됐습니다. 프레임워크만 구현된 형태였습니다. 향후 자바5로 마이그레이션된 2.0을 내놓을 계획입니다. 동시성 처리가 월등한 API를 사용한 자바5로 성능을 높이고 1.0에 대한 피드백을 받아 보완해 나갈 것입니다. 1.0에 대해서는 안정성은 좋지만, 문서화의 미숙함이나 API를 개선해야 한다는 요구들이 있었습니다. 현재 EURid, JP모건, 시티그룹, 쌍용정보통신 외에 멀티 플레이어 게임 업체나 POS 단말기 통신, 화물배송추적 시스템, GPS 등에 이미 MINA가 쓰이고 있습니다. 향후 쓰임새는 더욱 늘어날 것으로 보고 있습니다.

향후 계획에 대해 얘기해 주세요.

오픈 소스 활동의 활성화에 기여하고 싶습니다. 우리나라에서도 풀 타임 오픈소스 개발자가 나올 수 있었으면 합니다. 오픈소스가 아직은 초기이지만, 결국 대부분의 소프트웨어가 오픈 소스화될 것이고 전 세계적인 망을 형성하리라 전망하고 있습니다. 다만, ‘개발’은 시간에 비례해 성과가 나오는 것이 아니라, 최대 능력 발휘의 한계를 넘으면 오히려 효율이 떨어지기 때문에 기업들도 ‘일 = 성과’가 아니라 ‘일 = 성과 + 학습 + 즐거움’이 될 수 있도록 기반을 조성해 줬으면 합니다. 그래서 개발자들이 더욱 오픈 소스에 관심을 갖고 참여할 수 있었으면 좋겠습니다. 이것이 상상할 수 없을 정도의 큰 커뮤니티를 형성하게 되고, 기업과 자신을 발전시킬 수 있는 견인차 역할을 해 줄 것이기 때문입니다.

IBM developerWorks의 정보들은 활용하시나요. 개선되었으면 하는 점이 있으시면 말씀 해주세요.

개념적인 설명이 담긴 기술 문서를 선호하는 편이어서, IBM developerWorks를 가끔 찾아봅니다. 활용 예제들은 적용 환경에 따라 차이가 있기 때문에 개념이 명확한 문서가 오히려 도움이 많이 됩니다. 전문주제별로 조금더 세분화되어서 정리가 돼 있으면 좋겠다는 생각을 한 적이 있고, 번역 문서 외에도 국내 기술진의 원고가 더 많아지면 좋을 듯 합니다.

이희승 소개 – Apache MINA, Apache Directory Server, Felix, Yoko 등 다양한 오픈 소스 소프트웨어 프로젝트의 커미터이며, Apache MINA PMC 의장을 맡고 있습니다. 자바 기반 고성능 네트워크 애플리케이션 분야의 전문가로, 경량 ESB, SMS 게이트웨이, 맞춤 HTTP 서버 등을 개발 및 제작한 경험이 있습니다.