오픈소스 라이선스 (Open Source License)
오픈소스 라이선스 (Open Source License)
소프트웨어의 소스 코드를 공개하여 누구나 자유롭게 사용·수정·배포할 수 있도록 허용하되, 일정 조건을 부여하는 법적 계약 체계로, 허용적(Permissive) 라이선스와 카피레프트(Copyleft) 라이선스로 대별 (122, 134회 출제)
목적: 소프트웨어 자유 사용/수정/배포 보장, 협업 촉진, 지식 공유, 혁신 가속
특징: 소스 코드 공개, 라이선스 조건 준수 의무, 저작권 기반, 특허 조항 포함(일부)
허용적 라이선스 (Permissive)
- •MIT License: 매우 간결, 자유 사용/수정/배포, 저작권 표시만 유지, 상용 이용 자유
- •BSD License(2-Clause/3-Clause): MIT와 유사, 저작권 고지 유지, 3-Clause는 이름 사용 제한 추가
- •Apache License 2.0: 특허 라이선스 명시 부여, 기여자 특허 소송 시 라이선스 종료(특허 보복 조항), 변경 사항 고지 의무
- •공통: 파생 저작물에 동일 라이선스 강제하지 않음 → 상용 SW에 자유롭게 통합 가능
카피레프트 라이선스 (Copyleft)
- •GPL v2(GNU General Public License v2): 파생물도 반드시 GPL로 공개, 소스 코드 공개 의무, 리눅스 커널 적용
- •GPL v3: v2 + 특허 보복 조항(특허 소송 시 라이선스 종료) + 티보이제이션(Tivoization) 방지(하드웨어 잠금 금지) + DRM 우회 허용
- •LGPL(Lesser GPL): 라이브러리 링크 시 주 프로그램은 GPL 적용 면제, 라이브러리 자체 수정 시에만 소스 공개
- •AGPL(Affero GPL): 네트워크를 통한 서비스 제공 시에도 소스 코드 공개 의무(SaaS 대응), GPL의 네트워크 전파 확장
GPL v2 vs v3 차이: v3는 특허 보복 조항 추가, 티보이제이션 방지(설치 정보 제공 의무), DRM 관련 규정 추가, 국제화(법적 용어 정비)
듀얼 라이선스(Dual Licensing): 하나의 SW를 오픈소스 라이선스와 상용 라이선스로 동시 제공, 오픈소스 사용자는 GPL 준수, 상용 고객은 라이선스 구매로 GPL 의무 면제 (예: MySQL, Qt)
라이선스 호환성: 서로 다른 라이선스의 코드를 결합할 때 조건 충돌 여부, GPL은 호환성 제약↑(허용적 라이선스 코드를 GPL로 통합 가능, 반대는 불가), Apache 2.0은 GPL v3와 호환(GPL v2와는 비호환)
SBOM과의 관계: SBOM(Software Bill of Materials)으로 SW 구성요소와 라이선스를 명확히 파악, 라이선스 컴플라이언스 자동화, 공급망 보안과 함께 라이선스 리스크 관리
장점: 개발 비용 절감, 커뮤니티 기여, 코드 품질 향상, 벤더 종속 탈피, 빠른 혁신
단점: 라이선스 위반 리스크(GPL 오염), 지원 부재, 보안 취약점 노출, 라이선스 호환성 복잡
적용사례: Linux(GPL v2), Android(Apache 2.0), React(MIT), TensorFlow(Apache 2.0), MongoDB(SSPL)
최근 이슈(134회): Redis/MongoDB/Elasticsearch 등 오픈소스 기업의 라이선스 정책 변경(클라우드 기업의 무임승차 방지 목적), SSPL/BSL 등 새로운 라이선스 등장, 오픈소스 정신과 비즈니스 모델 간 갈등
비교: 허용적(MIT/BSD/Apache, 상용 자유/조건↓) vs 카피레프트(GPL/AGPL, 파생물 공개/전파↑) vs SSPL/BSL(소스 공개/SaaS 제한/비OSI)
연관: SBOM, SW 공급망 보안, 저작권, 특허, 컴플라이언스, 오픈소스 거버넌스