본문 바로가기

오픈소스SW

오픈소스SW 커뮤니티

오픈소스 SW 프로젝트 커뮤니티의 개념 및 개요

  • 성공적인 OSS 프로젝트에는 폭넓은 사람들이 참여하는 커뮤니티가 형성되어 있음.
  • OSS 커뮤니티는 다양한 역할, 능력, 참여 정도, 책임감을 가진 구성원으로 조직됨.
    • 주요 구조와 요소, 특성을 포함.

 

오픈소스 SW 프로젝트의 이해당사자들

양파 모델 (Onion Model)

오픈소스 소프트웨어 프로젝트는 주로 애드혹 형태로 구성되며, 대부분의 커뮤니티는 '양파 모델'을 따른다. 이 모델에서는 프로젝트 개발 팀이 중심부에 위치하며 다음과 같은 구조를 가진다:

  • 핵심 개발자 (Core Developers): 프로젝트의 관리와 리더십을 담당하며, 모든 중요한 의사 결정을 주도한다.
  • 역할 상승의 프로모션 전략: 커뮤니티 내에서 역할을 맡은 사람들의 책임과 역할이 세분화되어, 엄격한 계층적 조직처럼 보일 수 있으나, OSS 커뮤니티에서는 이를 분업의 확장으로 인식한다.

커뮤니티 구성

OSS 프로젝트 커뮤니티는 다음과 같이 구성된다:

  • 코어 멤버 (Core Members): 프로젝트의 핵심 멤버로서 주요 전략적 의사 결정 권한을 가진다.
  • 액티브 멤버 (Active Members): 프로젝트의 주요 활동 멤버로서 정기적으로 프로젝트에 기여하며 버그 수정, 기능 개발 등을 담당한다.
  • 페리페럴 멤버 (Peripheral Members): 프로젝트에 주변적으로 참여하는 멤버로서, 때때로 기여하며 커뮤니티의 일원으로서 프로젝트의 일부 역할을 수행한다.

코어 멤버 (Core Members)

  • 프로젝트 소유자 (Project Owner):
    • 프로젝트는 주로 소유자의 아이디어에서 시작되며, 이들이 OSS 프로젝트의 비전을 확립한다.
    • 프로젝트의 기술적 및 비기술적 방향에 대한 의사결정을 수행한다.
    • 라이선스 체계를 관리하고, 프로젝트의 지속 가능한 비즈니스 모델을 수립한다.
    • 프로젝트에 대한 대부분의 역할과 책임을 담당한다.
  • 코어 개발자 (Core Developers):
    • 주요 전략적 의사 결정 권한을 가지며, 프로젝트 결과물에 대한 책임을 진다.
    • 프로젝트 진행에 따라 수가 변할 수 있으며, 코드 승인 권한을 가진다.
    • 각종 위원회를 구성하여 프로젝트의 기능 결정 등을 담당한다.

액티브 멤버 (Active Members)

  • 액티브 개발자 (Active Developers):
    • 정기적으로 버그를 수정하고 새 기능을 개발한다.
    • 프로젝트의 아키텍처와 소스코드에 대한 폭넓은 이해가 필요하다.
  • 버그 수정자 (Bug Fixers):
    • 보고된 버그를 수정하며, 프로젝트의 소스 코드 이해가 필요하다.
    • 특별한 권한은 없지만, 액티브 개발자에게 패치를 제출할 수 있다.

페리페럴 멤버 (Peripheral Members)

  • 페리페럴 개발자 (Peripheral Developers):
    • 프로젝트에 산발적으로 참여하며, 때때로 중요하지 않은 버그 수정이나 새 기능을 개발하여 기여한다.
  • 버그 및 문제 보고자 (Bug and Problem Reporters):
    • 버그나 문제점을 확인하고 보고한다.
  • 코드 리더 (Code Readers):
    • OSS의 사용자로서 소스코드에 관심을 가지고 이를 학습하며, 검토와 논평을 수행할 수 있다.
  • 액티브 유저 (Active Users):
    • OSS 프로젝트 관련 포럼에 참여하며, 버그 보고자 역할을 수행하고 요구사항 도출 및 테스팅에 참여한다.
  • 제휴 단체나 기업 (Affiliated Organizations or Businesses):
    • 재정적 후원, 비즈니스 개발, 프로모션 등의 다양한 지원을 제공한다.

 

리더십 모델

  • 군주제 (Monarchical): 한 명 또는 소수의 리더가 중심이 되어 프로젝트를 이끔.
  • 연방제 (Federal): 책임과 권한이 프로젝트의 코어 멤버들 사이에 보다 평등하게 분산됨.

