유용한 팁

[스크랩]GPL/LGPL/MPL/BSD 라이선스

프리월드 2012. 9. 19. 11:42

출처http://yundarz.egloos.com/9142824


GPL
GPL(General Public License)은 MPL이 나오기 이전에 가장 널리 사용되던 공개 소프트웨어 라이선스였다. GPL은 OSS의 가장 대표적인 라이선스로 GNU 프로젝트 소프트웨어를 배포할 때 사용되는 것이었지만 이후에는 GNU 프로젝트로 시작된 것이 아닌 다른 소프트웨어에도 광범위하게 사용되고 있다.
GPL은 리차드 스톨만에 의해 만들어졌고 자유 소프트웨어 재단의 철학을 반영하고 있다. 소프트웨어를 복제하거나 유통하는데 제약은 없지만 몇 가지 조건을 만족시켜야 한다. 사용자가 소스 코드를 쉽게 사용할 수 있어야 하며 배포되는 소프트웨어에는 GNU GPL이 포함되어 있어야 한다. 그리고 쌍방향 프로그램의 경우 프로그램이 시작될 때 이를 게시해야 한다. 프로그램을 수정할 경우에는 언제, 누구에 의해 수정되는지를 명시하기만 하면 된다. 파생 제품을 만들 수 있지만 파생 제품에는 GPL이 적용되어야 한다.
GPL의 가장 큰 특징은 배포된 소프트웨어가 상업용 소프트웨어(proprietary product)로 변질되는 것을 막아주는 조항, 이른바 카피레프트 조항을 가지고 있다는 것이다. 결과적으로 GPL 소프트웨어를 결합하여 만든 소프트웨어는 반드시 GPL이 적용되어야 하므로 이른바 바이러스 효과가 일어난다. 즉 GPL은 저작권을 포기하는 것이 아니다. 만일 개발자나 기업이 GPL이 적용된 소프트웨어의 일부를 사용하여 다른 소프트웨어를 개발할 경우, 기업은 그들이 개발한 소프트웨어의 소스 코드를 공개해야만 한다. 결과적으로 소프트웨어를 제작 판매하는 기업에서는 GPL이 적용된 소프트웨어를 기피하는 문제가 있다고 할 수 있다.
GPL의 주요한 특징을 살펴보면 첫째 소스 코드뿐만 아니라 목적 코드(object code) 또는 실행 가능한 형태(executable form)로도 배포를 허락하지만, 이 경우 어떤 형태로든 소스 코드에 대한 접근이 보장되어야 한다. 둘째, 2차적 저작물이 GPL에 의해 라이선스 된다는 조건하에 코드의 변경 및 재배포를 무제한으로 허용한다. 셋째, 다른 소프트웨어와의 완전한 통합(complete integration)은 그 소프트웨어가 GPL을 수용한다는 조건하에서만 허용된다.

LGPL
이와 같은 이유로 GPL이 소프트웨어를 제작 판매하는 기업에서 사용되는 것에 제한이 있으므로 자유 소프트웨어 재단은 LGPL(GNU Lesser General Public License)을 만들었다. LGPL이 적용되는 라이브러리를 사용해도 개발된 소프트웨어는 GPL에 오염되지 않는다. 이를 만든 이유는 좋은 자유 소프트웨어 제품이 많이 사용되어 표준이 되고 독점 제품과 경쟁할 수 있도록 하기 위해서다. LGPL이 적용된 최초의 소프트웨어는 GNU C 라이브러리였다. LGPL은 GNU 프로젝트에 의해 개발된 소프트웨어와 사적 소프트웨어를 포함한 다른 소프트웨어와의 통합을 허용하기 위해 자유 소프트웨어 재단에 의해 만들어졌다. 자유 소프트웨어가 아닌 모듈과의 링크를 허용한다는 면에서 완전한 카피 레프트 라이선스는 아니라고 할 수 있다.
LGPL은 보통 라이브러리를 라이선스할 때 사용되는데, 특히 자유 라이브러리(free library)에 대응되는 상용 라이브러리가 존재할 때 사용된다. 일반적으로 소프트웨어 개발자들은 비슷한 기능의 라이브러리가 존재할 때 제한이 별로 없는 상용 라이브러리를 사용하게 될 것이고, 그렇게 된다면 자유 라이브러리는 점점 사용되지 않을 것이기 때문이다. 반면 대응되는 상용 라이브러리가 없는 자유 라이브러리를 만들었을 때는 LGPL 대신 GPL을 사용하고 있다.

