오픈소스와 라이선스

오픈소스 소프트웨어(OSS)

  • 개발자(저작권자)가 소스코드를 공개하여 누구나 사용, 수정, 공유할 수 있도록 허가한 소프트웨어
  • 반대개념은 “proprietary(closed) 소프트웨어”라고 함

소프트웨어 라이선스

  • 컴퓨터 프로그램은 지식재산권으로 보호받는 저작물
  • 원칙적으로 저작자가 공표, 복제, 배포, 개작할 권한을 가짐
  • 타인에게 일정한 대가나 조건을 전제로 권한을 부여할 수 있음(라이선스)
  • OSS도 보호받는 저작물이며 OSS 라이선스가 있음

오픈소스의 장점

  • 누구나 잘못된 점을 발견하고, 알리거나 고칠 수 있음
  • 배울 수 있고, 프로그램 개발에 효울적으로 적용할 수 있음
  • 여러 사람에 의해 테스트되어 안전함
  • 오픈소스 운동의 철학은 커뮤니티를 통한 협력, 공유, 개방이 발전을 위해 효율적이라는 것

GNU 프로젝트와 자유 소프트웨어 운동

  • 목적에 상관없이 프로그램을 실행할 수 있는 자유
  • 프로그램을 복제하고 공유할 수 있는 자유
  • 소스코드를 개작할 수 있는 자유
  • 개작된 프로그램을 배포할 수 있는 자유
    • 소프트웨어의 소스코드는 공개

리눅스의 라이선스

  • 리눅스는 독점되거나 배타되지 않는 자유 소프트웨어
    • 공개 라이선스에 따라 자유롭게 고치고 배포 가능
  • 주로 GPL(GNU General Public License)를 따름
  • 일부는 LGPL(GNU Lesser General Public License)
  • X Window는 MIT 라이선스

GNU GPL

  • 자유롭게 사용, 복제, 배포
  • 필요에 따라 자유롭게 수정하고 배포
  • 수정하여 배포하는 경우 소스코드를 공개하여야 함
  • 수정된 소프트웨어에 저작권자를 표시하고 똑같이 GPL 조건으로 배포하여야 함

다양한 오픈소스 소프트웨어 라이선스

  • GPL, LGPL, MPL
    • 소스코드를 공개하여야 하는 카피레프트 라이선스
      • 기본적으로 코드를 공개하도록 함
    • LGPL은 주로 오픈소스 라이브러리에 적용됨
    • MPL 코드와 결합하여 프로그램을 만들 때, MPL 코드를 포함하지 않은 파일은 공개 의무가 없음
    • 소스코드의 공개 범위는 다르게 정의됨
      • 전체 / 파일 / 모듈 단위 등

BSD, Apache, MIT 라이선스

  • 배포 시 소스코드의 비공개가 허용됨
  • Permissive 라이선스라고 함
  • 코드의 재사용을 높이려는 목적

Updated: