본문 바로가기

Git

[OSS] 오픈소스 소프트웨어

소스코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는, 오픈소스 라이선스를 만족하는 소프트웨어

핵심은 단순히 공개된것 뿐 아니라 수정하고 재배포할 수 있어야 한다.

 

  • 단순한 소스 공개 x
  • 무료
  • 소스코드 접근 및 컴파일 가능
  • 수정 및 재배포 가능

장점

  • 상용 소프트웨어에 비해 얻기 쉬우므로 사용자 확대가 용이
  • 신뢰성 있고 고품질인 sw를 빠르게 + 저비용으로 개발하는데에 도움이 된다. 수많은 개발자와 테스터를 모을 수 있음
  • 특정 회사 제품에 묶일(벤더락인) 필요가 없음

 

OSS 개발 방법

  • 사용자를 공동 개발자로 취급한다
  • 초기 개발 단계에도 릴리즈를 한다
  • 자주 통합한다 - 매일 하는 경우도 있음
  • 여러 버전을 제공한다. 개발자 버천과 안정화 버전 - 개발자 버전은 기능이 더 많지만 버그가 많을 수 있음. 안정화 버전은 더 안정적이나, 기능은 적은 버전
  • 모듈화 - 동시에 개발이 가능하도록 독립적인 요소들로 나뉘어져 있음
  • 동적 의사 결정 구조 - voting 등

 

개발 도구

  • 버전 관리 시스템, 대표적으로 git
  • 이슈 트래커 - 개발자들의 의사소통, 버그 보고 및 기능 요청
  • 코드 리뷰 시스템 - 코드 리뷰 시스템을 먼저 거친 뒤 반영되도록 함
  • 지속적 통합 시스템 - 자동화된 통합 시스템(CI). 젠킨스 등

 

오픈소스 라이센스

  •  카피레프트 - 수정 혹은 재배포시 동일한 라이선스가 강제됨
  • GPL - 카피레프트 + 파생물/수정 사항 공개 의무
  • LGPL - 공개 의무 없음
  • MIT - 카피레프트나 수정 사항 공개 등의 의무 없음

 

* 오픈소스 사이트 - black duck open hub, 

'Git' 카테고리의 다른 글

Git 메모 - 내 변경사항 halin/main에 병합  (0) 2022.05.15