안녕하세요. 외부 프로젝트에 파견 후 다시 돌아온 MD 범스입니다.
이번 프로젝트를 진행하는 중에 발주사측으로부터 오픈 소스 사용확인서 라는 문서를 달라는 요청을 받았습니다. 내용을 살펴보니 프로젝트를 수행하는 중 사용하였던 오픈 소스에 대한 라이선스에 대한 저작권 및 법적 문제가 없음에 대한 확신을 달라는 문서였습니다. 그래서 문서를 작성하게 되었는데.... 아... 아는 것이 없더군요 -_-;; 많은 프로젝트를 진행해오면서 Apache, MIT등이 라이선스로 붙어 있으면 무료 오픈 소스이니 그냥 사용하면 되겠구나 정도로만 생각했지 각 라이선스들에 어떠한 조건들이 달려 있는지는 자세히 확인을 한적이 없었기 때문입니다. 그래서 문서를 작성하며 찾아본 각 라이선스에 대해 알게 된 점들을 포스팅 하고자 합니다.
오픈 소스 SW는 소스코드가 공개되어 있는 SW를 말하며, 일반적으로 자유롭게 사용, 복제, 배포, 수정할 수 있습니다. 1980년대 들어 PC가 널리 보급되면서 SW가 거대한 부가가치 산업으로 발전하였고 지적재산권 및 라이선스 계약을 통해 SW의 사용, 복제, 배포, 수정에 일정한 제한을 가하려는 움직임을 보입니다. 이에 대한 기존의 권리를 지키기 위하여 리차드스톨만은 FSF(Free Software Foundation)을 설립하고 자유SW운동을 전개하게 됩니다. 그러나 자유SW의 자유(Free)라는 단어가 일반인들에게 '무료' 라는 의미로 인식되고 있다는 점, 엄격한 GPL조항 때문에 상용SW개발에 이용할 수 없어 대다수 기업들이 자유SW운동에 참여를 꺼려 한다는 점등을 고려하여 에릭 레이먼드, 브루스 페런스등은 '오픈 소스(OpenSource)'라는 새로운 용어를 제안합니다. 오픈 소스에는 다양한 종류의 라이선스가 있으며 라이선스마다 지켜야 할 최소한의 기준이 정의되어 있습니다. (Open Source Definition, OSD)
라이선스 별로 주요내용과 의무사항 소스코드의 공개범위에 대해 살펴보겠습니다.
1. GPL ( General Public License )
자유소프트웨어재단에서 만든 라이선스로 GNU 프로젝트로
배포하는 소프트웨어에 적용하기 위하여 리처드스톨만이 만들었습니다. 오픈 소스들 중에서 많이 알려져 있고
의무사항들도 다른 오픈 소스 라이선스에 비해 엄격한 편입니다. GPL프로그램은 어떤 목적으로, 어떤 형태로든 사용할 수 있지만 사용하거나 변경된 프로그램을 배포하는 경우 무조건 동일한 라이선스로 공개해야
하며. ”본 제품(SW)은 GPL 라이선스 하에 배포되는 SW인 ○○○ (사용한 GPL SW 이름)를
포함합니다”와 같은 문구를 매뉴얼 혹은 그에 준하는 매체에 포함시키고, GPL 전문을 첨부해야 합니다.
2. AGPL ( Affero General Public License )
GPL을 기반을 만든 라이선스로 버전 1, 2는 Affero, 버전 3은 자유소프트웨어재단에 의해 개발됐습니다. 이 라이선스는 수정한 소스코드를 서버에서만 사용하는 개발자가 그 프로그램을 배포하지 않을 경우 사용자는 소스코드를
가질 수가 없는 문제를 해결하기 위해 마련됐습니다. 서버에서 프로그램을 실행해 다른 사용자들과
통신하면, 실행되고 있는 프로그램의 소스코드를 사용자들이 다운로드 할 수 있게 해야 한다는 조항을 담고
있습니다.
3. LGPL ( Lesser General Public License )
LGPL은 자유소프트웨어재단이 일부 라이브러리(Library)에
대하여 GPL보다 소스코드의 공개 정도를 다소 완화된 형태로 사용할 수 있도록 만든 라이선스입니다. 상용 라이브러리와 동일한 기능을 제공하는
오픈 소스 라이브러리에 GPL과 같은 엄격한 라이선스를 적용하면 소스코드를 공개해야 하기 때문에 개발자들이
사용을 꺼려할 것이기 때문에 이를 막고 오픈 소스의 사용을 장려하기 위해 만들어 졌습니다. LGPL이
적용된 라이브러리는 원 프로그램의 소스코드를 공개하지 않고 이에 사용된 오픈 소스의 소스코드만 공개하면 됩니다.
원래는 한정된 라이브러리에만 적용하려는 의도로 Library GPL이라는 이름을 붙였으나, 모든 라이브러리에 적용된다는 오해를 사 Lesser GPL로 2.1버전에서 변경되었습니다.
4. BSD ( Berkeley Software Distribution )
BSD는 버클리의 캘리포니아 대학에서 배포하는 공개 SW라이선스로 SW의 소스코드를 공개하지 않아도 되는 대표적인 오픈
소스 SW의 라이선스 중 하나입니다. 이렇게 BSD의 라이선스의 허영범위가 넓은 이유는 BSD라이선스로 배포되는
프로젝트가 미국 정부에서 제공한 재원으로 운영되었기 때문입니다. 즉,
SW에 대한 대가를 미국 국민의 세금으로 미리 지불했기 때문에 사람들에게 그들이 원하는 방식으로
SW를 사용하거나 만들도록 허가된 것입니다. 따라서
BSD라이선스의 소스코드를 이용하여 새로운 프로그램을 개발하여도 새로운 프로그램의 소스코드를 공개하지 않고 BSD가 아닌 다른 라이선스를 적용하여 판매할 수 있습니다.
5. MPL ( Mozilla Public License )
MPL은 Netscape브라우저의 소스코드를
공개하기 위해 개발된 라이선스로 공개하여야 할 소스코드의 범위를 좀 더 명확하게 정의하고 있습니다. 즉 GPL에서는 링크되는 SW의 소스코드를 포함하여 공개하여야 할 소스코드의
범위가 모호하게 정의되어 있지만 MPL에서는 링크 등의 여부에 상관없이 원래의 소스코드가 아닌 새로운
파일에 작성된 소스코드에 대해서는 공개의 의무가 발생하지 않습니다. 따라서 MPL SW 그 자체는 어떻게 하든 공개를 해야 하지만 원래 소스코드에 없던 새로운 파일들은 공개할 의무가 발생하지
않습니다.
6. Apache
Apache License는 아파치 웹 서버를 포함한 아파치 재단(Apache
Software Foundation)의 모든 SW에 적용되는 라이선스로 BSD라이선스와 비슷하여 소스코드 공개 등의 의무가 발생하지 않습니다. 다만 "Apache"라는 이름에 대한 상표권을 침해하지 않아야 한다라는 조항이 명시적으로 들어가
있고, 특허권에 대한 내용이 포함되어 있습니다. 아파치 라이선스
소스코드를 수정해 배포하는 경우 아파치 라이선스 버전 2.0을 꼭 포함시켜야 하며 아파치 재단에서 만든
소프트웨어임을 밝혀야 합니다.
7. MIT
MIT는 미국 Massachusetts Institute of
Technology에서 해당 대학 SW 공학도들을 돕기 위해 개발한 라이선스 입니다. 라이선스와 저작권 관련 명시만 지켜주면 되는 라이선스로, BSD라이선스를
기초로 작성되었으며 소스코드를 수정하여 배포 시에도 반드시 오픈 소스로 배포해야 한다는 규정이 없어 GPL등의
엄격함을 피하려는 사용자들에게 인기가 많습니다.
8. 기타
WTFPL (Do What The Fuck You Want To Public
License) 당신이 하고 싶은 대로 마음 것 하라는 라이선스
Beerware 마음대로 사용하고 SW가 마음에 들었다면 언젠가
만났을 때 맥주나 한잔 사달라는 라이센스
image from http://blog.jooq.org/2014/03/03/an-open-source-license-to-increase-your-street-credibility/
라이선스 |
특이 사항 |
GPL |
|
AGPL |
|
LGPL |
|
BSD |
|
MPL |
|
Apache |
|
MIT |
|
참고 URL
1. http://www.bloter.net/archives/209318
2. https://www.olis.or.kr/ossw/license/open_source_guide.pdf
'유용한 정보' 카테고리의 다른 글
The State of Front-End Tooling – 2015 (0) | 2016.03.05 |
---|---|
2015년 하반기 신입사원 합격 스펙 (0) | 2016.02.23 |
2015년 취업시장의 HOT ISSUE (0) | 2015.12.28 |
고국 돌아갈 때 꼭 가져가고 싶은 음식 1위? (0) | 2015.12.17 |
PDF에 대하여 (0) | 2015.11.30 |