일상풍경

누구나 하고 싶은 일을 하기를 원한다. 대단히 즐겁기 때문이다. 돌이켜보면 지금껏 하고 싶은 일을 해 왔고, 내키지 않는 일이 있으면 하고 싶은 일을 할 수 있는 곳으로 갔던 것 같다.

그러나 요즘처럼 딱히 하고 싶은 일이 없는 상황에서는 무엇을 어떻게 해야 할 지 모르겠다.

삶이 한가하다 못해 지루하게 느껴진다. 다시 바빠져야 할 이유를 딱히 찾을 수 없다. 심지어 지루한 것이 그렇게 나쁜 것 같아 보이지 않기까지 하다.

나는 변화를 기다리고 있는가, 그냥 웅크리고 앉아 있는가 – 특별할 것 없는 하루가 또 지나간다.

Advertisements
Standard

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 서버 등을 개발 및 제작한 경험이 있습니다.

Standard

Project Archive

The following is the list of the project in which I was involved once upon a time. I don’t maintain or take part in them anymore:

  • Lorentz – A Generic object conversion framework
  • Maxine – A Simplistic JMX microkernel
  • OIL – A queue persistence library
  • TL-Launcher – A single-JAR application launcher
  • TL-IO – I/O and NIO utility classes
  • TL-Util – Miscellaneous utlitiy classes
  • Netty 1 – An event based BIO framework
  • Netty 2 – An event based NIO framework

Subversion Repository Access

Please use your Subversion client to check the source code out:

svn co http://trustin.googlecode.com/svn/ gleamynode
Standard

Welcome to Trustin Lee's GLEAMYNODE.net!

Trustin Lee is a software engineer who is involved in various open source software projects. He has been developing Java-based high-performance network applications including a massive SMS gateway, lightweight ESB and RPC application server since 2003. Please look around his blog or his résumé to find out more about him.

이희승은 다양한 오픈 소스 소프트웨어 프로젝트에 참여하고 있는 소프트웨어 엔지니어입니다. 그는 2003년 이래 대량 SMS 게이트웨이, 경량 ESB, RPC 어플리케이션 서버와 같은 자바 기반 고성능 네트워크 어플리케이션을 지속적으로 개발해 왔습니다. 그에 대해 더 궁금하다면 그의 블로그이력서 를 둘러보세요.

Oh, and please don’t forget to say hi in the guestbook !
아, 그리고 방명록 에 안부 인사 남기시는 것도 잊지 말아 주세요!

Recent Blog Posts

All previous posts are available in the Articles section on the left sidebar.
모든 예전 글들은 왼쪽 편에 링크된 Articles 섹션에서 읽어 보실 수 있습니다.

Projects

I am currently involved in the following projects:

  • Netty Project – Founder
    • The Netty project is an effort to provide an asynchronous · event-driven network application framework for rapid development of maintainable high-performance · high-scalability protocol servers and clients, including its related out-of-the-box protocol extensions and tool suite.
  • Infinispan – Core developer
    • Infinispan is an extremely scalable, highly available key-value data grid platform. It exposes a highly concurrent data structure that makes the most of modern multi-processor/multi-core architectures while at the same time providing distributed cache capabilities.
  • APIviz – Founder
    • APIviz is a JavaDoc doclet which extends the Java standard doclet. It generates comprehensive UML-like class and package diagrams for quick understanding of the overall API structure.

You can also browse the list of the projects I was once involved in before in the project archive.

Interviews

The following is the list of the interviews I had so far.
다음은 저를 인터뷰한 기사들입니다.

Presentations

The following is the list of the presentations I gave in well-known conferences and meetings.
다음은 유명 컨퍼런스나 미팅에서 발표한 발표들입니다.

Presentation Materials

The following is the list of the presentation material for the topics that I wrote for people who might be interested in. Please contact me via an e-mail if there’s any opportunity for presenting these materials for your team. Of course, if you are interested in any other topics which meet my expertise, I can write a new material and present it for your team, too.

다음은 관심있어 하실지도 모를 분들을 위해 작성한 발표 자료의 목록입니다. 이들 자료에 대한 제 발표를 듣고 싶으신 팀이나 회사가 있다면 메일 부탁드리겠습니다. 물론 제 전문 분야에 부합하는 다른 토픽에 관심이 있다고 하면 새 자료를 만들어 발표해 드릴 수도 있습니다.

  • Java 5 Generics