거버넌스 프로세스

  • OSS 프로젝트의 거버넌스는 주체적인 행위자들이 협의와 합의 과정을 통해 정책을 결정하고 집행하는 시스템.
    • 거버넌스 프로세스의 종류: 멤버십 승인, 멤버쉽 프로모션, 분업, 기술적 의사 결정

 

오픈소스 SW 프로젝트의 당면 문제점

지리적으로 분산된 개발

  • 다문화적 팀 구성의 어려움:
    • OSS 프로젝트 커뮤니티는 광범위하고, 다양하며, 분산된 특성을 가지고 있어 직접적인 상호작용이 어렵다.
    • 언어, 관습, 시간대의 차이로 인한 의사소통 문제가 발생한다.

모듈화된 코드 개발

  • 고도의 모듈화:
    • 분산되고 자발적인 OSS 개발 환경에서 높은 수준의 모듈화된 형태로 개발이 진행된다.

의견과 목적의 이질성에 따른 분기(Forking)

  • 분기의 가능성:
    • 협력과 의사소통의 어려움으로 인해 의견과 주장의 차이가 커지면 서로 다른 프로젝트로 분기할 수 있다.
    • 예: NetBSD와 FreeBSD의 분기는 버클리 4.3BSD로부터 파생되었다.

무임승차 (Free-Riding)

  • 기여 없는 이득:
    • 개인이 OSS 프로젝트로부터 도출된 코드, 문제 해결 방법, 알고리즘, 디자인 등에서 경험을 쌓고 이득을 보지만, 실제로는 아무런 기여를 하지 않는 문제가 있다.

코드의 복잡성

  • 유지보수의 어려움:
    • 다수의 개발자에 의해 권장되지 않는 코딩 스타일로 인해 베이스 코드의 디버깅 및 유지 보수가 점차 어려워진다.
    • 코드 리팩토링이 필요하다.

문제 해결을 위한 방법들

  • 자유 형식의 논의 및 토론:
    • 이메일 등을 활용한다.
  • 이슈 트래킹 시스템:
    • 예: Redmine, Mantis, Bugzilla
  • 메일링 리스트:
    • 내용을 여러 명에게 보낼 목적으로 사용되는 전통적인 방법.
  • 뉴스 그룹:
    • 유즈넷 시스템을 활용한 뉴스그룹 사용.
  • 채팅방:
    • 직접적인 의사소통을 위해 활용한다.
  • 위키:
    • 문서화와 정보 공유를 위해 사용된다.

 

오픈소스 SW 프로젝트 커뮤니티의 확대 방안

일반적인 이점

  • 참여자 증가의 이점: OSS 프로젝트에 참여자의 수가 많다는 것은 프로젝트에 다양한 기술과 아이디어가 투입되고, 더 많은 혁신과 문제 해결이 가능해진다는 이점을 제공한다.

커뮤니티 확대를 위한 구체적인 전략

  1. 마케팅 및 홍보를 통한 신규 멤버 영입
    • 프로젝트의 가치와 이점을 널리 알려 지속적으로 신규 멤버를 유치한다.
  2. 기여에 대한 인정과 상벌제도(Reward & Penalty) 활용
    • 멤버들의 기여를 명확히 인정하고, 그에 따른 보상 및 필요시 제재를 적용하여 활동을 장려한다.
  3. 공유된 코드 저장소 사용
    • 예를 들어, GitHub과 같은 공유된 코드 저장소를 사용하여 코드의 접근성과 협업을 용이하게 한다.
  4. 코드 정제
    • 새로운 개발자들이 보다 쉽게 프로젝트에 적응할 수 있도록 코드를 정제하고, 이해하기 쉽게 만든다.
  5. 문서화의 중요성
    • 프로젝트 관련 문서를 체계적으로 관리하여 새로운 참여자가 필요한 정보를 쉽게 찾을 수 있도록 한다.
  6. 모듈화된 구조
    • 작업을 쉽게 분담하고 관리할 수 있도록 프로젝트를 모듈화된 구조로 설계한다.

이러한 전략들은 오픈소스 프로젝트의 성장과 발전을 촉진하는 데 중요한 역할을 하며, 커뮤니티의 지속적인 확장과 활성화에 기여한다.

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

오픈소스SW와 사유SW 프로젝트  (0) 2024.04.27
오픈소스SW 개요  (1) 2024.04.21