이글은 트위터 국내 유일 개발자 이희승에게 오픈소스프로젝트 활동하는법 배우기에 참여한 하루동안에 기록을 남긴 글로서 발표내용을 공유하려는 목적이 아닌 모임을 통해 보고 느낀것 , 개인적으로 인상 깊었던 내용을 정리하고 하루동안 있었던 일을 리뷰하는 목적으로 작성되었다.
혹여나 이글을 통해서 발표의 전체내용을 알고 싶다고 한다면 이 글이 큰도움이 되지 않을수도 있다는 것을 먼저 밝힌다. (단 Q&A 에 나온내용은 비교적(?) 자세히 적어 놓았다)
한동안 주말에 시간이 나지 않아 세미나
나 스터디모임
등에 참석하지 못하였는데 때마침 여유가 생기게 되어 참석할 만한 세미나를 찾던중 onoffmix
에서 발견한 트위터 국내 유일 개발자 이희승에게 오픈소스프로젝트 활동하는법 배우기 라는 재미있는 주제의 모임을 발견!! 평소 오픈소스 프로젝트에 관심도 많았고 개인 프로젝트로 진행하는 것도 있고 한 터라 1초의 고민도 없이 참가 신청과 동시에 참가비 입금까지 완료 하였다.
택시를 타고 모임장소인 홍대입구역 2번출구로 향하던길에 홍대근처에 사무실이 있으신 평소 트위터와 ajaxian.kr yammer group 을 통해 알고 지내고 있던 김개발님과 연락을 하게 되었다. 모임에도 함께 참여하시기에 모임에 동행하기로 하고 남는 시간을 빌어 사무실로 놀러가게 되었다.
그리 크지도 작지도 않은 사무실의 인테리어는 마치 카페를 연상시키는 분위기 였고 넓은 공간을 차지하고 있는 탁구대가 참 인상이 였다.
잠시 사무실을 둘러보고 평소 움직이지 않은 몸뚱이를 굴려가며 21점 내기 탁구 한게임! 듀스까지 가는 우여곡절 끝에 22대 승리 한것은 자랑!!
시간이 좀 많이 남은 관계로 탁구도 치고 이런저런 얘기를 나누며 시간을 보내고 모임장소인 토즈 홍대점
점으로 향하 였다.
발표자 이희승님은 netty 프로젝트 와 Apache MINA 프로젝트 설립자로서 현재 full time open source 개발자로서 twitter 소속으로 일을 하고 계시며
Open Source
개발자의 롤모델로서 0순위로 꼽히고 있다.
모임 장소에 도착하니 거의 시작이 임박한 상황이였다. Outsider 는 이미 도착하여 자리를 잡고 앉아 있었다. 가볍게 인사를 나누고 부랴부랴 자리를 잡고 앉으니 멘토링이 시작 되었다.
온라인 기사나 트위터등으로만 접하고 실제로는 이희승 님을 처음 보았다. 짧게 자른(거의 삭발에 가까운듯한) 머리와 수수한 차림이 너드의 향기가 물씬 느낄수 있는 분위기 였다.
어째든 멘토링은 시작 되었고 특유의 조용 조용하고 차분한 목소리로 오픈소스 개발에 대한 이런저런 이야기를 들려 주셨다.
발표 자체는 임펙트가 있다거나 카리스마가 넘치는 그런 발표는 아니였지만 그 내용만은 머리에 쉽게 이해되고 쏙쏙 박히는 발표였다.
발표내용은 이후에 소개 할테지만
이렇게 6가지 큰 섹션으로 진행 되었으며 특이하게 온라인, 오프라인에서 참여하여 이희승님의 발표를 들었다.
보통 성공한 발표는 잘 정리되고 먹고 좋게 차려진 한정식 같은 느낌이라면?
이희승님의 발표는 조촐해 보이지만 자식을 위해 차려진 어머니 밥상
같은 느낌이랄까?? 화려함도 획기적인 내용도 아니였지만 머리에 쏙쏙 들어오면서 듣는과 동시에 이해가 되어지는 그런 발표였다.
모임이 다 끝나고 뒷풀이 격인 행사가 있었지만 이미 @GeekDani 와의 선약이 있었기에 참석하지는 않았다. (이분들과 함께 한시간 또한 뒷풀이에 참석하는 것보다 더 유쾌하고 즐거운 시간이였다.)
온라인,오프라인으로 동시에 진행 되어 중간중간 온라인 참석자들을 위해 마이크를 교체한다거나 하는 예기치 않은 브레이크 타임이 좀 자주 있었던 점과 혹시나 발표에 방해가 될가 싶어 발표하시는 모습을 사진으로 남기지 못한 점은 조금 아쉬운 부분으로 남는다.
지금부터 나오는 내용은 모임 참석에서 보고 들은 내용을 나름 정리한 것이다. 발표 섹션과 1:1 매칭되는 글이 아닌 관계로 자세한 발표자료가 필요한경우 모임 주최측에서 공개하는 발표자료를 보기 바란다.(공개되었는지는 확인해 보지 않았다.)
발표하신 내용과 질의응답을 통해 거듭 말하신 내용에는 오픈소스 프로젝트에 참여 한다는 것에 너무 어렵게 다가설 필요가 없다는 내용이 많이 담겨져 있었다.
이번 발표를 들으며 정리해본 오픈소스 프로젝트에 참여하는 방법은 아래와 같은 일들을 포함하고 있다.
이러한 활동 모두가 오픈소스 프로젝트에 참여 하는 것이다. 즉 스스로 코드레벨을 다루지 않더라도 오픈소스 프로젝트 발전을 위해 하는 모든 활동자체가 오픈소스 프로젝트에 참여하는 것이다.
물론 개발자의 바램은 직접 코드레벨을 다루는 'Committer' 혹은 pull request
등을 통해 오픈소스 프로젝트에 Contributing
하는 것을 꿈꾸고 있을 것이다.
하지만 이런 생각을 가진 사람들중 대부분은 생각을 행동으로 옮기지 못한다. 그 이유는 단순하다. 걷기도 전에 달리려고 한다는 것이다.
접근 방법을 달리 한다면 차근차근 한발 한발 오픈소스 프로젝트의 기여자로 혹은 개발자로 발전해 나갈수 있다. 또한 직접적인 참여가 아니더라도 오픈소스 프로젝트 자체에 간접적인 참여를 통하여 얻을수 있는 좋은 것들도 많이 있다.
이처럼 다양한 방면으로 오픈소스 프로젝트에 참여하면서 한걸음 한걸음 단계성장을 하는 과정을 거듭하면 본인의 가치와 실력, 통찰력을 높혀주는 일이 될것이니 본인의 패치가 적용되지 않았다고 해서 실망하지 말 것을 당부 하셨다.
이날 진행된 발표에서는 재미있는 내용이 있었다. 바로오픈 소스 프로젝트에 참여하고자 할때 주의해야할 점과 오픈소스 프로젝트 개설자에게 차단 당하지 않는법(이부분에서 빵터졌다.)이다.
이부분은 참 재미있다. 특히 공식 채널을 이용해서 요청하라는 말을 거둡 강조하셨다. 이는 개발자에게 차단당하지 않는 가장 좋은 방법이라고 하셨다.
버그 리포트나 패치 요청이 공식채널이 아닌 개인 메일이나 IRC 를 통해 이루어 지는 경우가 있는데 이는 해당 이슈의 히스토리를 남길수도 없게 되며 결국 공식체널을 통해 등록하라는 답변
을 듣게 될것이며 동일한 문제를 겪고 있는 사용자들이 참고할만한 레퍼런스를 만들어 낼수도 없는 문제가 있기 때문에 반드시 공식 채널을 통한 요청을 해야한다고 말씀하셨다.
심지어 본인이야기는 아니지만 개인전화로 연락하는 경우도 더러 있다고 하셨다.
그리고 또하나 재촉하지 말라는 말을 하셨다.
버그 리포트를 예로 개인이 볼때는 하나의 버그 리포트 이지만 개발자는 이런 버그 리포트를 수많은 사람에게서 받기 때문에 프로젝트 로드맵에 따라 우선순위를 결정하고 처리를 하게 된다.
개인에게 급한 일이지만 개발자에게는 대수롭지 않은일 혹은 후에 처리해도 될만한 일이 될수도 있기 때문이다.
그렇게 계속 재촉하는 경우 intanal
패치를 하면 될것이다라는 답변을 받는게 전부가 될 수도 있다고 하셨다.
동일한 요청 확인은 매우 중요한 부분이다. 특히 같은 내용이 여러개 등록되는 것보다 하나의 이슈에서 vote
나 watch
와 같은 기능의 카운트가 높은 경우 로드맵 설정에서 높은 우선순위를 부여 받을 수 있다는 것을 말씀 하셨다.
동일한 내용외에 추가적인 사항이 있다면 그부분만 이슈에 추가 하여 비슷한 이슈가 한곳에서 확인 가능하도록 하는 것도 중요한 일이라고 말씀해 주셨다.
이슈 혹은 패치를 요청 할 경우 해당 기능이 왜 필요한지 혹은 어떤 상황에서 발생한 이슈인지를 기술해 주어야 하며
특히 버그 리포트의 경우는 해당 버그가 발생한 환경 연관되어 사용되어진 dependency 라이브러리등과 같은 정확한 현 상황을 파악할수 있는 내용이 포함되어지지 않을경우 개발자가 이를 트레킹 하는것은 불가능에 가까울수도 있기에 주의해야한다고 하셨다.
버그 리포팅에 포함되어야 할 내용들
패치를 요청할 경우는 개발자 가이드 를 숙지하라는 말도 잊지 않으셨다.
기업, 개인 등이 오픈소스 프로젝트를 시작할때 생각해봐야 할 것들을 자세히 설명해 주셨다. 발표내용을 정리해 보면 오픈소스 프로젝트는 신뢰의 문제이며 의지의 문제로 정리 할수 있을 것 같다.
예를 들어 한 기업이 오픈소스 프로젝트를 계획한다고 했을때 과연 이들은 오픈소스 소프트웨어를 개발하려는 것일가?
이것은 매우 중요한 일이다. 오픈소스 프로젝트의 최종 목적은 해당 프로젝트가 언제까지 지속가능할 것인가를 결정한다.
기업과 개인이 이익을 넘어설 수 있는가?
기업의 오픈 소스 프로젝트는 대부분 그로 인한 수익사업을 먼저 예상하고 시작하는 경우가 많다. 이때 예상했던 수익이 나지 않는 경우 해당 프로젝트가 없어져 버리는 일도 생긴다.
이것은 오픈소스를 가장한 수익사업일 뿐이다. 물론 오픈소스 프로젝트를 하면서 부가적으로 수익이 생길 수도 있다. 하지만 그것이 최종목표여서는 안된다는 말이다.
다음은 신뢰할 수 있고 지속 가능한 OSS가 되거나 그런 프로젝트를 선택할때 고려사항들이다.
특히 기업에서 OSS 프로젝트를 진행한다면 반드시 그 구성원은 OSS 에 의지와 관심을 가지고 있고 뜻이 맞는 사람들고 구성되어야 한다고 했다. 이는 실력을 떠나 커뮤니티 혹은 패치,버그 리포트 로 쏟아지는 각종 이슈들을 처리할 우선순위가 이에 관심이 없는 사람에게는 나중에 하지 뭐?
가 되어버린다.
마지막 섹션이였던 Q&A에서 나온 질문과 답을 간략하게 정리해 보았다.
Q . 커미터가 되기까지 걸린 시간은 얼마나 걸리는것 같은지? 커미터 까지 시간을 단축하는 방법이 있을가?
Q. 개발자 가이드는 누가 만드는건지?
Q. 학생들의 경우 관심있는 프로젝트가 있어도 이미 대형화되어 버려 쉽게 다가서지 못하는 거 같은데 쉽게 프로젝트에 다가설수 있는 방법이 있는지??
Q. framework 만들면서 가장 중요하다고 생각하는 것은 무엇인가?
Q. 대형화된 프로젝트에서 커뮤니티 채널과 개발자가 바라는 기능등을 정리하는데 시간 분배를 어떻게 하는지
Q. Branch 관리는 어떻게 하시는지
Q. 프로젝트에 오픈소스가 적용되었을때 해당 라이센스에 대한 표기는 어떻게 하는가
Q. 오픈소스활동이 트위터 취업에 도움이 되었는지?
Q. 국내의 오픈소스 활동이 활성화 되기 위해서는 어떤 점이 바뀌어야 한다고 생각하는지?
Q. internal technology 오픈에 폐쇄적인 기업들이 open source 전향할때 고려할 점
Q. 오픈소스 활동을 하면서 만나본 한국인 개발자에 대한 느낌과 이들이 사용하는 영어 실력은 어떠한가?
Q. 외국회사에서 리쿠리팅을 할때 어떤점을 고려하는 것 같은가?
주위에 OSS 에 직접 참여하고 계신분 혹은 Contributing 을 하고계신분들이 참 많다. 본인도 그닥 내새울만한 것은 아니지만 작은 개인 프로젝트를 진행중이기도 하여 이번 멘토링 모임에 큰 기대를 가지고 있었고 참여했다는 것을 참 잘했다고 생각하고 돌아왔다.
어찌보면 우리는 오픈소스 프로젝트는 너무 거창하고 대단한 것이고 이것에 참여하는 일은 엄청난 실력자 혹은 특별한 사람들이라는 장벽을 스스로 만들고 있는지도 모른다.
이번 멘토링에서 이희승님이 말씀 하시고자 하는 내용도 별것 아니니 너무 겁먹지말고 일단 시작해보라
가 아닐가?
마지막으로 본인이 하고 있는 프로젝트에 관심이 있거나 혹은 이런게 있으면 좋겠다 하는 것을 패치해주시거나 혹은 이슈로 등록해주시라는 홍보를 남기며 글을 마친다.