방송대 경진대회에 출품할 작품을 계획하다 보니 만들고자 하는 프로그램에 필요한 대부분의 기능이(사실 전부) 오픈소스 라이브러리로 제공되고 있습니다. 그래서 이참에 자세히 알아보고자 포스트를 작성하게 되었습니다.
기본적으로 어떤 창작물을 만들면, 최초 창작자가 저작권을 가지도록 저작권법에 명시되어 있습니다. 저작권법에서 소스 코드는 "컴퓨터프로그램저작물"이라는 용어로 지칭되고 있습니다. 여기에 원 저작자가 자신의 창작물을 다른 사람이 사용할 수 있게 허락하거나, 일정 수준까지만 허락할 수 있도록 라이선스를 부여하게 됩니다.
먼저 어떤 라이선스가 많이 쓰이는지 알아보겠습니다.
2020년 조사 자료이고, whitesourcesoftware.com에서 가져왔습니다.
- 아파치 2.0 - 28%
- MIT - 26%
- GPLv2, 3 - 각 10%
- BSD2, 3 - 각 2%, 5%
- LGPLv2.1 - 4%
- Microsoft Public - 1%
- Microsoft .Net Library - 1%
- LGPL 2.0 - 1%
오픈소스 라이선스의 성격에 따라 Copyleft(or protective)나 permissive라고 부르는데, OSI 웹 사이트에 Copyleft license는 "해당 라이선스를 사용하는 창작물로부터 파생된 창작물에도 같은 라이선스를 적용하도록 하는 라이선스"라고 되어 있습니다. 그리고 permissive는 오픈소스 라이선스 중에 Copyleft가 아닌 것을 가리킨다고 합니다.
이외에 Creative Commons, Public Domain로 저작물을 배포할 수도 있지만, 법적 책임(liability)에 대한 내용이 명시되지 않고(면책 조항), CC의 경우 2차 저작물(파생물, derivatives) 창작이 제한됩니다.
Copyleft license의 대표격인 GPL 라이선스의 용어 정의에는 '"GPL 적용 저작물"은 수정되지 않은 원 프로그램이나 그 프로그램에 기반한 저작물 둘 중의 하나를 의미한다' 고 되어 있습니다.
Lesser GPL도 GPL과 같이 Copyleft license로 분류됩니다. LGPL 라이브러리를 사용한 경우 이를 알려야 하며, 수정본 또한 LGPL로 배포되어야 합니다. 단, 해당 라이브러리를 활용한 소프트웨어의 소스 코드를 공개할 필요가 없습니다.
현재 많이 쓰이는 Apache 2.0, MIT, BSD 라이선스는 permissive license로써 이러한 라이선스로 배포된 소프트웨어는 GPL같은 강제성이 없습니다.
MIT License
명시된 형식으로 저작권 표시와 면책표시를 하면 수정 여부에 관계 없이 재배포, 사용이 가능하다고 되어있습니다.
결론: 저작권 안내문구, MIT 라이선스 문구를 모든 복제본에 포함
BSD License
BSD2는 2절, BSD3은 3절로 구성되어 있습니다.
명시된 형식으로 저작권 표시와 면책표시를 하면 수정 여부에 관계 없이 재배포, 사용이 가능하며, BSD3의 경우 허가 없이 저작권자, 기여자의 이름을 파생제품의 보증/홍보에 사용할 수 없다는 내용이 추가되어 있습니다.
결론: 저작권 안내문구, 준수 조건 및 면책에 대한 안내문구를 소스코드 또는 문서에 포함, 저작권자나 기여자의 이름을 제품에 대한 보증, 홍보에 사용하지 못함(BSD3)
Apache 2.0 License
원 저작자의 코드에 기여하는 경우, 해당 코드도 Apache 라이선스를 따르도록 되어 있습니다.
결론: 라이선스 사본 제공, 수정된 코드에 대한 수정사항을 표시한 안내문구 첨부, 저작권/특허/상표/귀속에 대한 안내문구를 소스 코드 또는 "NOTICE" 파일에 포함