페이지

레이블이 Open Source인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Open Source인 게시물을 표시합니다. 모든 게시물 표시

2013년 10월 24일 목요일

한국 오픈소스 개발자 이야기

오픈소스에 대한 책이 하나 나왔다. 오픈소스 프로젝트에 많은 경험을 가진 한국인 개발자를 인터뷰하고, 그 내용을 책으로 엮은 것이다. 부끄럽게도 이 블로그 필자도 인터뷰 대상이 되어 책의 한 부분을 차지하게 되었다.

사실 더 많은 분들이 오픈소스 프로젝트에 기여하고 훌륭한 분들도 많다. 하지만, 다양한 분야를 다루다 보니, 인터뷰 대상이 된 것 같다. 참고로 한국인 오픈소스 기여자 명단은 KLDP wiki에서 확인할 수 있다.

이 책은 KLDP 운영자이며 구글에서 일하시는 권순선님의 아이디어로 시작되었고, 평소 여러 행사에 뵙던 송우일님이 편집했다. 책은 시중 온라인 서점에 판매되고 있지만, 무료로 내용이 공개되어 있다. 

아직 책을 받아보지 못해서 현재 공개된 부분만 읽어봤는데, 기술적인 내용이 다소 담겨져 있지만, 각자의 생생한 오픈소스 경험이 소개되어 있어서 아마 오픈소스 기여를 처음 시작하는 분들에게는 도움이 될 것 같다.

얼마전에  MBC 황금어장에 인공위성을 쏳은 분이 일반인으로 처음 나왔다고 하는데, 오픈소스 개발자도 출현할 수 있는 날이 왔으면 좋겠다. 아마 리눅스 커널 개발자인 허태준님이 나온다면 딱 좋을 것 같다. 

2013년 3월 19일 화요일

오픈소스 코드 문서화가 어려운 또는 쓸모 없는 이유

많은 개발자들이 Open Source Project에 참여하기 어렵다고 불평하는 것 중 하나가 문서화다. 방대한 코드에 버그를 수정하고 기능을 추가하는 일은 쉽지 않다. 그래서 Code에 대한 어느 정도 문서화나 안내서가 있으면 좋은데, 그런 문서를 찾기가 쉽지 않다. 있다고 하더라고 오래된 문서들이다.

왜 그럴까? WebKit Project에 참여하는 입장에서 생각해보면, 코드가 너무 빠르기 변경되기 때문에 문서화하기 어렵다고 이야기할 수 있다. 어느 정도 대략적인 문서화(요구사항 및 디자인 문서) 정도는 가능하지만, 실제 구현된 내용을 Class 수준으로 이야기하는 것은 어려운 일이다.  가능은 하지만, 글쎄, 한달 정도 지나면 Class 코드에 많은 부분이 변경되어 있을 것이다. 실제로 WebKit2의 Hardware Acceleration 코드인 Coordinated Compositing를 분석하고 문서화하려고 노력하고 있는데, 지난 몇 달간 없어진 Class도 있고 Class이름은 대부분 변경되었고, UI Process와 Web Process간의 message도 절반이상 제거되었다. 개발자들이 끓임없이 refactoring하기 때문이다. 일반 프로젝트에서는 refactoring은 잘 하지 않는다. 일단 기능이 구현되어 정상 동작하면 그만이기 때문이다. 하지만, Open Source Proejct는 다르다. 잘 동작하는 기능이라고 하더라도 좀 더 이해하기 쉬운 code를 만들기 위해서 끊임없이 Refactoring을 한다.

이런 상황에서 개발자는 code를 문서화하기 보다는 보다 이해하기 쉽고 간결한 code를 만들기 위해 노력한다. Class, variable, method이름 하나 하나가 제대로 지어졌는지 또 생각하고 의미가 명확한 이름으로 바꾸려고 노력한다.

오랜 시간을 들여 상세하게 문서화를 하려고 했던 나의 시도는 결국 실패하고 말았다. Code를 이해하고, 변경되지 않는 핵심 부분을 문서화 하는 것은 좋다. 하지만, 가장 좋은 문서화는 바로 쉬운 Code를 작성하는 것이다. 가끔 주석으로 설명된 문장들이나 그림들이 성경의 한 구절처럼 느껴질 때가 있는데, 이런 것들이 진정한 문서화 같다.

2010년 6월 5일 토요일

Qt의 열린 지배 모델



Qt의 Git Repository가 공개된지 1주년이 되었습니다. 국내에는 불과 몇 종류의 심비안(Symbian)기반의 스마트폰이 소개되었고, Maemo5를 사용한 N900단말도 출시되지 않았기 때문에, 최근 Nokia 횡보에 관심을 가져주는 매체는 많지 않습니다. 요즘은 연일 iPad, iPhone, Android에 대한 기사를 쏟아내기 바쁘죠. 최근, Nokia Maemo와 Intel Moblin이 합쳐진 MeeGo v1.0이 정식 릴리스 되었고, 조금씩 그 기세를 키워나가고 있습니다.

Android가 비록 Linux Kernel을 사용하고 플랫폼 자체는 오픈소스(Open Source)화되었지만, 사실 기존 오픈소스 커뮤니티에 큰 관심을 주지 못하고 있습니다. 근본적인 이유는 개발 중인 소스코드 저장소(repository)가 공개되어 있지 않은 점, 코드를 기여할 수 있는 프로세스가 없다는 점 복잡한 점 등을 들을 수 있지만, 플랫폼을 구성하는 주요 컴포넌트는 원래 독점 소프트웨어이기 때문에 커뮤니티 자체가 존재하지 않는 부분이 주된 이유인 것 같습니다.

그래서 GNOME, KDE, Linux Kernel 등과 같은 오픈소스 커뮤니티가 Maemo와 Moblin의 통합에 관심을 갖는 것은 자연스러운 일이였습니다. 현재, Nokia는 Qt의 개발용 저장소를 공개하므로서 개발 상황을 공유하고 있고, 외부 개발자의 patch도 받아들이고 있습니다. 앞으로 기술적 논의 뿐만 아니라 로드맵, 일정과 같이 제품에 영향을 주는 의사결정까지도 공개적으로 하겠다고 합니다.
또한, 커뮤니티가 QA 프로세스에 접근할 수 있는 권한을 준다고 합니다. 테스트 결과나 통합 빌드 보고서 등을 공유한다는 것입니다. 이에 더 나아가 의사 결정 과정에 Contributor를 참여시킬 계획을 갖고 있습니다.

이를 통해 Nokia는 더 많은 커뮤니티의 참여를 이끌어 내고, 신뢰성 있는 제품을 개발할 수 있게 됩니다. 커뮤니티의 개발 참여를 통해 다양한 아이디어도 쉽게 받아들일 수 있고, QA에 드는 비용도 절감할 수 있습니다. 이런 시도가 얼마나 큰 성공을 가져다 줄지는 사실 알 수 없으나, Intel과의 협업을 이끌어내는 등 소기의 성과도 얻었습니다. 물론, Apple, Google에 비해 모바일 플랫폼 경쟁에 뒤떨어져있는 Nokia가 취할 수 밖에 없는 전략일 수도 있지만, Nokia의 이런 행동이 실제로 오픈소스 커뮤니티의 참여를 이끌어 내는 것도 사실입니다.

Nokia는 Post Symbian 시대를 준비하기 위해 Maemo, Qt에 투자하면서 오픈소스를 전략적으로 잘 활용하고 있으며, 이런 움직임이 다른 제조사에게도 영향을 주고 있습니다. Nokia를 통해 제조사가 더 많은 것을 공개할 수록 더 많은 회사, 개발자를 우리편으로 만들고 그 바탕으로 좀 더 좋은 플랫폼, 제품을 개발하는 성공적인 모델을 기대해봅니다.

2009년 6월 7일 일요일

iPhone에 대항하는 Linux Phone의 반격

iPhone 새로운 제국이 되나?


다음주 화요일 새벽이면 3세대 iPhone에 대한 소식으로 전세계가 시끄러울 것 같습니다. 곧이어 새로운 iPhone이 출시되면, 업계에 광풍이 불겠지요.

그 동안 경쟁사들은 iPhone을 따라잡기 위해 부단히 노력했습니다. 터치 기반 폰을 출시하고, AppStore도 구축하고 UX에도 많은 신경을 썼습니다. 다행히 iPhone은 비쌌고 여전히 사용자는 일반 Feature폰을 선호했습니다.

이제 새로운 iPhone은 저가 시장에도 손을 내밀고 있습니다. 모바일 웹은 계속 성장하고 무선인터넷에 관심 없던 사용자도 twitter와 같은 서비스를 통해 진정한 모바일 웹을 체험하기 시작했습니다. iPhone은 다른 제조사와 Operator들에게 다시 악몽이 되어가고 있습니다. 현재 iPhone이 전체 handset 시장의 1%를 차지한다고 하지만, Feature Phone에서 Smart Phone으로 시장이 옮겨가는 상황에서 iPhone은 단일 모델로 PC시장 수준의 market share을 가져갈지도 모릅니다.

