profile-img
millo

Categories

전체 보기
nodejswebrtcnetworkjavascriptdockerreactnativegoopensourcetypescriptnginxgatsbyraspberrypipythonandroidstartup
small-profile-img
millo
small-profile-img
millo
profile-img
millo

Categories

전체 보기
nodejswebrtcnetworkjavascriptdockerreactnativegoopensourcetypescriptnginxgatsbyraspberrypipythonandroidstartup
opensource

오픈소스 라이선스 종류

게시: 2021년 1월 23일

OLIS
License
OSS
오픈소스 라이선스
GPL
LGPL
Apache
BSD

1. 서론

지난 시간에는 오픈소스 라이선스란 무엇인가에 대해 알아봤다. 이번에도 OLIS(오픈소스 SW 라이선스 종합정보시스템)에서 정보를 얻었다. 따라서, 더 자세한 사항을 보고 싶다면 해당 사이트를 방문하기를 바란다. 이번 포스팅은 주요 오픈소스 라이선스의 종류 및 특징, 의무 등에 대한 포스팅이다.

2. 주요 오픈소스 라이선스 특징 비교

라이선스의 특징 및 의무사항 BSD Apache 2.0 GPL 2.0 GPL 3.0 LGPL 2.1 MPL CDDL CPL/EPL
복제·배포·수정의 권한 부여 O O O O O O O O
배포시 라이선스 사본 첨부 O O O O O O O
저작권고지사항 또는 Attribution 고지사항 유지 O O O O O O O O
배포시 소스코드 제공 의무(Reciprocity)와 범위 derivative work work based on the program derivative work file file module
조합저작물(Larger Work)작성 및 타 라이선스 배포 허용 O O O O O O
수정시 수정내용 고지 O O O O O O O
명시적 특허라이선스의 부여 O O O O O
라이선시가 특허소송 제기시 라이선스 종료 O O O O O
이름, 상표, 상호에 대한 사용제한 O O O O
보증의 부인 O O O O O O O O
책임의 제한 O O O O O O O O

2-1. BSD형 License

BSD형 라이선스에는 BSD, MIT, Apache 라이선스 등이 포함되며, 비교적 오랜 역사를 가진 라이선스들이다. 이들 라이선스는 카피레프트(Copyleft) 조항을 포함하지 않으며, 의무사항도 비교적 간단하다.

라이선스의 특징 및 의무사항 BSD Apache 2.0
복제·배포·수정의 권한 부여 O O
배포시 라이선스 사본 첨부 O
저작권고지사항 또는 Attribution 고지사항 유지 O O
배포시 소스코드 제공 의무(Reciprocity)와 범위
조합저작물(Larger Work)작성 및 타 라이선스 배포 허용 O O
수정시 수정내용 고지 O
명시적 특허라이선스의 부여 O
라이선시가 특허소송 제기시 라이선스 종료 O
이름, 상표, 상호에 대한 사용제한 O O
보증의 부인 O O
책임의 제한 O O

1. BSD License

BSD 라이선스는 버클리 대학에서 만든 라이선스로, 소프트웨어를 재배포할 때 저작권 표시를 할 것과 준수 조건 및 보증 부인에 대한 고지사항을 소스코드 또는 문서 및 기타 자료에 포함할 것을 요구하고 있다.

2. Apache License

Apache 라이선스는 아파치소프트웨어재단(Apache Software Foundation)에서 만들어 배포한 라이선스이다. 1.0과 1.1 버전은 BSD와 비슷하게 간단한 내용만을 담고 있었지만, 현재 사용되고 있는 2.0 버전은 2004년에 배포된 것으로 비교적 상세한 내용을 담고 있다.

2-2. GPL형 License

GPL형 라이선스에는 GPL 2.0, GPL 3.0, LGPL 2.1, LGPL 3.0, AGPL 3.0 등이 포함되며, 대부분 FSF(Free Software Foundation)에서 주도하여 만든 것이다. 비교적 오랜 역사를 가진다는 점에서 BSD와 비슷하지만, 카피레프트 조항과 소스코드 제공 의무를 가지고 있다는 점에서 큰 차이가 있다. 카피레프트의 적용 범위 및 소스코드 제공 의무의 범위는 GPL, LGPL, AGPL 각각에 차이가 있다.

라이선스의 특징 및 의무사항 GPL 2.0 GPL 3.0 LGPL 2.1 AGPL 3.0
복제·배포·수정의 권한 부여 O O O O
배포시 라이선스 사본 첨부 O O O O
저작권고지사항 또는 Attribution 고지사항 유지 O O O O
배포시 소스코드 제공 의무(Reciprocity)와 범위 derivative work work based on the program derivative work derivative work
조합저작물(Larger Work)작성 및 타 라이선스 배포 허용 O
수정시 수정내용 고지 O O O O
명시적 특허라이선스의 부여 O O
라이선시가 특허소송 제기시 라이선스 종료 O O
이름, 상표, 상호에 대한 사용제한
보증의 부인 O O O O
책임의 제한 O O O O

