소프트웨어 라이선스 (Software License)
소프트웨어의 사용, 수정, 배포에 대한 권리와 제한을 정의하는 법적 도구
라이센스는 크게 오픈소스 라이센스와 상용 라이센스로 나눌 수 있다.
라이센스 종류 | 주요 특징 | 소스코드 공개 의무 | 상업적 사용 | 특허권 보호 | 대표적인 소프트웨어 |
---|---|---|---|---|---|
GPL v3 | 가장 엄격한 카피레프트 | 필수 | 가능 | 있음 | Linux Kernel, GCC |
AGPL v3 | 네트워크 서비스도 소스 공개 | 필수 | 가능 | 있음 | MongoDB(~2018) |
LGPL v3 | 라이브러리 링크 허용 | 수정시에만 필수 | 가능 | 있음 | FFmpeg |
MPL 2.0 | 파일 단위 카피레프트 | 수정시에만 필수 | 가능 | 있음 | Firefox |
Apache 2.0 | 특허권 명시적 허용 | 선택적 | 가능 | 있음 | Android, Spring |
MIT | 가장 자유로운 라이센스 | 선택적 | 가능 | 없음 | jQuery, Node.js |
BSD | MIT와 유사한 허용적 라이센스 | 선택적 | 가능 | 없음 | PostgreSQL |
Proprietary | 모든 권한 제한 | 불가 | 제한적 | 있음 | Windows, Oracle |
라이센스들의 주요 특징
GPL (GNU General Public License)
- 가장 엄격한 카피레프트 조항을 가진 라이센스이다
- 소프트웨어를 수정하거나 배포할 때 반드시 같은 라이센스로 소스코드를 공개해야 한다
- 파생 저작물도 같은 GPL 라이센스를 따라야 한다.
AGPL (Affero General Public License)
- GPL을 기반으로 하되, 네트워크 서비스에 대한 조항이 추가되었다
- 네트워크를 통해 서비스를 제공할 때도 소스코드를 공개해야 한다
- 클라우드 서비스에서 많이 고려되는 라이센스이다
LGPL (Lesser General Public License)
- GPL보다 덜 제한적인 라이센스이다.
- 라이브러리를 링크하여 사용하는 경우 소스코드 공개 의무가 없다.
- 라이브러리 자체를 수정할 때만 소스코드를 공개하면 된다.
MPL (Mozilla Public License)
- 파일 단위로 카피레프트가 적용된다.
- 수정한 파일만 소스코드를 공개하면 된다.
- 다른 라이센스와의 호환성이 좋다.
Apache License
- 특허권에 대한 명시적인 허용을 포함한다.
- 상업적 이용이 자유롭다.
- 수정 사항에 대한 표시만 요구한다.
MIT License
- 가장 단순하고 자유로운 라이센스이다.
- 저작권 표시와 라이센스 사본만 유지하면 된다.
- 상업적 이용을 포함한 모든 사용이 자유롭다.
BSD License
- `MIT와 유사한 허용적 라이센스이다.
- 원저작자의 이름을 홍보에 사용하지 못하도록 하는 조항이 있다.
- 자유로운 사용과 수정이 가능하다.`
Proprietary License
- 모든 권한이 저작권자에게 있다.
- 사용, 수정, 배포에 제한이 있다.
- 일반적으로 유료로 라이센스가 제공된다.
라이센스 선택 시 고려해야 할 사항
- 프로젝트의 목적
- 커뮤니티 중심: GPL 계열
- 기업 활용도: Apache, MIT
- 상업적 보호: Proprietary
- 법적 보호
- 특허권 보호 필요: Apache
- 카피레프트 중요: GPL
- 최소한의 제한: MIT
- 호환성
- 다른 라이센스와의 호환성
- 기존 컴포넌트의 라이센스
- 향후 확장 가능성
- 비즈니스 모델
- 오픈소스 기반: Apache, MIT
- 듀얼 라이센스: GPL + Proprietary
- 상용 제품: Proprietary