본문 바로가기

카테고리 없음

핑계 대지 마라. 열정 vs 현실.

월간지 기자라는 이유로 마감때만 되면 터무니없이 포스팅을 하지 않는 호랭이.

마감중에 사정 봐줄 것 없이 바쁜 건 사실입니다.

게다가 처자식 먹여 살리려다보니 그 와중에 아르바이트까지 겹쳐버리면 한달 중 열흘에서 보름 정도는 평균 수면 시간을 2-3시간 정도로 유지하며 견뎌야 하기도 합니다.

하지만, 그런 것이 무슨 이유가 될까요?

블로그를 오픈하며 했던 생각들이나 목표들, 그리고 누군가를 바라보며 닮고 싶었던 목표들을

현실 앞에 무릎꿇는 다짐에 '열정'이란 이름을 붙일 수 있을까요?

그처럼 대단한 사람들을 만나 자극을 받고, 엄청난 기업들을 성공으로 이끄는 비결들을 보면서도

변화하지 못하는 호랭이는 얼마나 무디고 게으른가요. OTL

3년 전 월간 마소에 이창신 님이 쓴 글을 보게 되었습니다.

전에도 보았겠지만 이번에는 와 닿는 정도가 다르네요.

자신의 꿈을 위해 터무니없이 높은 벽에 도전하고

작은 금하나 갈 것 같지 않던 그 벽을 허물어버린 이창신님의 글을 발췌해 보았습니다.

당시 이창신님 또한 밤낮없이 일하는 개발자였지만 그는 자신이 목표했던 것을 이루었고

그걸 발판으로 그 다음 그리고 또 그 다음 단계를 향해 큰 걸음을 걷고 있습니다.

몇 차례 시도해 보고 주저앉으며 현실을 탓했다면 어림없었을 이야기겠지요.

-----------------------------------------------------------------------------------------------
나에게는(‘나’라는 인칭 대명사는 원래 본지에서는 쓰지 않지만 이번 글에서는 도입해 보려 한다) 꿈이 있었다. ‘뭐 별 것도 아니구만’하고 생각할 수도 있겠지만 아파치의 커미터가 되는 것이었다. 매일 아파치의 CVS를 pserver 읽기 전용으로 접근하는 수동성을 떠나 extssh로 코드를 바로 고치는, 그래서 세상의 많은 사람들이 내가 짠 프로그램을 통해 도움을 받는 그런 꿈이 있었다. 하지만 커미터의 벽은 참 높았다. 자바를 주로 하는 나에게 아파치의 자카르타는 무척 견고한 개발 조직임을 확인해 주었다. 이제 자바 웹 개발을 한다면 누구나 익히 알 톰캣이나 스트럿츠의 커미터가 된다는 것은 그야말로 ‘장난이 아닌’ 기여를 통해 가능한 일이다. 하지만 나의 현실은 어땠던가. 일상에는 늘 해야 할 작업이 있었고, 그 작업에는 늘 기한이 있었으며, 정말이지 빠듯한 애플리케이션 개발이 이어졌다. 톰캣의 문제를 발견해도 해결할 만한 연구의 시간은 솔직히 말해 허용되지 않았다. 톰캣의 커미터가 되고 싶다는 꿈은 그렇게 점점 멀어져가고 있었다.
회사는 이윤을 추구한다. 나는 회사를 다니고 따라서 회사의 이윤추구에 헌신해야 한다. 너무도 당연한가? 쉽게 말해 회사가 시키는 일을 해야 하고, 그것이 ‘커미터되지 말기’는 아니더라도 ‘커미터되기’와는 아무런 관계도 없다. 자카르타의 높은 수준과 탄탄한 개발층에 이미 좌절한 나로서는 더 이상 미련을 가질 필요가 없었다.
지금 생각해보면 나는 너무 한꺼번에 모든 것을 얻으려고 했던 것 같다. 나름대로는 꽤 한다고 생각했으니 이 정도면 커미터를 시켜줘야 하는 것이 아니냐는…. 하지만 기여라고는 몇 번 질의응답과 간단한 패치 정도였으니 착각치고는 무척 순진하기까지 하다.

신천지

