오픈소스 프로젝트는 이제 더 이상 취미생활로 하던 수준이 아니고 기업에서 목적을 가지고 운영하는 것이 대세입니다.

하지만 기업의 입장에서 보면 오픈소스 커뮤니티의 관리가 생소하고 이 때문에 프로젝트 수행 조직은 오픈소스 커뮤니티의 구축 및 성장을 어떻게 관리해야 하는지 경험이 부족해서 어려움이 많은 현실입니다.

얼마전 공개소프트웨어 연구개발 프로젝트의 관리에 대한 강의를 할 일이 있어서 강의 자료를 작성했는데 그 내용중 오픈소스 커뮤니티의 운영에서 생각해볼 만한 점을 공유합니다.

 

프로젝트의 메인테이너의 필요한 활동

• 프로세스 문서화 - 사용자, 기여자, 개발자를 위한 최신의 문서를 제공

• 공평하게 작성되고 집행되는 규칙 준비 – 프로젝트의 유지관리 상태를 투명하게 공유

• 커뮤니케이션 공개 – 가능한 모든 커뮤니케이션을 공개

• 멘토링 수용 – 품질이 낮은 기여를 제출하는 경우 인내심을 가지고 기여할 수 있도록 지원

• 커뮤니티의 기여자 활용 – 공개적으로 필요한 요청을 제시하고 반복적인 기여자에게 더 많은 책임을 부여

• 다른 사람이 필요한 솔루션 구축을 지원 (API)

• 자동화 도구를 적극 활용 – 모든 제출에 대해 최소 품질 표준을 설정하고 코드 품질 향상을 위한 테스트를 자동화

 

오픈소스 커뮤니티 매니저의 필요한 활동

• 커뮤니케이션이 공개되고 접근 가능한 경우 누구나 과거의 게시물을 읽고 참여 가능한 장소 제공 (커뮤니티 사이트, 포럼, 메일링리스트)

• 개인적인 대화를 공개 채널로 안내해서 전환하도록 유도

• 커뮤니티의 이슈에 대한 빠른 대응 - 48시간 내에 코드 검토를 받은 기여자들은 매우 높은 충성도(모질라 재단 연구)

• 인터넷 상의 다른 곳(Stack Overflow, Twitter, Reddit, Google)에서 프로젝트가 언급될 수 있기 때문에 알림을 받을 수 있도록 설정

• 공개 커뮤니케이션에 대한 보안 문제, 민감한 행동 규범 위반 등의 예외적 상황을 커뮤니티 구성원이 개인적으로 보고할 수 있는 방법 제공

• 행동 규범을 준비하여 나쁜 영향을 미치는 커뮤니티 구성원을 최소화 – 문제가 지속되면 떠나도록 요청해야 할 수 도 있음.

• 커뮤니티 내부에서 기여자를 발굴하기

• CONTRIBUTING.md 파일에서 새 기여자에게 시작하는 방법을 제시

• 기여자를 환경하는 특별한 페이지 준비

• 이슈에 다양한 유형의 제공자에서 적합한 레이블 사용 – good first issue, help wanted

• 친절한 문서를 사용해서 사람들이 모든 단계에서 환영 받는 느낌을 받도록 제공

• 커뮤니티와 최대한 소유권을 공유할 수 있는 방법을 준비 - 사람들은 소유권을 느낄 때 기쁘게 기여합니다.

• 갈등 해결 – 커뮤니케이션에 대한 기준을 설정해서 구성원간 강한 의견이 있는 경우 참여하기 보다는 중재자의 입장을 취할 것

• 투표를 통한 주요 결정을 내리기 보다는 대화를 듣고 토론을 먼저 하기 - 답변 보다는 과정에 집중하는 것이 커뮤니티를 건강하게 만듭니다.

• 커뮤니티 구성원들이 충분히 들을 수 있을 때까지 주요 관심사에 대해 논의합니다.

• 조용한 커뮤니티 사용자를 고려하는 것을 잊지 않아야 합니다.

