상현에 하루하루
All 개발자의 하루

✍️ 라이선스 살펴보기

( 업데이트: )

라이선스 상당히 중요한 것이라는 것을 알고있다. 하지만 각각 해당하는 라이선스에 대해서 자세하게 살펴본적이 없다. 내가 만든 패키지 모듈을 배포할때도 사용하게되는 라이선스 한번 짚어보자

TIP

airbnb의 저장소들을 구경하면서 fossa라는 서비스를 알게되었습니다. 나의 저장소에 여러가지 모듈 및 사용하고있는 패키지들에 대해서 어떤 라이선스를 가지고있는지 체크하고 위험할 수 있는 요소는 미리 알려줍니다.


라이선스란?

소프트웨어의 라이선스는 소프트웨어를 사용할 수 있는 권한 또는 제약 사항들을 충족한다면 사용을 허가한다는 내용을 담은 문서

Free Software License

공짜가 아닌 자유

자유의 의미

  • 프로그램을 어떠한 목적을 위해서도 실행할 수 있는 자유
  • 프로그램의 작동 원리를 연구하고 이를 자신의 맞게 변경시킬 수 있는 자유
  • 프로그램을 복제하고 배포할 수 있는 자유
  • 프로그램을 향상시키고 이를 다시 배포할 수 있는 자유

어떠한 프로그램을 재배포 등의 행동은 저작권법에 의해 금지 되지만 해당 라이선스를 사용한다면 소프트웨어의 이러한 제한을 제거할 수 있습니다.

소스 코드의 소프트웨어와 바이너리 개체코드에 적용 합니다.

FSF (Free Software Foundation)

1985년 10월 4일 리처드 스톨만이 설립

FSF는 Free Software 생상과 보급을 장려하기 위해 세워진 재단, 이 재단의 기금은 GNU 프로젝트의 Free Software를 개발하기 위해 Software 개발자를 고용하는 데에 사용되거나 Free Software를 위한 운동, 커뮤니티 등에 대한 법적/구조적 문제에 대한 처리를 하는데 사용됩니다.

GNU, GPL

https://www.gnu.org/licenses/gpl-faq.ko.html

GPL은 General Public License의 약자입니다. 가장 널리 알려진 라이선스인 GUN (General Public License)는 줄여서 GUN, GPL이라고 부릅니다.

라이선스 분류

  • GPL 호환 자유소프트웨어 라이선스 (GPL, LGPL, Apache 2.0 …)
  • GPL 비호환 자유소프트웨어 라이선스 (Apache 1.0, BSD, MPL …)
  • NonFree 소프트웨어 라이선스 (Code Project License, JSON …)

라이선스 종류

GPL

FSF에서 만든 GNU 프로젝트로 배포하는 소프트웨어에 적용하기 위하여 리처드스톨만이 만들었다.

오픈 소스들 중에서 많이 알려져있고 의무사항들도 다른 오픈 소스 라이선스에 비해 엄격한 편이다.

  • 컴퓨터 프로그램을 어떠한 목적으로든지 사용할 수 있다. 다만 법으로 제한하는 행위는 할 수 없다.
  • 컴퓨터 프로그램의 실행 복사본은 언제나 프로그램의 소스 코드와 함께 판매하거나 소스코드를 무료로 배포해야 한다.
  • 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경할 수 있다.
  • 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 반드시 공개 배포해야 한다.
  • 변경된 컴퓨터 프로그램 역시 반드시 똑같은 라이선스를 취해야 한다. 즉 GPL 라이선스를 적용해야한다.
항목여부
저작권 보호
상용 소프트웨어에서 사용 가능
버그 패치 및 기능 확장 제공의 의무
명시적 특허권 행사 가능 여부아니오
사유 프로그램 (소스 비공개 프로그램)에서 사용가능 여부아니오
라이선스 전파 여부

AGPL (Affero General Public License)

GPL을 기반을 만든 라이선스 버전 1, 2는 Affero, 버전 3은 자유소프트웨어재단에 의해 개발됐다.

이 라이선스는 수정한 소스코드를 서버에서만 사용하는 개발자가 그 프로그램을 배포하지 않을 경우 사용자는 소스코드를 가질 수 없는 문제를 해결하기 위해 마련됐다.

서버에서 프로그램을 실행해 다른 사용자들과 통신하면, 실행되고 있는 프로그램의 소스코드를 사용자들이 다운로드할 수 있게 해야 한다는 조항을 담고 있다.

LGPL (The Lesser GNU General Public License)

LGPL은 FSF이 일부 라이브러리에 대하여 GPL보다 소스코드의 공개 정도를 다소 완화된 형태로 사용할 수 있도록 만든 라이선스이다. (GPL의 제약을 완화시킨 라이선스)

사용 라이브러리와 동일한 기능을 제공하는 오픈 소스 라이브러리에 GPL과 같은 엄격한 라이선스를 적용하면 소스코드를 공개해야 하기 떄문에 개발자들이 사용을 꺼려할 것이기 때문에 이를 막고 오픈 소스의 사용을 장려하기 위해 만들어 졌다.

LGPL이 적용된 라이브러리는 원 프로그램의 소스코드를 공개하지 않고 이에 사용된 오픈 소스의 소스코드만 공개하면 된다.

