‘오픈소스’ 는 얼핏보면 프리웨어와 동일한 개념처럼 보입니다. 그리고 오픈소스면 무료이기에 라이선스와는 상관이 없어 보입니다.
하지만 이는 모두 틀린 사실 입니다. 라이선스는 프로젝트를 시작할 때 고려 해야하는 중요한 요소 중 하나 입니다.
이번 포스트에서는 오픈소스란 무엇인지 정리하고 이와 유사한 개념들에 대한 이해를 돕는 내용으로 구성하였습니다.
또한 라이선스에는 무엇이 있고 어떻게 다른지 정리해보았습니다.
해당 포스트를 작성하기 위해 AWS의 가이드와 해외 글 중 무려 700만이 읽은 잘 정리된 글이 있어 해당 글을 참고 하여 정리하였습니다.
해당 원문을 읽고 싶으시면 글 하단의 링크를 확인해주세요.
오픈소스 ?
오픈소스는 소프트웨어의 소스 코드가 공개되어 누구나 해당 코드를 열람하고 수정할 수 있는 소프트웨어 개발 방식을 가리킵니다.
이는 소프트웨어의 자유로운 공유와 협업을 촉진하며, 사용자들이 소프트웨어를 개선하고 발전시킬 수 있도록 하는 원칙을 기반으로 합니다.
오픈소스가 중요한 이유
오픈 소스 프로젝트의 지식 공유와 집단적 혁신은 전체 커뮤니티에 도움이 됩니다. 특허, 저작권과 값비싼 라이선스로 기술을 제한하면 발전이 저해됩니다.
오픈소스 소프트웨어 vs 무료 소프트웨어 vs Freeware
중요한 사실은 “오픈소스 소프트웨어“, “무료 소프트웨어“, “freeware” 및 “public domain“이 비슷해 보이지만 서로 다른 개념이라는 것입니다.
이러한 정의는 소프트웨어 유형을 의미하는 것이 아니라 그 저변에 깔린 가치를 뜻합니다.
무료 및 오픈 소스 소프트웨어, public domain 및 freeware 간의 유사점과 차이점, 알려진 관련 소프트웨어의 몇 가지 예를 평가하려면 아래 표를 확인해보세요
결론은 모두 무료는 맞지만 “어떤 용어를 사용하느냐”에 따라 강조하고 싶은 가치가 다르다는 겁니다.
오픈 소스 라이선스 기준은 소스 코드의 가용성과 이를 수정 및 공유할 수 있는 능력에 중점을 두는 반면, 무료 소프트웨어 및 공개 도메인은 프로그램을 사용하고 수정하고 공유할 수 있는 사용자의 자유에 중점을 둡니다.
Freeware(예: Skype 및 Adobe Acrobat)는 용어상 대부분 “부분 유료화(Freemium)” 제품으로 사용되는 상업적 목표와 잠재적 수익 창출을 목표로 합니다.
Copyright vs Copyleft vs Permissive vs Creative Common
copyleft, permissive와 같은 용어는 오픈 소스, 무료 소프트웨어 및 공개적으로 사용 가능한 기타 콘텐츠의 법적 속성을 독점 라이선스와 비교하는 데 사용됩니다.
Permissive
Permissive licenses는 소프트웨어 사용자에게 최소한의 제한을 둡니다.
종종 그들은 소프트웨어나 소스 코드의 배포나 파생물에 원래 작성자를 표시하도록 요구합니다.
예를 들어, Permissive licenses에 따른 소프트웨어는 소스 코드를 공개하지 않고 다른 독점 소프트웨어에 통합될 수 있으며 새로 생성된 소프트웨어가 배포될 수 있습니다.
permissive open-source는 그 기원 때문에 “교육용” 라이선스라고도 불리며 교육 기관에서 자주 사용됩니다.
Copyleft
자신의 작업에 대한 무제한 오픈 소스 액세스를 보장하려는 소프트웨어 제작자는 Copyleft 개념을 사용합니다.
Copyleft는 저작권의 법적 틀을 사용하여 소프트웨어와 소스 코드에 대한 지속적인 공개 액세스를 보장합니다.
모든 파생 저작물은 원본과 동일한 라이선스 조건에 따라 배포되어야 한다는 핵심 요구 사항입니다.
여기서 말하는 파생 저작물 (derivative work)는 원본의 소스코드를 수정하거나 이를 기반으로 한 파생 제품을 의미 합니다. 단순한 제품의 사용은 소스코드 공개가 필요 없다고 합니다.
Copyleft 라이선스인 MySQL을 예로 들자면, MySQL을 사용하여 웹 어플리케이션을 만들 때에는 일반적으로 해당 어플리케이션의 소스 코드를 공개할 필요가 없습니다.
다만, MySQL 소스 코드를 직접 수정하거나 MySQL을 기반으로 파생된 작품을 만드는 경우에만 소스코드를 공개해야 하는 것 입니다.
이러한 요구 사항으로 인해 Copyleft 라이센스는 “제한적인” 라이센스로 간주되지만 이러한 제한은 개방형 액세스를 보장합니다.
Creative Common
Creative common는 소프트웨어와 함께 사용되는 다양한 콘텐츠(예: 이미지, 비디오, 텍스트 등)에 가장 일반적으로 적용됩니다.
MIT vs BSD vs Apache vs GPL vs LGPL vs AGPL
시장에는 엄청난 양의 다양한 라이선스가 있지만 프로젝트 개발에 자주 사용하는 가장 인기 있는 몇 가지 라이선스만 다룹니다.
다음은 단순화된 비교표와 간략한 개요로 가장 인기 있는 오픈 소스 라이선스를 하나씩 보여줍니다.
Apache
Apache 2.0은 permissive licenses 중에서 가장 현대적이고 균형이 잡혀 있습니다.
현대 저작권 사용 규칙, 특히 특허 관계에 대해 명확하게 설명되어 있습니다.
Apache 라이센스 소프트웨어는 상용 프로젝트에서 무료로 사용할 수 있습니다.
유일한 제한은 상표 사용입니다.
- Apache가 보증한 것처럼 프로젝트 이름을 지정하면 안됩니다.
- 프로젝트나 문서 어디에도 유명한 깃털 로고를 사용하면 안됩니다.
Apache 2.0 소프트웨어의 예: Kubernetes, Swift, Firebase
BSD
BSD(Berkeley Software Distribution)는 처음에는 4개의 장으로 구성된 허용적 라이센스이지만 후에 모든 광고 자료에 저작권 표시를 포함하도록 요구하는 장이 제외되었습니다.
BSD는 대체로 동일한 목표를 달성하는 매우 유사한 언어 및 용어로 인해 MIT와 같은 의미로 언급되는 경우가 많습니다.
BSD 라이센스는 원래 저작권 및 라이센스 요구 사항이 충족되는 한 독점 소프트웨어를 출시하고 이 소프트웨어를 독점 제품에 통합하는 것을 허용합니다.
BSD 소프트웨어의 예: Django, React, Flutter
MIT
이 라이센스는 카피레프트 없이도 허용되며 이미 언급한 대로 BSD와 유사합니다.
MIT 라이센스 조건 및 저작권 고지의 사본을 포함하여 독점 소프트웨어 내에서 재사용을 허용합니다.
MIT의 단점은 특허관계를 규제할 수 없다는 것입니다.
MIT 소프트웨어의 예: Angular.js, jQuery, .Net Core, Laravel
GNU GPL
GNU GPL(General Public License)은 오픈 소스 라이선스 중에서 가장 잘 알려져 있습니다.
이해하기 가장 쉽기 때문이 아니라 주로 여러 번 언급하고 참조했기 때문입니다.
이를 “오픈 라이센스”라고 부르기 때문에 많은 사람들은 GPL에 따라 제공되는 코드가 가능한 모든 방식으로 사용될 수 있으며 이를 사용하여 만들어진 프로그램은 완전히 무료라고 생각합니다.
그러나 사실은 그렇지 않습니다.
GPL은 카피레프트 라이선스입니다. 즉, 모든 파생 저작물은 오픈 소스여야 하고 동일한 라이선스에 따라 배포되어야 하므로 독점 소프트웨어에서 사용하는 것이 부적절합니다.
위에서 이미 언급 했듯이 이는 덜 제한적으로 널리 사용되는 BSD 및 MIT와 같은 permissive 무료 소프트웨어 라이선스와의 가장 중요한 차이점입니다. GPLv2와 GPLv3도 있습니다.
GPL 소프트웨어의 예: Joomla, Notepad++, MySQL
GNU LGPL
GNU LGPL(“Lesser GPL”)은 카피레프트 라이센스로, 파생된 GPL과 매우 유사하지만 카피레프트 요구 사항이 더 약합니다.
특정 상황과 프로젝트 코드의 일부에 독점 프로젝트에 소프트웨어를 적용할 수 있습니다.
LGPL은 일반적으로 GPL과 같은 강력한 카피레프트 라이센스와 BSD 또는 MIT와 같은 허용 라이센스 간의 절충안으로 간주됩니다.
LGPL 소프트웨어의 예: Qt, SharpDevelop
GNU AGPLv3 — Affero General Public License 버전 3
GNU AGPLv3도 역시 카피레프트 라이센스입니다.
그 용어는 사용자가 온라인으로 라이센스 프로그램과 상호 작용하여 프로그램의 소스 코드를 얻을 수 있도록 허용하는 추가 단락이 있는 GPL의 용어와 거의 동일합니다.
따라서 일반적으로 온라인으로 수행되는 상업 프로젝트에는 GNU AGPL을 적용하지 않는 것이 좋습니다.
AGPL 소프트웨어의 예: SugarCRM, Launchpad
참고하면 좋은 글
해당 글은 아래 원문을 참고하여 작성하였습니다.
https://aws.amazon.com/ko/what-is/open-source/
https://moqod-software.medium.com/understanding-open-source-and-free-software-licensing-c0fa600106c9