오픈소스 라이선스 정리
2025. 2. 1. 13:03ㆍ소프트웨어/기초
📜 오픈소스 라이선스 가이드
⚠️ 실제 사용 시 라이선스 조항을 직접 확인하고, 이 문서는 대략적인 참고 자료로만 활용하세요. 라이선스의 구체적인 조건과 법적 의무는 해당 라이선스의 원문을 확인해야 합니다.
🔹 퍼블릭 도메인 (Public Domain)
완전한 자유: 저작권을 포기하여 누구나 제한 없이 사용, 수정, 배포 가능. 하지만 일부 국가에서는 저작권 포기가 법적으로 불가능할 수 있음.
📌 대표 라이선스
- CC0 (Creative Commons Zero): 특정 국가의 저작권법을 고려한 퍼블릭 도메인 선언.
- Unlicense: 저작권을 완전히 포기하고 코드 사용에 제한을 두지 않음.
📌 주요 사용 사례
- 정부 및 공공 데이터
- 학술 연구 데이터셋 및 기본 알고리즘 구현체
- 제약 없는 코드 공유 프로젝트
🔹 퍼미시브 라이선스 (Permissive License)
최소한의 제약: 저작권 고지를 유지하면 자유롭게 사용, 수정, 배포 가능하며, 상업적 이용 및 폐쇄소스 프로젝트에서도 사용 가능.
📌 대표 라이선스
- MIT License: 간단하고 이해하기 쉬운 라이선스 (예: jQuery, Angular.js, TensorFlow)
- Apache License 2.0: 특허권 보호 조항 포함, 특허 소송 시 라이선스 자동 종료 (예: Android, Kubernetes, Swift)
- BSD License:
- BSD 4-Clause: 광고 조항 포함, 사용이 복잡함.
- BSD 3-Clause: 광고 조항 제거.
- BSD 2-Clause: 가장 단순한 형태 (예: Go 언어, PostgreSQL, FreeBSD)
- ISC License: BSD와 유사하나 더 간결한 문구 사용 (예: OpenBSD, 일부 Node.js 패키지)
🔹 강한 카피레프트 라이선스 (Strong Copyleft)
소스코드 공개 의무: 파생 저작물도 동일한 라이선스로 공개해야 하며, 라이선스를 변경할 수 없음.
📌 대표 라이선스
- GPL v2: 소스코드 공개 의무, 바이너리 배포 시 소스코드 제공 필수 (예: Linux 커널, MySQL, Git)
- GPL v3: DRM 제한 방지, 특허 보복 조항 강화 (예: Bash, GCC, GIMP)
- AGPL v3: 네트워크 서비스 사용 시에도 소스코드 공개 의무 (예: MongoDB(~2018), RocksDB)
- 참고: MongoDB는 2018년 이후 **SSPL(Server Side Public License)**로 변경됨.
🔹 약한 카피레프트 라이선스 (Weak Copyleft)
라이브러리 예외: 라이브러리를 사용하는 프로그램은 반드시 같은 라이선스를 따를 필요 없음.
📌 대표 라이선스
- LGPL v2.1: 동적 링킹 허용 (예: GTK+, 일부 Qt 모듈)
- LGPL v3: LGPL v2.1의 특징 유지 + GPL v3 조항 추가 (예: FFmpeg, 일부 Qt 모듈)
- MPL 2.0: 파일 단위 카피레프트 적용 (예: Firefox, Thunderbird, LibreOffice)
- EPL 2.0: 모듈 단위 카피레프트 적용, 특허 관련 조항 포함 (예: Eclipse IDE, JUnit)
📌 라이선스 선택 가이드
📍 프로젝트 목적별 추천 라이선스
목적 | 추천 라이선스 |
커뮤니티 중심 | GPL / AGPL |
기업 친화적 | MIT / Apache 2.0 |
혼합 활용 | LGPL / MPL |
📍 법적 보호 수준
보호 수준 | 추천 라이선스 |
최소한의 보호 | MIT / BSD |
특허 보호 필요 | Apache 2.0 |
카피레프트 보호 | GPL |
📍 라이선스 호환성
- GPL v2와 GPL v3는 호환되지 않음 (GPL v3는 추가 요구 사항이 있어 GPL v2 프로젝트에 직접 포함할 수 없음)
- Apache 2.0과 GPL v2는 호환되지 않음 (특허 조항 문제)
- Apache 2.0과 GPL v3는 호환 가능
📍 비즈니스 모델별 추천 라이선스
비즈니스 모델 | 추천 라이선스 |
오픈소스 커뮤니티 기반 | GPL |
듀얼 라이선싱 (무료+상용) | GPL 또는 AGPL + 상용 라이선스 |
서비스 기반 (SaaS 등) | MIT / Apache 2.0 |
📍 배포 방식별 추천 라이선스
배포 방식 | 추천 라이선스 |
바이너리 배포 (패키지) | GPL 고려 필요 |
서비스 형태 (웹 서비스 등) | AGPL 고려 필요 |
라이브러리 배포 | LGPL / MIT / Apache 2.0 |
📍 개발 생태계 고려
요소 | 추천 라이선스 |
해당 분야의 표준 라이선스 | 산업 표준 참고 |
기여자 확보 용이성 | MIT / Apache 2.0 |
산업 표준 준수 필요 | BSD / Apache 2.0 / GPL |
🔎 결론
라이선스 선택이 프로젝트의 배포 방식과 사용 방식에 영향을 미치므로, 필요에 맞는 라이선스를 신중하게 선택해야 합니다.
- 상업적 사용과 배포의 자유를 원하면 → MIT / Apache 2.0
- 강한 오픈소스 커뮤니티를 지향하면 → GPL / AGPL
- 부분적인 보호가 필요하면 → LGPL / MPL
- 네트워크 기반 서비스까지 보호하려면 → AGPL
'소프트웨어 > 기초' 카테고리의 다른 글
2의 보수(Two’s Complement) 정리 (0) | 2025.02.04 |
---|---|
1의 보수(One’s Complement) 정리 (0) | 2025.02.04 |
오픈 데이터 라이선스 정리 (0) | 2025.02.01 |
시간 복잡도 (0) | 2025.01.04 |
Big O 표기법 (0) | 2024.07.13 |