• 커뮤니티에서 행동의 우선 순위를 식별 – 순위 결정은 최후의 수단으로 사용해야 함, 이 때는 GOVERNANCE 파일에서 순위 결정 및 관련 프로세스를 식별 한 후에 사용

• 커뮤니티 거버넌스 모델은 프로젝트 참여자가 수행할 수 있는 역할과 프로젝트 내 의사결정 프로세스를 설명하고 프로젝트 참여 및 프로젝트 팀 및 커뮤니티 내 의사소통 및 공유 프로세스에 대한 기본규칙을 설명. 

 

오픈소스 프로젝트 관리자의 커뮤니티 관리에 필요한 활동

• 사용자들이 우리 프로젝트를 잘 찾을 수 있는가? 

• 총 페이지 조회수 : 프로젝트를 조회 한 횟수를 알려 줍니다

• 총 순 방문자수 : 얼마나 많은 사람들이 프로젝트를 보았는지 알려줍니다

• 추천 사이트 : 방문자가 어디에서 왔는지 알려줍니 다. 이 측정 항목은 잠재 고객에게 도달 할 수 있는 위치와 프로모션 노력이 효과가 있는지 파악하는 데 도움이 됩니다.

• 인기있는 콘텐츠 : 방문자가 프로젝트에서 방문한 위치를 페이지 뷰와 순 방문자수로 나눕니다.

• 기여자 당 총 기여 수 및 커밋 수  - 기여자 수와 활동중인 사람 수를 알려줍니다. 

• 처음 기여자, 일시적이거나 반복적인 기여자 - 새로운 기여자를 받고 있는지 여부와 그들이 다시 왔는지 여부를 추적 할 수 있습니다. 새로운 기여자가 없으면 프로젝트 커뮤니티가 정체 될 수 있습니다. 

• 이슈 및 요청 수 - 이 수치가 너무 높으면 문제 심사 및 코드 검토에 도움이 필요할 수 있습니다. 

• 컨트리뷰션 유형 : 예를 들어 커밋, 오타 또는 버그 수정 또는 문제에 대한 의견

• 미해결 이슈 및 풀리퀘스트 요청 수 - 누군가 프로젝트를 이슈를 관리해야 한다는 것을 의미합니다. 시간이 지남에 따라 그 수가 증가하면 사람들이 프로젝트에 관심이 있음을 나타냅니다. 

• 이슈 또는 풀 요청이든 관계없이 기여자 (또는 다른 관리자)가 기여에 응답하는 데 걸리는 시간을 추적

 

아래 화면은 오픈소스 프로젝트 하모니카의 모니터링 시스템입니다.

강의자료

https://www.slideshare.net/chaeya/ss-183109697

개방형 OS의 정의

윈도우 XP의 기술지원 종료 시점에 IT 업계에서 대체 가능한 OS를 찾아야 한다고 한참 시끄러웠는데 내년 1월 윈도우 7의 기술지원이 종료되는 시점이 다가오면서 또 한번 이슈가 되고 있습니다.

윈도우, MacOS, 티맥스OS 처럼 개발업체에서 OS를 완전히 소유하고 있는 형태를 폐쇄형 OS라고 할 수 있는데 이 경우는 제조사의 기술지원이 종료되는 시점에 매번 윈도우 기술지원 종료와 같은 사태가 벌어지게 될 수 밖에 없습니다. 이 때문에 각 국가들은 특정 기업에 종속되지 않는 독자적인 운영체제를 개발하고자 많은 노력을 기울이고 있지만 운영체제 개발은 많은 예산을 투입하고 오랫동안 지속해야 하는 기술이므로 쉽지 않은 분야입니다.

개방형 OS란 누구든지 소스를 받아 자유롭게 수정 및 배포가 가능한 운영체제를 의미합니다. 때문에 많은 나라들이 독자적인 기술개발 보다는 개방형 OS를 개발하는 방식을 선택하고 있는데 OS의 모든 부분을 독자적으로 개발하는 것이 아니라 오픈소스로 공개된 영역들은 재사용하고 자신의 환경에 적합한 기술들은 개발하여 각 국가에 적합한 개방형 OS를 제작하고 있습니다.