MPL
MPL(Mozilla Public License)은 넷스케이프가 그들의 브라우저인 모질라의 소스 코드를 공개하는데 사용한 라이선스이다. MPL은 코드와 실행 파일을 분리하여 양자를 보완한 것이다. 코드는 공개되어야 하고 최초의 저작자에게 보완한 내용을 통지해야 한다. 반면에 실행 파일은 독점 라이선스로 배포될 수 있다. 즉 저작자의 이익을 보호할 뿐 아니라, 이 라이선스는 수정, 보완된 소프트웨어의 배포를 통한 상업적 이익을 보호 할 수 있다. 이는 적정한 가격을 요구할 수 있고, 불법 복제에 대해 제재를 가할 수 있다는 것을 의미한다. 또한 소프트웨어를 더욱 보완, 발전시키려는 개발자들의 이익을 보호할 수 있다고 생각한다. 즉 기술적으로 개선을 할 경우 코드를 보고, 수정한 후, 컴파일하여 새로운 독창적인 버전으로 재배포할 수 있다.
MPL에서 유래한 라이선스는 IPL(Interbase Public License), ISC OSPL(Open Source Public License), SPL(Sun Public License), NOSL(Netizen Open Source Lecense), OTPL(Open Telecom Public License), EPL(Erlang Public License) 등이다. MPL도 사용자에게 이후의 라이선스 계약 시 동일한 라이선스를 부과하는 카피레프트 조항을 가지고 있다는 면에서 GPL과 흡사하다. 하지만 이러한 의무가 소스 코드에만 부여된다는 점에서 차이가 있다. 다시 말하면 이용자가 원래의 프로그램에 변경을 가했거나 추가시킨 경우에 해당 소스 코드를 원래의 개발자나 공동체가 사용할 수 있도록 공표해야 하지만, 실행 가능한 바이너리 코드는 상업용 소프트웨어 라이선스를 포함한 어떠한 라이선스를 사용해서도 배포할 수 있다. MPL은 OSS(Open Sousrce Society) 그룹과 산업계와의 타협의 산물이라고 평가받는 데 특이한 점 한 가지는 프로그램의 복제 또는 배포가 특허권에 관련한 경우는 이용자에게 특허의 실시를 허용해야 한다는 점이다. 그러나 원본 코드(original code)에서 제거하거나 분리한 코드, 원본 코드의 개작 또는 다른 소프트웨어와의 결합으로 야기되는 침해에 대해서는 특허 라이선스가 허락되지 않는다.
사용자의 의무에 관하여는 MPL은 GPL의 순수한 카피레프트 라이선스와 유사하다고 할 수 있다. 만일 사용자가 의무를 불이행하는 경우에는 보장된 권리의 자동적인 소멸을 초래하게 된다. 단 GPL과는 달리 라이선스 조건 위반은 이용자의 권한을 즉각적으로 종료시키는 것이 아니라 사실 인식 후 30일 경과하면 소멸한다고 규정한다.
다음은 개발자에게 중요한 개작자의 의무에 대해 살펴보자. 개량자는 코드 개작시 취득한 저작권을 MPL하에 라이선스해야 할 의무가 있다. 그러나 그는 원 코드를 잉여할 권리는 가지지 않는다. 프로그램의 개작(modification)이 발생하면 재작자는 개작된 프로그램 소스 코드를 공개해야 하고 개작 내용(description of modifications)에 대해 문서화할 의무가 있다. 무엇보다도 MPL 적용 프로그램을 실행 버전(executable versions)으로 배포하는 자는 프로그램의 소스 코드에 대한 접근을 가능케 해야 한다. 만일 법규 또는 판례로 인하여 이용자가 준수가 불가능한 경우 이용자는 ‘가장 가능한 범위까지(to the maximum extent possible)’ MPL 조항을 준수해야 하며, 법규들이 영향을 미치는 제한(limitations)을 설명해야 한다고 하고 있다.