원래는 한정된 라이브러리에만 적용하려는 의도로 Library GPL이라는 이름을 붙였으나, 모든 라이브러리에 적용된다는 오해를 사 Lesser GPL로 2.1버전에서 변경되었다.

LGPL 라이선스를 가지고 있는 라이브러리르 동적 링크할 경우 소스공개 의무가 사라짐

LGPL 라이선스 라이브러리를 수정시에는 수정된 라이브러리 소스는 공개해야 한다.

항목여부
저작권 보호
상용 소프트웨어에서 사용 가능
버그 패치 및 기능 확장 제공의 의무
명시적 특허권 행사 가능 여부아니오
사유 프로그램 (소스 비공개 프로그램)에서 사용가능 여부
라이선스 전파 여부

The BSD (Berkely Software Distribution) License

BSD는 버클리의 캘리포니아 대학에서 배포하는 공개 SW라이선스로 SW의 소스코드를 공개하지 않아도 되는 대표적인 오픈 소스 SW의 라이선스 중 하나이다.

이렇게 BSD의 라이선스의 허용범위가 넓은 이유는 BSD라이선스로 배포되는 프로젝트가 미국 정부에서 제공한 재원으로 운영되었기 때문이다. (미국 공공기관에서 지원. 미국인의 세금으로 만들어진 소프트웨어)

즉, SW에 대한 대가를 미국 국민의 세금으로 미리 지불했기 떄문에 사람들에게 그들이 원하는 방식으로 SW를 사용하거나 만들도록 허가된 것이다. (공공성을 강조)

따라서 BSD라이선스의 소스코드를 이용하여 새로운 프로그램을 개발하여도 새로은 프로그램의 소스코드를 공개하지 않고 BSD가 아닌 다른 라이선스를 적용하여 판매할 수 있다. (소스를 자유롭게 이용, 배포가능)

항목여부
저작권 보호
상용 소프트웨어에서 사용 가능
버그 패치 및 기능 확장 제공의 의무아니오
명시적 특허권 행사 가능 여부아니오
사유 프로그램 (소스 비공개 프로그램)에서 사용가능 여부
라이선스 전파 여부아니오

MPL (Mozilla Public License)

Mozilla 재단에서 MS Explorer 점유율 상승으로 Netscape 소스 공개 결정하고, GPL의 제약과 BSD의 불안감에 의해 새로운 라이선스를 개발했다.

프로그램의 자유로운 사용, 복제, 배포, 수정을 허용한다.

MPL은 Netscape 브라우저의 소스코드를 공개하기 위해 개발된 라이선스로 공개하여야 할 소스코드의 범위를 좀 더 명확하게 정의하고 있다.

즉, GPL에서 링크되는 SW의 소스코드를 포함하여 공개하여야 할 소스코드의 범위가 모호하게 정의되어 있지만, MPL에서는 링크 등의 여부에 상관없이 원래의 소스코드가 아닌 새로운 파일에 작성된 소스코드에 대해서는 공개의 의무가 발생하지 않는다.

따라서 MPL SW 그 자체는 어떻게 하든 공개를 해야 하지만 원래 소스코드에 없던 새로운 파일들은 공개할 의무가 발생하지 않는다.

The Apache License, Version 2.0

아파치 소프트웨어 재단에서 만든 규정이다.

아파치 웹 서버를 포함한 아파치 재단의 모든 SW에 적용되는 라이선스로 BSD 라이선스와 비슷하여 소스코드 공개 등의 의무가 발생하지 않는다.

다만, “Apache”라는 이름에 대한 상표권을 침해하지 ㅇ낳아야 한다라는 조항이 명시적으로 들어가 있고, 특허권에 대한 내용이 포함되어 있다.

아파치 라이선스 소스코드를 수정해 배포하는 경우 아파치 라이선스 버전 2.0을 꼭 포함시켜야 하며 아파치 재단에서 만든 소프트웨어임을 밝혀야 한다.

누구나 해당소프트웨어에서 파생된 프로그램 제작가능, 저작권 양도, 배포 가능이다.

소스 공개 의무 없음

항목여부
저작권 보호
상용 소프트웨어에서 사용 가능
버그 패치 및 기능 확장 제공의 의무아니오
명시적 특허권 행사 가능 여부
사유 프로그램 (소스 비공개 프로그램)에서 사용가능 여부
라이선스 전파 여부아니오

The MIT License

MIT는 미국 Massachusetts Institue of Technology에서 해당 대학 SW 공학도들을 돕기 위해 개발한 라이선스이다.

라이선스와 저작권 관련 명시만 지켜주면 되는 라이선스로, BSD라이선스를 기초로 작성되었으며 소스코드를 수정하여 배포 시에도 반드시 오픈 소스로 배포해야 한다는 규정이 없어 GPL등의 엄격함을 피하려는 사용자들에게 인기가 많다.

항목여부
저작권 보호
상용 소프트웨어에서 사용 가능
버그 패치 및 기능 확장 제공의 의무아니오
명시적 특허권 행사 가능 여부아니오
사유 프로그램 (소스 비공개 프로그램)에서 사용가능 여부
라이선스 전파 여부아니오

출처