요약: 오픈소스로 있는 라이선스들은 특히 npm 라이브러리들은 대체적으로 상업적으로 이용하거나 개작, 2차 라이선스, 특허 신청 등이 전부 가능하다고 생각하면 된다. 부담가지고 검색해가며 쓰지말자.
다만 내가 만드는 프로그램의 특허를 낸다던가, 소스코드가 다른 회사에게 공개되는 것을 원하지 않는다면 사용하고자 하는 오픈소스가 GPL(GNU 일반 공중 사용 허가서), LGPL(GNU 약소 일반 공중 사용 허가서)가 아닌지 확인해둘 필요성이 있다.
공개 소프트웨어 (오픈소스 소프트웨어)
공개 소프트웨어란 누구나 자유롭게 사용, 복제, 수정, 재포 가능한 소프트웨어이다.
그런데 공개라고 해서 무제한적 자유가 있는 것은 아니고 지적재산권으로 보호되고 있기 때문에 해당 라이선스 의무사항을 준수해야 한다.
GNU 일반 공중 사용 허가서
- 가장 강력하다. 오픈 소스 라이선스에서 가장 많이 채택해고 있다.
- 이 라이선스가 있는 오픈소스를 가져다 썼을때 파일을 개작한 사실, 내용 등을 포함시켜야 함
- 수정하거나 새로운 소프트웨어를 링크 (Static 이나 Dynamic 둘 다) 할때 소스코드를 공개하여야 한다!
- GPL로 배포할 경우에 특허 사용료를 받을 수 없다.
- 가져다 쓰면 소스코드 공개해야함.
유명한 프로그램들 리눅스 커널, git, MariaDB등이 GNU 2.0을 채택하고 있다.
그런데 이렇게 강력한 규정을 적용시켜 버리면 이에 대한 반대급부로 가져다 쓰기를 주저하게 됨은 틀림없다.
내가 가져다 쓰기만 해도 내가 만든걸 오픈소스로 공개해야 하니까 부담이 있다.
LGPL (GNU의 라이트 버전)
그래서 나온게 LGPL이다.
- 소프트웨어를 링크 (Static 이나 Dynamic 둘 다) 할때 소스코드를 공개 안해도 된다.
- 링크 하는 경우가 아니고 가져다 쓰는 용도라면 공개해야 한다는 건 변함이 없다.
- 그래도 개작할때 개작할 사실과 그 날짜를 파일안에 담아야 한다.
BSD 라이센스
미국 정부가 재원한 세금으로 만든 것으로 좀 유들유들 하다.
- 소스코드 공개 안해도 된다.
- 그래도 보증 책임이 없다는 면책조항은 표시해 놔야 한다.
Apache License 3.0
아파치 재단의 모든 SW에 적용된다. BSD 라이선스와 비슷해서 공개를 안해도 된다.
- 소스코드 공개 안해도 된다.
- 그래도 보증 책임이 없다는 면책조항은 표시해 놔야 한다.
- 특허는 주장할 수 없음.
MIT 라이센스
가장 많이 쓰이고 있는 라이센스인데, 부담없이 가져다 써도 되는 라이브러리 정도라고 생각하면 된다. NPM에 들어가보면 상당수의 오픈소스들이 MIT를 따르고 있다.
Beerware 라이선스
이건 웃기고 맘에 들어서 그냥 넣어놨다.
라이선스들을 가져다 쓰게 되면서 조심조심하게 되고 내 코드에는 뭘 써야하는지 모르는 경우가 많다.
뭐가 이리 복잡하지? 나같은 일개 개발자들은 그냥 허겁지겁 돌아가는 프로젝트 하나 만들 뿐인데
나와 같은 생각을 가진 사람들이 많았나 보다. Beerware은 그냥 언젠가 만났을 때 맥주 한캔 사주면 된다고 말해놓았다.
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <phk@FreeBSD.ORG> wrote this file. As long as you retain this notice you
* can do whatever you want with this stuff. If we meet some day, and you think
* this stuff is worth it, you can buy me a beer in return Poul-Henning Kamp
* ----------------------------------------------------------------------------
*/
가치가 있다고 생각하면 나에게 한번 맥주나 사줘! 귀찮은거 딱 질색인 프로그래머들에게 100점 만점인 라이센스다.