1. GPL 2.0

GPL 2.0으로 배포되는 오픈소스는

i) 각 복제본에 적절한 저작권 표시와 보증책임이 없음을 명시하고,

ii) GPL 라이선스를 언급하는 고지사항과 보증책임 관련 고지사항을 원본 그대로 유지하고,

iii) 소프트웨어를 양도받는 모든 이들에게 소프트웨어와 함께 GPL 라이선스 사본을 제공하고,

iv) 파일을 수정한 경우 수정했다는 사실과 날짜를 파일에 명기해야 한다. 그리고

v) 원본저작물과 파생 저작물(derivative work)을 GPL 2.0에 의해 배포해야 하며,

vi) 원본저작물 및 파생 저작물에 대한 소스코드를 제공하거나, 요청 시 제공하겠다는 약정서를 제공해야 한다.

여기서 i) ~ iv)의 의무사항은 Apache 라이선스와 동일하거나 유사한 내용이지만, v) 및 vi)의 의무사항은 BSD형의 라이선스에서는 찾아볼 수 없는 내용이다.

2. GPL 3.0

GPL 3.0은 GPL 2.0이 배포되고 난 이후 오픈소스 환경을 둘러싼 다양한 변화들을 수용하여 만든 라이선스이다. GPL 3.0의 의무사항으로는

i) 각 복제본에 저작권 고지와 보증책임이 없음을 명시할 것,

ii) GPL 3.0의 조건 및 제7조의 조건에 관한 내용을 있는 그대로 유지할 것,

iii) 소프트웨어를 양도받는 모든 이들에게 소프트웨어와 함께 GPL 라이선스 사본을 제공할 것,

iv) 소프트웨어를 수정했을 경우 수정 사실 및 일시를 명시할 것, v) 원본 저작물과 그에 기반한 저작물(Work based on the program)을 GPL 3.0에 의해 배포할 것,

v) 원본저작물 및 그에 기반한 저작물(Work based on the program)에 대한 소스코드를 제공하거나, 요청 시 제공하겠다는 약정서를 제공할 것,

vi) 사용자 제품(user product)에 대한 인증키 등 설치 정보(installation information)를 제공할 것,

vii) 차별적인 특허라이선스 계약을 체결하지 말 것 등의 내용이 포함되어 있다.

i) ~ v) 의 내용은 GPL 2.0의 내용과 같거나 내용을 더욱 명확히 하는 것이었지만, vi) 및 vii)의 내용은 GPL 3.0에 처음으로 포함된 내용으로 많은 논란을 불러일으켰다.

3. LGPL

LGPL은 주로 라이브러리에 사용하기 위해 FSF가 GPL과는 별도로 만든 라이선스이다. 라이브러리에 GPL 라이선스를 적용하게 되면 응용프로그램까지 GPL로 배포해야 하므로 사용자는 해당 라이브러리의 사용을 꺼리게 된다. FSF는 GPL의 내용을 약간 수정하여 라이브러리 자체를 수정한 경우에는 카피레프트 조항을 적용하지만, 해당 라이브러리를 이용한 응용프로그램은 카피레프트 조항을 적용하지 않고 소스코드 제공 의무도 없는 형태로 LGPL 라이선스를 만들었다.

LGPL의 의무사항은

i) 각 복제본에 적절한 저작권 안내와 보증책임이 없음을 명시할 것,

ii) LGPL 라이선스를 언급하는 안내 사항과 보증책임 관련 고지사항을 원본 그대로 유지할 것,

iii) 소프트웨어를 양도받는 모든 이들에게 소프트웨어와 함께 LGPL 라이선스 사본을 제공할 것,

iv) 라이브러리 형태로의 수정을 허용하며, 만약 수정한 경우 수정사 실과 날짜를 파일에 명기할 것,

v) 원본저작물과 파생 저작물을 LGPL 또는 GPL에 의해 배포할 것,

vi) 원본저작물 및 파생 저작물에 대한 소스코드를 제공하거나, 요청 시 제공하겠다는 약정서를 제공할 것,

vii) 응용프로그램을 배포할 경우, LGPL 라이브러리를 사용하고 있다는 사실을 명시할 것,

viii) 사용자가 라이브러리를 수정해도 응용프로그램을 사용할 수 있도록 (예를 들어 응용프로그램의 오브젝트 코드를 제공하거나, 해당 라이브러리의 형태를 공유 라이브러리 방식 등을 이용하여) 허용할 것

등이다.

i) ~ vi)의 내용은 GPL 2.0과 동일하거나 유사하지만, vii) ~ viii)은 LGPL에 특유한 내용이다.

4. Affero GPL

BSD, Apache, GPL, LGPL, MPL, EPL 등 대다수의 오픈소스 라이선스들은 해당 소프트웨어를 복제하여 ‘배포(distribute)’할 때 지켜야 하는 다양한 요구사항들을 규정하고 있다. 이를 반대로 해석하면 해당 소프트웨어를 배포하지 않고 기업이 해당 오픈소스를 내부적으로만 사용하거나 네트워크 서버 형태로 이용하고 있는 경우에는 라이선스에 따른 의무사항들이 거의 없다는 점이다.

오픈소스 라이선스의 이러한 한계에 대해 비판적인 견해를 가지고 있던 Affero 프로젝트 24)는 기존의 GPL 라이선스를 변경하여 네트워크 서버에 의해 서비스를 제공하는 경우에도 카피레프트 조항과 소스코드 제공 의무가 적용되도록 하였다. Affero GPL의 의무사항은 GPL과 기본적으로 동일하다. 다만, 그 적용의 범위가 단순한 ‘배포’를 넘어서 네트워크 서버 형태로 소프트웨어를 이용하는 경우에도 적용된다는 점에 차이가 있다.

2-3. MPL형 License

MPL형 라이선스는 주로 기업들이 주도하는 오픈소스 프로젝트에서 사용하는 라이선스로 MPL, CDDL, EPL 등이 포함된다. BSD형과 GPL형의 라이선스와는 달리, 처음부터 법률가들이 참여하여 만들었기 때문에 소프트웨어 라이선스의 관점에서는 더욱 정교하다고 볼 수 있지만, 프로그래머들에게는 그만큼 복잡하고 이해하기 어려운 라이선스들이다. 카피레프트 조항을 포함하고 있다는 점에서 GPL형과 비슷하지만, 적용 범위와 소스코드 제공 범위는 GPL보다는 LGPL에 가까운 것으로 볼 수 있다.

라이선스의 특징 및 의무사항 MPL CDDL CPL/EPL
복제·배포·수정의 권한 부여 O O O
배포시 라이선스 사본 첨부 O O O
저작권고지사항 또는 Attribution 고지사항 유지 O O O
배포시 소스코드 제공 의무(Reciprocity)와 범위 file file module
조합저작물(Larger Work)작성 및 타 라이선스 배포 허용 O O O
수정시 수정내용 고지 O O O
명시적 특허라이선스의 부여 O O O
라이선시가 특허소송 제기시 라이선스 종료 O O O
이름, 상표, 상호에 대한 사용제한 O O
보증의 부인 O O O
책임의 제한 O O O

1. MPL

MPL은 1998년 넷스케이프사가 자사의 브라우저를 오픈소스로 배포하면서 만든 라이선스이다. MPL로 배포되는 오픈소스를 이용하기 위해서는

i) 원 코드에 포함된 저작권 표시, 개발자 및 권리자에 관한 사항들을 그대로 표시할 것과,

ii) 배포 시 MPL 라이선스 사본을 첨부할 것,

iii) 수정했을 경우에는 최초개발자의 코드로부터 파생되었다는 사실, 수정사항 및 날짜 등을 포함한 파일(Exhibit A)을 소스코드의 각 파일에 포함할 것,

iv) 원본 및 수정코드를 MPL에 의해 배포할 것과,

v) 수정코드에 대한 소스코드를 전자배포방식 등을 통해 제공할 것,

vi) MPL 코드를 사용할 때 제3자의 지식재산권에 의한 라이선스가 필요하다는 사실을 알고 있는 경우 “LEGAL” 파일에 관련 내용을 포함할 것 등이다.

2. CDDL

CDDL은 썬(sun)이 자사의 유닉스 운영체제인 솔라리스를 오픈소스로 배포하면서 만든 라이선스이다. MPL을 참조하여 만들었기 때문에 MPL의 내용과 비슷하다.

i) 저작권 등 권리관련 사항, 라이선스 관련 사항 등의 고지사항을 제거하거나 변경할 수 없으며,

ii) 배포 시 CDDL 라이선스 사본을 첨부해야 하며,

iii) 수정한 경우 수정코드의 기여자임을 밝혀야 한다.

iv) 원본 및 수정코드를 CDDL에 의해 배포해야 하며, v) 수정코드에 대한 소스코드를 합리적인 방식으로 제공해야 한다.

3. CPL/EPL

CPL과 EPL은 IBM이 이클립스(Eclipse) 등 오픈소스 프로젝트를 진행하면서 만든 라이선스이다. CPL과 EPL은 특허 보복 조항에 관한 사항에서만 차이가 있고 다른 내용은 모두 동일하다. IBM은 현재 EPL만 사용하고 있다. EPL로 배포되는 소프트웨어를 배포할 때 지켜야 할 의무사항으로는

i) 각 코드의 저작권 고지사항을 제거하거나 변경하지 말 것과,

ii) EPL 라이선스 사본을 포함할 것과,

iii) 각 기여물의 창작자를 식별할 수 있도록 신분을 밝힐 것과,

iv) 오브젝트코드로 배포하는 경우 EPL 조건을 준수하고, 보증부인 및 책임배제에 관한 내용과 소스코드의 확보 방법을 알려 줄 것,

v) 소스코드로 배포하는 경우 EPL 라이선스를 적용할 것과,

vi) 상업적 배포의 경우 기여자에게 책임이 발생하지 않도록 조치할 것 등의 내용을 포함하고 있다.

2-4. Font License

오픈소스 소프트웨어 확산과 함께 오픈소스 폰트도 많이 만들어지고 있다. 2014년 어도비와 구글이 손을 잡고 무료 폰트를 공개하기 시작했으며, 현재 구글은 http:// fonts.google.com을 통해 오픈소스 폰트를 공개하고 있다.

1. GPL Font Exception

폰트의 저작권법 특성상, GPL 폰트를 내장한 문서는 GPL의 파생저작물로 간주될 수 있다. 하지만, 이는 대부분 폰트 저작권자의 의도는 아닐 것이다. 이와 같은 이유로 FSF (Free Software Foundation)의 David "Novalis" Turner는 2005년 4월, font exception을 만들었다. 즉 **GPL Font Exception이 적용된 폰트라면 폰트 자체는 GPL에 의해 저작권 및 라이선스 고지와 해당 폰트 공개 의무사항을 준수해야 하지만, 폰트가 적용된 문서에는 GPL이 적용되지 않는 것이다. **

2. SIL Open Font License (OFL)

SIL Open Font License는 SIL International에서 자신들의 unicode 폰트를 배포할 때 사용하는 라이선스로 저작권 및 라이선스 고지를 하면 자유롭게 사용 가능하다. 폰트 자체를 단독으로 판매 금지하는 조항이 있어 GPL과 호환되지 않으며, 다른 프로그램과 함께 배포하거나 판매하는 것은 허용된다.

3. Ubuntu Font License

Ubuntu Font License(UFL)는 Ubuntu에서 만든 Ubuntu Font Family를 배포할 때 사용하는 라이선스이다. OFL의 영향을 받아 만든 라이선스이지만, 해당 폰트를 배포할 때 다시 Ubuntu Font License로 배포해야 하는 copyleft 성격을 지니고 있다는 점에서 큰 차이를 갖는다. 배포 시 의무사항으로는 저작권 및 라이선스 고지를 해야 하며, 수정 여부에 관계없이 폰트 소프트웨어의 모든 부분은 다시 UFL로 배포되어야 한다. Font를 배포하는 것을 목적으로 하는 것이 아닌 문서에 해당 UFL 하의 Font가 적용되어 사용된 경우는 라이선스의 적용 대상이 아니므로, 이는 GPL Font Exception과 유사하다고 볼 수 있다.

추가적인 의무사항으로, 원본은 Font 명칭도 그대로 사용해야 하며, 상당한 변형이 있는 수정 버전은 원본 이름 및 유사한 명칭이 아닌 전혀 새로운 명칭을 사용해야 하며, 변형이 크지 않은 수정 버전은 원본 명칭을 유지하면서 “derivative x”를 추가하는 형식으로 원본의 이름과 구분하게 해야 한다.

3. 느낀 점

오픈소스 라이선스 자체가 워낙 종류가 많고 다양하다 보니 앞으로는 사용할 때 계속 라이선스를 확인하게 될 것 같다. 아는 만큼 보인다더니 이렇게 보고 나니 모두가 같은 오픈소스가 아니란 걸 알았고 상황에 맞게 가져다 쓸 것과 아닌 것을 구별할 수 있는 능력을 갖춰야 할 것 같다. 이 포스트가 관련 자료를 찾는 분들께 도움이 됐으면 하며 아래에 참고한 사이트의 주소를 첨부한다. 혹시나 라이선스 관련 문의사항이 있다면 이 사이트에 방문해보길 추천한다.

[참고]

https://www.olis.or.kr/license/licenseOSI.do?mapcode=010001&page=1 https://www.olis.or.kr/license/licenseGuide.do