콘텐츠로 건너뛰기

개발자를 위한 오픈 소스 라이센스 바로알기

  • 테크
출처 : https://opensource.guide/legal/

2024년 8월 Elastic.co는 Elasticsearch의 기존 라이센스 정책인 Elastic License 2.0 과 Server Side Public License를 유지하면서 AGPL-3.0을 추가하기로 발표했습니다. 이러한 변화는 AWS에서 Elasticsearch 서비스를 제공하면서도, 이에 대한 비용을 지불하지 않고 수익을 창출했기 때문에 이루어진 결정입니다. Elastic.co 사의 이러한 결정은 오픈 소스의 자유로운 사용과 상업적 이익에서 갈등을 불러일으키게 되었습니다. 이를 계기로 오픈 라이센스에 대한 정의와 종류를 알아보는 시간을 가지도록 하겠습니다.

라이센스란 무엇인가

라이센스는 저작권의 범위와 해석을 명시적으로 표기한 법리적인 약속입니다. 기본적으로 오픈소스의 라이센스는 Open Source Initiative에서 정의한 오픈 소스 소프트웨어의 조건을 준수하며 자유롭게 개방된 소프트웨어 개발이 가능하다는 의미를 포함하고 있습니다.

기본적으로 모든 저작물은 라이센스를 명시하지 않더라도 저작권이 창작자에게 속하며, 저작권자의 허락 없이는 자유롭게 사용할 수 없습니다. 소스 코드 역시 하나의 저작물이며 개인 혹은 법인의 창작물인 만큼, 저작권의 영향 범위를 표기해주는 라이센스를 붙이는 것이 중요해지고 있습니다.

소프트웨어에서 오픈 소스란 소스코드가 공개되어 있는 SW를 말하며, 일반적으로 자유롭게 복제, 배포, 수정을 할 수 있습니다(예: Linux 커널, Apache 웹서버, MySQL 등). 80년대부터 소프트웨어가 거대 부가가치 산업으로 발전하면서 지식 재산권 및 라이센스 계약을 통해 소프트웨어 복제, 배포, 수정에 대한 제한에 움직임이 나타났고, 보다 더 많은 참여를 끌어 내기 위해서 ‘오픈 소스(Open Source)’라는 새로운 용어가 등장하게 됩니다.

오픈 라이센스의 도입 이유

오픈 소스 라이센스는 소프트웨어의 자유로운 사용, 수정, 공유를 장려하면서도 원 저작자의 권리를 보호하기 위해 도입되었습니다. 예를 들어, Elastic은 오픈 소스의 정신을 신뢰하며 소스 코드에 대한 커뮤니티 기여를 중요시하여 ‘OSI 승인 소프트웨어 라이센스’ 와 ‘Elastic License2.0′(ELv2)하에 오픈 소스로 계속 유지하고 있습니다.

주요 오픈 소스 라이센스 알아보기

다음은 소프트웨어에서 가장 많이 쓰이는 라이센스를 알아보도록 하겠습니다.

[그림1] SW 라이센스 분류 https://www.oss.kr/oss_license
GPL (GNU General Public License)

GPL은 자유 소프트웨어 재단(FSF)에서 만든 자유 소프트웨어 라이센스 입니다. 미국의 리처드 스톨만이 GNU 프로젝트로 배포된 프로그램의 라이센스를 사용하기 위해 1985년 작성되었으며, 자유 소프트웨어 재단(FSF)의 설립과 함께 자유 소프트웨어의 생산과 보급을 위한 핵심 라이센스가 되었습니다. GPL 라이센스가 적용된 프로그램의 실행으로 생성 또는 출력된 결과물(리포트, 통계, 별도의 프로그램 등) 에는 GPL 라이센스가 전파되지 않으며, 개인적으로 복사본을 만들어 사용하는 경우 변경 사항을 공유할 필요가 없습니다. 추가로 GPL 라이센스가 적용된 코드를 수정하여 외부에 배포할 경우에는 해당 소프트웨어의 전체 소스 코드를 공개해야 합니다.

LGPL