BSD 라이선스
BSD(Berkeley Software Distribution) 라이선스는 언제나 라이선스의 주석에 BSD가 캘리포니아 대학에서 처음 개발된 것이기에 이를 명시해야만 하는 다소 단순하고 귀찮은 의무가 기재되어 있으며 FreeBSD, X, NetBSD 등 여러 변종이 존재한다. BSD는 소프트웨어 산업과 관련하여 가장 다양하게 사용될 수 있는 라이선스라고 할 수 있다. BSD 라이선스가 적용되는 소프트웨어를 수정, 보완한 소프트웨어는 상업용 독점 소프트웨어가 될 수도 있고, BSD 라이선스로 배포될 수 도 있다. 또한 GPL로 배포될 수도 있다.
BSD 라이선스는 예컨대 아파치 웹 서버 등에 사용되는 라이선스로 사용자들에게 거의 제한을 가하지 않는 것이 특징이다. 심지어 카피레프트 조항도 없기 때문에 사적 소프트웨어 벤더들도 BSD 라이선스로 배포되는 OSS 컴포넌트를 그들의 제품에 무제한으로 사용할 수 있다. 예컨대, BSD는 X 라이선스의 변형인데 동 라이선스는 소프트웨어를 사용, 복제, 통합, 변경, 발행, 배포 및 판매할 권리를 부여한다. 다만 때때로 저작권 표기를 요구하거나 코드 변경의 날짜, 저자 및 변경목적을 요구하기도 한다. MIT 라이선스, XFee86 라이선스, X 컨소시엄 라이선스 모두 저작권과 무보증의 표시만 한다면 누구든지 무상으로 소프트웨어를 사용, 복제, 변경, 병합, 출판, 배포, 다시 라이선스 할 수 있으며 이러한 것들을 유상으로 타인에게 판매할 수 있도록 하고 있다. 이같이 라이선스 허용범위가 넓은 이유는 BSD 라이선스가 미국 정부가 제공한 재원으로 운영되었기 때문이라고 한다. X 라이선스는 소프트웨어를 사용, 복제, 변경, 통합, 발행, 배포 및 판매할 권리를 부여한다. 다만 때때로 저작권 표기를 요구하거나, 코드 변경의 날짜, 저자 및 변경목적을 요구하기도 한다.
BSD, X 라이선스, 아파치 웹 서버 프로젝트 라이선스 류의 가장 중요한 사항은 X 라이선스를 따르는 개작을 개인적으로 허가하고 있다는 점이다. 쉽게 말하면 X 라이선스를 따르는 프로그램의 소스 코드를 구해 수정한 후 소스를 공개하지 않고 판매할 수 있다. 즉, 수정한 부분에 대해서는 X 라이선스를 적용하지 않은 채로 판매할 수 있다. 반면 GPL은 개인적으로 개작한 부분은 GPL에 따라서 반드시 배포되어야 한다고 규정하고 있으며, 그에 따라 프로그램 개발자는 타인의 개발성과를 받아볼 수 있다.
BSD는 무엇보다 2차적 저작물에 대한 카피레프트 조항이 없다. 즉, 배포하거나 공표하려는 저작물의 전부 또는 일부가 양도받은 프로그램으로부터 파생된 것이라면, 저작물 전체에 대한 사용 권리를 GPL의 규정에 따라 공중에게 무상으로 허용해야 한다고 GPL이 명시한 부분이 없다. 따라서 상업용 소프트웨어 판매자들도 BSD 라이선스로 배포되는 공개 소프트웨어의 컴포넌트를 자신의 제품에 무제한으로 사용할 수가 있다. BSD 라이선스 정책을 지지하는 사람들은 GPL 라이선스가 지나치게 엄격하다고 비판하기도 한다.
BSD 지지자들은 아무런 제한 없이 소스를 공개하고, 이를 누구든지 자유롭게 재배포하고 수정할 수 있도록 함으로써 이러한 소프트웨어들이 상업적으로도 사용될 수 있도록 문호를 개방하는 편이 훨씬 더 효과적으로 자유로운 소프트웨어의 사용이라는 목표를 달성할 수 있다고 보고 있는 것이다. 그러나 GPL을 지지하는 측에서는 BSD 라이선스를 선택하는 것은 기업들이 소스를 변형하여 2차 저작물을 작성해 이에 대해 독점적인 라이선스 정책을 취할 것이며, 일반인들의 자유 사용이 제한되므로 진정한 자유 소프트웨어는 될 수 없을 것이라고 비판하기도 한다. BSD 라이선스 정책을 취하고 있는 소프트웨어 중에는 세계 웹 서버의 50% 이상에서 작동하고 있는 아파치 서버, Perl 소프트웨어, BIND, sendmail 소프트웨어와 같이 상업적으로도 많이 사용되고 있는 소프트웨어들이 많다. 그 중에서도 BSD 라이선스는 예컨대 아파치 웹 서버 등에 사용되는 라이선스로 사용자들에게 거의 제한을 가하지 않는 것이 특성이다.
이상 BSD 라이선스의 내용을 요약해 보면 다음과 같다. 오픈소스 라이선스 개념에 해당하며 GPL보다는 그 허용범위가 크다. 비자유 상용 소프트웨어와 혼합이 가능하다. 수정된 소스 코드가 원저작자에게 돌아가진 않을 수 있다. 즉, 수정한 후 소스를 공개하지 않고 상업적으로 판매할 수 있다는 점에서 GPL과 차이가 있다. 파생 저작물이 반드시 무상이어야 하는 것은 아니어서 파생물도 GPL을 따라야 하며 무상이어야만 한다고 명시한 GPL과 다른 것이다.

========================================================================================

'유용한 팁' 카테고리의 다른 글

앱과 정보 보안  (0) 2014.12.03
함수의 선언과 정의의 차이점  (0) 2012.11.27
오버로딩과 오버라이딩  (0) 2012.09.17
[프로그래밍] 프로세스와 스레드  (0) 2012.09.06
XML, JSON, BSON, MSGPACK 장,단점 비교  (0) 2012.09.05