History
- 오픈소스 소프트웨어 라이선스 체계 추가
- 인공지능 윤리 도덕 확장
- 중요한 개념
Related-Notes
오픈소스 소프트웨어 라이선스(Open Source Software Licenses)
오픈소스 라이선스는 소프트웨어의 사용, 수정, 배포 조건을 정의합니다. 크게 허용적(Permissive) 라이선스와 카피레프트(Copyleft) 라이선스로 나뉩니다.
허용적 라이선스(Permissive Licenses)
상업적 사용, 수정, 재배포가 자유로우며 수정 코드의 공개 의무가 없습니다.
MIT License
- 가장 단순하고 제약이 적은 라이선스
- 상업적 사용 자유
- 라이선스 고지와 저작권 표시만 필요
- 예: jQuery, Rails, Node.js
Apache 2.0 License
- MIT보다 명시적인 특허권 보호 조항 포함
- 상업적 사용 자유
- 수정 사항 명시 의무
- 예: Home Assistant, ESPHome, Android, Kubernetes
BSD Licenses (2-clause, 3-clause)
- MIT와 유사하나 약간 더 명시적
- 3-clause는 저작자 이름의 무단 사용 금지 조항 포함
- 예: FreeBSD, OpenBSD
카피레프트 라이선스(Copyleft Licenses)
수정된 코드를 배포할 때 동일한 라이선스로 공개해야 합니다.
GPL (GNU General Public License)
- 가장 강력한 카피레프트 라이선스
- 수정 코드 전체를 GPL로 공개 의무
- 상업적 사용 가능하나 소스 공개 필수
- 버전: GPLv2, GPLv3
- 예: Linux Kernel(GPLv2), Git(GPLv2)
LGPL (GNU Lesser General Public License)
- GPL보다 완화된 버전
- 라이브러리로 링크만 하면 전체 공개 의무 없음
- 라이브러리 자체 수정 시에만 공개 의무
- 예: Qt (일부), FFmpeg
AGPL (Affero General Public License)
- GPL의 네트워크 서비스 버전
- 네트워크를 통한 서비스 제공도 배포로 간주
- 클라우드 서비스에도 소스 공개 의무
- 예: MongoDB(과거), Nextcloud
라이선스 선택 가이드
| 목적 | 추천 라이선스 | 이유 |
|---|---|---|
| 최대한 자유로운 사용 | MIT | 가장 단순, 제약 최소 |
| 특허 보호 필요 | Apache 2.0 | 명시적 특허권 조항 |
| 오픈소스 생태계 유지 | GPL | 수정 코드 공개 의무 |
| 라이브러리 개발 | LGPL | 상업적 사용 허용, 수정 시 공개 |
| 클라우드 서비스 보호 | AGPL | 네트워크 서비스도 공개 의무 |
라이선스 호환성(License Compatibility)
- MIT/BSD/Apache → GPL: 가능 (단방향)
- GPL → MIT/BSD/Apache: 불가능
- GPL + LGPL: 조건부 가능
- Apache 2.0 + GPLv2: 호환 불가
- Apache 2.0 + GPLv3: 호환 가능
듀얼 라이선스(Dual Licensing)
상업적 라이선스와 오픈소스 라이선스를 동시에 제공하는 전략:
- Qt: LGPL + Commercial
- MySQL: GPL + Commercial
- 개발사는 수익 창출, 커뮤니티는 오픈소스 혜택
Comments