LGPL은 GPL의 조건이 너무 엄격하여 사람들이 사용하기 어려움을 고려하여 만든 라이센스입니다. GPL과는 다르게 LGPL 라이브러리에 응용프로그램을 정적 혹은 동적으로 연결하여도 응용프로그램의 소스 코드를 공개할 필요가 없습니다. 라이브러리의 복제본을 무상이나 유상으로 배포할 경우 모든 권리를 수취인에게도 그대로 부여하게 되는 요구 조건만 준수하면 상업적인 유상 배포도 허용하고 있으며, 자기가 만든 소스 코드를 공개 없이 상용 제품으로 판매하여도 무방합니다.

Apache License

ASF(Apache Software Foundation)는 Apache 라이센스를 사용하면 선택한 모든 라이센스에 따라 제품의 수정된 버전을 출시할 수 있습니다. 또한 개인용, 내부용 또는 상업용 사용 사례와 관계없이 Apache 라이센스에 따라 소프트웨어를 자유롭게 사용, 수정, 배포 및 판매할 수 있음을 의미합니다. 저작권과 특허 모두 적용할 수 있는 권리를 사용자에 명시적으로 부여하고 있으며, 이렇게 부여된 권리는 영구적이고 전 세계적으로 적용됩니다.

Microsoft Public License (Ms-PL)

Ms-PL은 마이크로소프트사가 자체 오픈 소스 프로젝트를 위해 출시한 무료 오픈 소스 소프트웨어 라이센스이며, Ms-PL이 적용되는 모든 소프트웨어의 원본 또는 파생 저작물을 자유롭게 복제하고 배포할 수 있습니다.
명시적인 보증이나 보장을 명시적으로 제공하지 않음으로써 소프트웨어의 작성자를 보호하고 있으며, 이것은 어떤 경우에 코드가 제대로 작동하지 않더라도 작성자가 책임을 지지 않음을 의미합니다.

Berkely Software Distribution( BSD)

BSD는 permissive 라이센스이며, BSD 라이센스를 사용하면 저작권 고지, 조건 목록 및 면책 조항의 사본을 보유하는 한 소프트웨어 코드를 소스 또는 바이너리 형식으로 자유롭게 수정하고 배포하는 것이 가능합니다.

MIT 라이센스

MIT 라이센스는 오픈소스에서 가장 널리 사용되는 라이센스 중 하나로, 매우 유연하고 존재하는 거의 모든 라이센스와 호환되는 특징이 있습니다. 이 라이센스 하에서는 누구나 무상으로 제한 없이 소프트웨어를 사용할 수 있으며, 저작권 표시와 허가 문구를 소프트웨어의 모든 복제물이나 중요한 부분에 포함시키기만 하면 됩니다. 또한 소프트웨어와 관련된 책임 문제에 대한 면책 조항이 포함되어 있습니다.

리포지토리 라이센싱

Github 문서에 의하면, 라이센스가 없으면 기본 저작권법이 적용되며, 라이센스를 선택함으로써 코드의 모든 권리는 작성자가 가지고 다른 사람이 이를 복제, 배포, 재생산을 할 수 없습니다. 따라서 오픈소스 프로젝트의 경우 오픈 소스 라이센스를 권장하고 있습니다. 이는 Public Repository 범위에 한정합니다.

[그림2] Github Repository License 선택
출처 : 비즈스프링

대부분의 Repository의 루트 경로에 ‘LICENSE.txt(또는 LICENSE.md 나 LICENSE.rst) 라이센스의 텍스트를 아래와 같이 배치할 수 있습니다. 일부 프로젝트에는 추가 정보에 라이센스에 대한 정보가 포함될 수 있습니다.

[그림3] Hubot License Example
출처 : https://github.com/hubotio/hubot/blob/main/LICENSE.md

결론

오픈소스 라이센스는 소프트웨어의 자유로운 사용과 개발자의 권리 보호 사이의 균형을 맞추는 도구이며, 라이센스에 따라 사용 범위와 의무 사항이 달라지므로 소프트웨어를 개발하거나 사용할 때 해당 라이센스의 조건을 정확히 이해하고 준수하는 것이 중요합니다. 특히 GPL과 같은 강한 Copyleft 라이센스의 경우, 소스 코드 공개 의무 등 엄격한 조건이 다르므로 주의가 필요합니다. 따라서 이에 따라 오픈 라이센스의 대한 정확한 이해를 통해 소프트웨어 개발에 알맞는 라이센스의 조건을 명시하고 활용하는 것이 좋겠습니다. 감사합니다.

References


최신 마케팅/고객 데이터 활용 사례를 받아보실 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다