Mozilla 소스 코드 개발 과정

Mozilla 프로젝트는 70여개의 모듈을 가진 거대한 오픈 소스 플랫폼이다. 그동안 Mozilla 커뮤니티에 참여하면서 보고 들은 몇 가지 개발 프로세스에 대해 정리해 보았다.

소스 콘트롤 이용
Mozilla 프로젝트는 CVS를 사용하다가 Firefox 3.1 코드 베이스 부터 분산형 소스콘트롤인 머큐리얼(Mercurial, hg.mozilla.org)로 갈아 탔다. 그 이전 버전은 그대로 CVS를 사용하고 (mxr.mozilla.org) 웹 서비스인 경우 SubVersion을 사용(svn.mozilla.org)하고 있어서 사용 용도에 따라 세 개의  SCM이 돌아가고 있다.

CVS를 사용할 때는 LXR+Bonsai를 통해 커밋을 관리했는데 Mercurial로 바뀐 새 코드 베이스는 더욱 간편한 인터페이스로 커밋 로그를 찾거나 볼 수 있다.

소스 코드 패치 및 리뷰 과정
버그질라(bugzilla.mozilla.org)는 Mozilla에서 만들고 사용하는 웹 기반의 버그 추적 시스템이다. 제품에 특정 문제가 발생했을 때 사용자는 언제라도 버그를 제출할 수 있다. 버그가 제출되면 번호가 발급되고 문제를 해결해야 하는 사람에게 전달된다.

문제 해결을 위해 코드상의 문제 해결 방법을 알고 있으면 패치를 첨부할 수 있다. 패치가 첨부되면 리뷰 요청(?), 체크인 허가 (+), 체크인 금지(-) 등의 방법으로 리뷰와 수퍼 리뷰를 거칠 수 있다.

각 모듈의 소스 코드 수정에는 대개 두 단계의 코드 리뷰 규칙을 따른다. 먼저 수정된 패치나 소스가 버그질라를 통해 제출되었을 때, 각 모듈의 소유자가 먼저 분석을 한다.

 이 과정에서 허가가 나면 모질라 프로젝트를 움직이는 사람들로부터 슈퍼 리뷰(Super Review)라고 하는 단계를 거친다. 양쪽 모두의 리뷰를 받으면 대부분의 코드는 소스 트리에 커밋(Commit) 된다.

많은 커밋이 수행되기 때문에 코드 수정에 따라 어플리케이션이 동작하지 않거나 컴파일 되지 못하는 상황에 도달할 수 있다. 만일 소스 트리에 문제가 생겼을 경우, 커밋은 중단되고 문제 해결 단계로 넘기는 규칙을 가지고 있다.

슈퍼 리뷰를 하는 사람들은 지금까지 참여 과정에서 그 코딩 기술의 우수성이 잘 검증된 ‘중요 해커’이며, 이들은 모듈 소유주가 모듈에 특정한 사항을 중점적으로 검토한 후에 혹시 놓쳤을 수도 있는 문제점을 검토해 준다.

개발 로드맵에 따라 알파와 베타 단계를 거친 후 제품으로 출시해야 할 때, 출시 후보(Release Candidate) 단계에서는 최상위 드라이버(Driver)라고 불리는 프로젝트 관리자들의 승인을 받아야만 소스 코드를 고칠 수 있다. 이 때 소스를 고칠 때는 패치가 고치는 버그의 심각성, 영향을 받는 사용자 및 플랫폼, 복구 가능성 등을 잘 설명해서 드라이버를 설득해야 한다.

 또한, 드라이버들은 소스 코드가 목표로 한 개발 로드맵에 따라 제대로 준비되었는지 소스의 상태를 점검하고 일정을 만드는 작업까지 하고 있다.

소스 코드 공헌자들의 면모
모질라 프로젝트에 소스 코드 체크인 권한이 있는 개발자의 수는 대략 약 800명 정도 된다. 이중 프로젝트 초기인 1998년부터 2003년 까지 한번이라도 체크인을 한 개발자가 651명이었고 Mozilla Firefox 프로젝트가 출발한 2004년 이후 현재까지 450여명 정도가 체크인을 하였다.

풀타임 개발자뿐만 아니라 약 3배 정도의 외부 개발 커뮤니티가 존재한다. (특히 지역화(Localization)를 위해 일하는 100여명의 자원 봉사자들이 50개 정도의 다국어 버전 개발에 동참하고 있다.)  

프로젝트 전체에 버그를 보고해 주는 버그질라 계정은 2004년 60,000개에서 현재 80,000개 정도로 늘어났다. 이들은 프로그램 사용 중 문제가 되는 각종 버그를 보고해 주고 있다.

특히, 제출자들이 보낸 많은 버그들 중 중복을 필터링 해주는 역할을 해주는 Triage 공헌자들이 있는데, 이들의 작업으로 어떤 문제가 제일 많이 보고 되는지 파악할 수 있다. 이들은 수시로 등록 버그를 살펴 이전에 해결 또는 미해결 상태인 버그와 비교해 중복 여부를 판단해 등록해 준다.

버그질라에 등록된 버그 특성 분포를 보면 중복(Duplicated) 및 해결(Fixed) 버그가 비슷한 양상을 보이고 있다. 이는 신규로 등록되는 대부분의 버그가 해결되거나 중복 처리 되고 있다는 것이다.

특히 완전 해결된 버그(Resolved)는 2003년을 기점으로 대거 늘어나고 있는데, 이는 Mozilla에서 직접 고용한 풀타임 개발자들이의 역할이 대거 확대되고 있음을 뜻한다.

최근까지 버그질라에는 대략 50만개의 버그가 등록되어 있는데 이 중 70%정도는 해결되었고 20%는 중복 버그로 등록되었고 현재 10% 정도가 신규 혹은 미해결 상태로 남아 있어 공개 S/W 커뮤니티에서도 안정적인 버그 처리가 가능함을 보여 준다.

- ;

Disclaimer- 본 글은 개인적인 의견일 뿐 제가 재직했거나 하고 있는 기업의 공식 입장을 대변하거나 그 의견을 반영하는 것이 아닙니다. 사실 확인 및 개인 투자의 판단에 대해서는 독자 개인의 책임에 있으며, 상업적 활용 및 뉴스 매체의 인용 역시 금지함을 양해해 주시기 바랍니다. 본 채널은 광고를 비롯 어떠한 수익도 창출하지 않습니다. (The opinions expressed here are my own and do not necessarily represent those of current or past employers. Please note that you are solely responsible for your judgment on checking facts for your investments and prohibit your citations as commercial content or news sources. This channel does not monetize via any advertising.)