국가별 개방형 OS 배포 현황

개방형 OS는 국가가 주도하고 있는 배포판들 이외에도 글로벌 커뮤니티에서 주도하는 다양한 종류의 배포판이 존재하는데 http://distrowatch.com 에 방문하면 현재 인기있는 다양한 개방형 OS 관련 정보를 확인할 수 있습니다.  또한 distrowatch 는 수백개의 리눅스 배포판에 대한 최신정보를 제공하고 있으며 다양한 조건으로 검색을 제공하므로 원하는 개방형 OS를 검색하기에 용이합니다.

distrowatch.com 검색화면

개방형 OS는 단일 기업에서 제조되는 OS와 다르게 운영체제를 구성하는 기술 레이어별로 각각 다른 지배구조를 가지고 있기 때문에 응용프로그램 자체의 기술 개발보다는 각기 다른 지배구조를 가진 커뮤니티의 배포 요구사항을 식별하고 관리하는 활동이 중요합니다.

개방형 데스크톱 OS 의 지배구조

윈도우나 맥의 경우에는 데스크톱을 사용하는 환경이 제조사에서 결정한 그대로 고정되어 배포되지만, 개방형 OS는 사용자가 원하는 데스크톱 환경(Gnome, KDE, Cinamon, MATe, Unity 등)을 다양하게 선택할 수 있습니다. 개방형 OS는 사용자에게 원하는 방식을 선택할 수 있는 자유로움을 제공하는것을 기본으로 하고 있기에 윈도우나 맥을 계속 사용해온 처음 사용자들은 기존의 환경과 다른 데스크톱 환경에 혼란스러움을 느낄수도 있습니다.

하지만 개방형 OS는 보안 위협이 발생하면 장시간 걸리는 제조사의 업데이트를 기다리지 않아도 전 세계 개발자들에 의해서 패치가 신속하게 이루어지고 있으며, 최신 기술을 선도하며 사용자에게 좋은 프로그램을 꾸준히 제공하여 현재 전 세계의 많은 사람들이 개방형 OS를 사용하고 있는 상황입니다.

https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions

다양한 개방형 OS 의 비교

현재 국내에서 사용가능한 개방형 OS는 글로벌 커뮤니티에서 제공되는 배포판과 하모니카 OS가 있습니다. 우분투, 페도라 같은 배포판을 직접 다운로드 받아서 커뮤니티에 지원을 받으면서 사용하는 방법도 있지만 국내 기업이 기술지원을 하고 있는 하모니카 OS의 경우 2016년부터 국내 공공기관 및 학교, 병무청, 경찰청 등에서 사용하고 있으며 하모니카 사용자를 위한 한국어 커뮤니티 하모니카(https://hamonikr.org/)에서 사용시 궁금한 점을 함께 이야기 하고 있습니다.

하모니카 OS 프로젝트의 구성

정부 주도로 시작한 프로젝트가 종료되어 장시간 정체되어 있던 하모니카는 인베슘이 주도하여 2018년 하모니카 ME 버전을 출시하였으며, 현재 인베슘(https://www.invesume.com/)에서 하모니카 OS의 기술지원을 제공하고, 개방형 OS의 이용환경을 개선하기 위해서 지속적으로 노력하고 있습니다. 

 

참고. 개방형 데스크톱 OS 동향 : https://www.slideshare.net/chaeya/os-139524487

'오픈소스SW' 카테고리의 다른 글

오픈소스 OS 가 윈도우보다 보안에 취약하다? 진짜?  (0) 2020.03.14
무료 데스크톱 OS들  (1) 2019.04.18
오픈소스 커뮤니티 구축  (0) 2018.05.12
오픈소스와 특허  (0) 2017.07.10
공개SW R&D 추진전략  (0) 2017.03.22

+ Recent posts