오픈소스와 라이선스
오픈소스 소프트웨어(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 라이선스라고 함
- 코드의 재사용을 높이려는 목적