작년 여름부터 나는 XML 관련 작업을 많이 하게 되었다. 그러다 보니 자연스럽게 자바에서 XML을 편하게 다루는 방법에 대해 매달리게 되었고, 자바의 XML 데이터 바인딩 기술을 찾던 중 JaxMe라는 소스포지 내의 오픈소스 프로젝트를 발견했다. 소스 생성, 스키마 분석, DB와의 연동을 각 프레임워크로 세분화하고, 해당 분야의 자바 표준인 JAXB(Java Architecture for XML Binding)도 지원한다는 사실에 흥분한 나는 바로 다운받아 돌려보았다. 그리고 몇 가지 간단한 문제점과 해결안을 프로젝트 리더인 Jochen Wiedmann에게 이메일로 보냈는데 그것이 아파치의 커미터로 이어질 줄은 꿈에도 몰랐었다.
나중에 차차 알게 되었지만 JaxMe는 새로운 구조로 이전하며 아파치 웹 서비스 프로젝트로 옮겨지는 과정 중에 있었다. JaxMe의 매력에 흠뻑 빠진 나는 틈나는 대로 JaxMe의 소스코드를 들여다보았다. 이미 방대해진 서버인 톰캣과는 달리 JaxMe는 상대적으로 무척 단촐했다. 버그와 만났을 때 더 이상 망연자실 한탄만 할 필요가 없었다. 이클립스의 디버깅 기능과 함께 스스로 고칠 수 있었고(그리고 상호상승 작용으로 이클립스의 디버깅을 더욱 효과적으로 사용할 수 있게 되었고), Jochen과 이메일을 통해 해당 사안을 논의하면서 커뮤니케이션에도 서서히 경험과 자신이 쌓였다.
그렇게 두세 달은 보냈던 것 같다. 그 사이에 JaxMe는 아파치 웹 서비스 프로젝트의 인큐베이터에 들어갔고, 나에게는 Jochen으로부터 미션이라는 것이 떨어졌다. 이제 버그를 고치는 일이 아니라 없는 기능을 채워 넣어야하는 것이었다. 한 가지 주제에 대해 몇 차례씩 메일을 주고받으며 무엇을 구현해야 하는 지를 파악해 갔고, 아직 CVS에 커밋할 수 있는 권한이 없던 터라 패치 파일을 만들어 올렸다. 그렇게 또 몇 달이 지나고 2003년 10월 23일, 정말이지 믿기지 않는 일이 벌어졌다. 내가 드디어 아파치 커미터가 되는 관문인 선거에 오른 것이다.
투표인단은 기존 커미터인 Jochen, Robert Burrell Donkin, 그리고 아파치 웹 서비스 프로젝트 관리위원회 의장인 Davanum Srinivas(줄여서 dims라고 부른다)였다. 개표 결과는 만장일치의 승인이었고 선거 다음날인 24일에 꿈에도 그리던 아파치 커미터 임명의 공식 절차가 시작되었다. 톰캣의 커미터가 되고 싶다는 마음을 먹은 지 3년도 더 지났지만, 그 때의 감격이 아직도 느껴지는 듯하다.
지금 생각하면 웃음이 나오지만 첫 커밋에 한 3시간은 걸렸던 것 같다. ias@apache.org라는 ID로 처음 하는 커밋, 그것도 많은 사람들이 실시간으로 컴파일해 보고 실행해 볼 코드를 바꾼다는 것은 그야말로 부담의 극치였다(아무렇지도 않게 막 커밋하는 선배 커미터들이 존경스럽게 보일 정도였으니까. 사실 막 하는 것은 아니다). CVS 커밋 명령을 누르고, 도대체 코멘트를 뭐라고 달아야 할 지 수십 번도 더 고친 후 완료 버튼을 누르는 순간 정말 내가 ‘커밋’을 하는 거구나 하는 아득한 기분에 빠졌었다. 첫 키스의 망설임처럼 오랜 시간이 걸렸지만 그것이 바로 아파치하면 자카르타만 떠올리는 나에게 커미터의 기회를 열어 준 신천지, JaxMe와 함께 할 인연의 시작이었다.
------------------------------------------------------------------------------------------------