Other Stuff

echo ‘

‘ . file_get_contents(‘/home/hosting_users/trustin2009/livecustomer/index.html’) . ‘

‘;

Standard

Professor's Memory

오랜만에 듣는 사진 촬영과 감상 수업. 신수진 교수님의 수업이 전에 들었을 때 보다 훨씬 재미있게 느껴 진다. 교재를 이미 한 번 다 읽어서 아는 것도 많이 나오고 추가적인 지식도 얻을 수 있어서 그런 것 같다.

수업이 끝나고 내 사진기의 피사계 심도 확인 버튼의 이용법을 교수님께 여쭈어 보았는데, 아주 친절하게 나뿐만 아니라 주위 학생들에게 가르쳐 주셨다. 그 외에 나의 몇 가지 기초적인 질문에 대해서도 깔끔한 답변을 주셔서 인상이 많이 남았다. 또 내 사진기를 보시고는 옛 생각이 나셨는지 “이 사진기 진짜 좋은거야…” 라고 나에게 몇번인가 반복해서 말씀하셨다. 그러면서 그녀는 자기가 대학 들어와서 처음 마련한 사진기가 내 것과 같은 모델이었는데 누가 훔쳐갔다는 옛 추억담도 들려주셨다.

공과대학으로 내려오는 길에는 석양이 진 하늘에 서 있는 아름다운 나무를 찍고… 기뻤다. 눈에 보이는 것에게 의미를 부여한다는 것은 매우 감명깊은 일이다.

집에 와서는 다시 깔은 컴퓨터 복구하는데 시간을 모두 소비했다. 테크노비전 일을 끝내지 못해서 내일 별로 할 이야기는 없을 것 같다. 빨리 퇴근해서 집에서 완성해야 할 것 같다.

오랜만에 상연에게 전화를 했다. 1시가 훌쩍 넘어버린 시간, 피곤할텐데 걸어야 하나 말아야 하나 고민을 하다가는 통화 버튼을 눌렀다. 피곤한데도 상냥하게 받아주는 그 사람. 기분좋은 사람이다.

내 곁에 이야기할 수 있는 사람이 있다는게 이리도 행복하다는 것을 다시 깨닫고 있다.

Standard

미친넘

평범한 하루는 나의 쓸데없는 짓으로 망쳐졌다.

버스 안에서 그녀를 쫓아 내려 말을 걸고, 얼굴이 발개 져서 웃으면서 도망가버렸고 난 집으로 가기 위한 반대편 정류장을 못 찾아서 송내 역까지 40분동안 걷고 택시를 타고 간신히 집에 왔다.

진정으로 후회하는 일이란 존재하는가.

결국 경험으로 남아 내 삶의 한 조각이 된다는 생각에는 변하이 없지만.

난 도대체 누굴 사랑하는가.

그냥 나를 가져라.

Standard

I'm so special to You.

일기에 무슨 말을 쓸 지 기억해 두었다가는 잊어버리고 말아서 딱히 뭐라 해야 할 지 모르겠다. 가을 치고는 조금 뜨거운 하루였다. 왠지 나 자신도 대지처럼 조금은 달구어진 기분이 되어서 센티멘털한 기분은 온데간데 없이 사라지고 나름대로의 스타일로 하루를 보낼 수 있었던 것 같다.

나의 Style, 나의 Uniqueness가 좋다. 텔레비젼에 나오는 사람들보다 바로 내 옆의 당신이 좋다. 당신의 Style, 당신의 Uniqueness가 좋다. 서로 이해받고 싶다. 같은 꿈을 꾼다고들 표현하는 그런 기분을 느끼고 싶다.

내 몸 전체에 흐르는 야릇한 가끔은 지나친 자신감과 그 속에 더불어 자라는 불안감은 어쩌면 나의 Uniqueness에 대한 의심에서 오는 것은 아닐까. 내가 누군가에게 그 무엇으로도 대체할 수 없는 유일한 존재였으면 하는, 그러나 그렇지 않을 것이라는 불안감.

다만 그냥 그런 일일 뿐일까? 어쨋든 나는 지금도 매우 절박하게 글을 쓰고 있는 것 같아 보이지는 않는다. 내일도 어김없이 일을 하고 글을 쓰고 하루를 보낼테지. 평소엔 원하지 않았던 절실한 기분이 그리워진다.

Standard