이러한 상황은 제조사에게 악몽인데, 특히 Smart Phone에 강했던 Nokia의 이익율이 급락한 것을 보면 어느 정도 예상할 수 있습니다. 이것은 다른 제조사 삼성, LG, Motorola에게도 다가올 시나리오일 수 있습니다.

Open Source로 무장한 경쟁사들


이제 iPhone을 주축으로 거대한 전선이 형성되어가는 분위기입니다. 마치 Microsoft가 PC 시장에서 제국의 되었던 것 처럼 Apple도 커다란 제국이 되어가고 있습니다.

그렇다면 제조사, Operator는 뭘하고 있을까요?

PC 시장을 보면 그 답을 찾을 수 있습니다. MS의 오랜 지배도 오픈소스와 리눅스로 금이 가고 이제는 누구도 MS를 두려워하지는 않는 것 같습니다. 그 만큼 시장 지배력이 떨어졌습니다.

Smart Phone 시장도 마찬가지입니다. Nokia는 Symbian이라는  Smart Phone OS와  S60이라는 Mobile Platform이 있었지만, 2005년 이후 Maemo라는 Linux Platform에 투자를 왔고, 작년에 Trolltech을 인수하여 QT를 S60, Maemo에 적용하였습니다.

다른 제조사와 Operator도 LiMo Foundation을 설립하여 GNOME Mobile Platform을 기반으로 Open Source Mobile Platform을 구축하고 있습니다. 국내에서는 삼성, LG 뿐만 아니라 SKT가 참여했고 Post 위피의 역할을 할 전망입니다.

이제 그 결실들이 나올 예정입니다. 우선  7월에 Maemo기반의 최초 Mobile Phone으로 나오게 됩니다. 그 동안 MID로 그 가치를 인정받았지만, 개발자의 장난감에 불과하다는 평판도 있었지만, 드디어 일반 사용자들의 위한 Handset으로, 출시를 앞 두고 있습니다.

LiMo 진영도 뜨겁게 움직이고 있습니다. 아직 구체적인 정보는 많지 않지만, 올해를 기점으로 많은 Linux Phone이 공개될 전망입니다.

이들의 강점은 대부분의 SW 스택이 Open Source로 구성되어, 커뮤니티와 수 많은 개발자의 지원을 받을 수 있고, 이미 개발된 많은 SW가 많다는  사실입니다. 기술적으로도 많이 발전되어 QT와 Clutter를 통해  iPhone 수준의 Graphic 능력을 확보하였습니다.

특히,  Nokia는  Intel과 협력을 통해 주요 주요 컴포넌트(Hildon, oFono)를 공동개발하여, 부족한 기술 확보에 나서고 있습니다. 이런 과실은 두 회사 뿐만 아니라 전체 오픈소스 진영에도 큰 도움이 되고 있습니다.

Linux Phone, 사용자의 환영을 받을까?


문제는 사용자입니다. 과연 사용자가 얼마나 리눅스 폰을 선호할까요? 리눅스/오픈소스는 사용자에게 중요한 부분이 아닙니다. 그들은 좀 더 싸고 멋진 폰을 원할 뿐입니다. 물론 게임 처럼 재밌는 어플도 많이 있어야겠지요.

이를 위해서는 제조사와 Operator의 많은 투자가 필요합니다. 단지 오픈소스의 과실을 따먹는 것이 아니라, 오픈소스의 기술적 혁신을 지원하고 커뮤니티 양성에 도움을 줘야 합니다. 또한, 상품화를 통해 모난 부분을 다듬고 사용자 편리성을 높여야 하며, 개발 과정 공개를 통해  커뮤니티의 참여를 이끌어 내어,  진정한 가치의 Linux Phone을 만들어야 합니다.

Open Source, 지원이 아닌 생존의 문제


이제 오픈소스는 지원아닌 생존의 문제가 되어버렸습니다. 단순히 활용을 떠나 커뮤니티와 밀접하게 혁신하지 못하면 iPhone과의 경쟁은 더더욱 힘들어질 것입니다.

7월 이후 Linux Phone의 반격을 조용히 지켜봐야겠습니다. 그리고 GNOME Mobile Platform 공부도 게을리 해서는 안되겠습니다. :-)