본문 바로가기
Deep Learning/연구.개발 관련 지식들

오픈소스 소프트웨어 라이센스의 종류와 제약

by Steve-Lee 2020. 2. 6.

오픈소스 소프트웨어 라이센스의 종류와 제약

들어가며

이번 기회에 개발을 할 때 몇 번씩은 보게 되는 오픈소스 라이센스에 대해 알아보자

오픈소스 라이센스를 어떻게 이용해야 하는지 숙지할 수 있도록 하자

그대로 정리하면 될 듯 싶다
++ 여기에 아래의 링크 내용을 추가하면 될 듯 싶다
https://www.olis.or.kr/license/compareGuide.do

오픈소스 소프트웨어란 무엇인가?

오픈소스 소프트웨어란 소스코드가 공개되어 있는 소프트웨어를 말하며, 일반적으로 자유롭게 사용, 복제, 배표, 수정할 수 있다. 오픈소스 소프트웨어의 대표적인 예로는 Linux 커널, 아파치 웹서버, FireFox 웹 브라우저, MySQL 등이 있다.

오픈소스 소프트웨어 라이센스

(일종의 시장논리랄까...) 1980년대 소프트웨어 시장이 커짐에 따라, 지적재산권 및 라이센스 계약을 통해 소프트웨어의 사용, 복제, 배포, 수정을 제한하려는 움직임이 나타남.

"난 이런 제도 반대일세"

이러한 움직임에 반대하여 Richard Stallman은 FSF(Free Software Foundation)을 설립하고 자유(Free)소프트웨어 운동을 시작함.

⇒ Free Software 운동!

하지만 자유(Free)라는 단어가 사용자들에게 '무료'로 인식되고, 엄격한 조항 때문에 많은 기업들이 참여를 꺼려하자 에릭 레이먼드, 브루스 페런등은 '오픈소스(Open Source)'라는 새로운 용어를 제안하고 사용하기 시작함

⇒ 무료는 아닌데 무료로 인식되었던 오픈소스

1998년, OSI(Open Source Initiative)가 결성되고, 오픈소스 소프트웨어가 활성화되면서 지금까지 여러 오픈소스 라이센스가 사용되고 있다.

OSI는 해당하는 라이센스의 최소한의 기준을 정의(Open Source Definition, OSD)해놓고 이 정의에 따라 인증, 관리 및 촉진시키는 일을 하고 있다.

⇒ 1998년 OSI(Open Source Initiative)가 결성되다!

그리하여 등장한 다양한 오픈소스 라이센스들...

다양한 오픈소스 라이센스

  • GNU General Public License(GPL) 2.0
  • GNU Lesser GPL(LGPL )2.1
  • Berkeley Software Distribution(BSD) License
  • Appache License
  • Mozilla Public License(MPL)
  • MIT License

⇒ 이들 라이센스가 의미하는게 무엇인가?

GNU GPL 2.0

GPL은 현재 가장 많은 오픈소스 소프트웨어가 채택하고 있는 라이센스이다.

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

  • 소프트웨어를 배포하는 경우 저작권 표시, 보증책임이 없다는 표시 및 GPL에 의해 배포된다는 사실 명시
  • 소프트웨어를 수정하거나 새로운 소프트웨어를 병합(Dynamic linking 포함)시키는 경우, GPL에 의해 소스 코드 제공
  • GPL 소프트웨어를 배포하는 경우, 소스 코드 그 자체를 함께 배포하거나 소스코드를 제공받을 수 있는 방법에 대한 정보를 함께 제공

GNU Lesser GPL(LGPL) 2.1

GPL 라이센스를 사용하기만 해도 소스코드를 공개해야 한다는 부담 때문에 라이브러리와 모듈로의 링크를 허용한 라이선스이다

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

⇒ 잠깐! 여기서 'Lesser란?' → (크기.양.중요성이) 더 적은, 덜한

  • 소프트웨어를 배포하는 경우, 저작권 표시, 보증책임이 없다는 표시 및 LGPL에 의해 배포된다는 사실 명시
  • LGPL Library의 일부를 수정하는 경우 수정한 Library를 LGPL에 의해 소스코드 공개

Berkeley Software Distribution(BSD) License

BSD 라이센스는 GPL/LGPL보다 덜 제한적이기 때문에 허용 범위가 넓다.

가장 큰 차이점은 소스코드를 공개하지 않아도 된다는 점이다.

  • 소프트웨어를 배포하는 경우 저작권 표시, 보증 책임이 없다는 표시
  • 수정 프로그램에 대한 소스 코드의 공개를 요구하지 않기 때문에 상용 소프트웨어에 무제한 사용가능

Appache License

아파치 소프트웨어 재단에서 자체적으로 만든 소프트퉤어에 대한 라이센스 규정이다.

아파치 재단(ASF: Apache Software Foundation)의 모든 소프트웨어에 적용되며 BSD 라이센스와 비슷하여 소스코드 공개 등의 의무가 발생하지 않는다.

다만 "Apache"라는 이름에 대한 상표권을 침해하지 않아야 한다는 조항이 명시적으로 들어가 있고, 특허권에 관한 내용이 포함되어 BSD 라이센스보다는 좀 더 법적으로 완경된 내용을 담고 있다.

특히 GPL 2.0 으로 배포되는 코드와 결합되는 것이 어렵다는 문제가 있는데...GPL 3.0에서는 이 문제를 해결하여 아파치 라이센스로 배포되는 코드가 GPL 3.0으로 배포되는 코드와 결합하여 사용하는 것이 가능해졌다.

MIT Lisense

MIT 라이센스는 미국 매사추세츠공과대학교(MIT)에서 해당 대학 소프트웨어 공학도들을 돕기 위해 개발한 라이센스이다. 라이센스와 저작권 관련 명시만 지켜주면 되는 라이센스이다.

  • 이 소프트웨어를 누구라도 무상으로 제한 없이 취급해도 좋다.
  • 저자 또는 저작권자는 소프트웨어에 관해서 아무런 책임을 지지 않는다.

.

.

.

좀 더 찾아보았다...!

공개 SW 가이드/보고서

[칼럼] GPL 라이선스의 이해 - 공개SW 포털

GPL 라이선스의 이해

  • 공개 SW라이선스란?

    공개 SW라이선스란 공개 SW 개발자와 이용자 간의 사용 방법 및 조건의 범위를 명시한 계약을 말한다. 따라서 공개 SW를 이용하렴녀 공개 SW개발자가 만들어놓은 조건의 범위에 따라 소프트웨어를 사용해야 하며, 이를 위반할 경우에는 라이선스 위반 및 저작권 침해로 이에 대한 법적 책임을 져야 한다.

    ⇒ 아! 공개 SW를 사용하기 위해서 지켜야할 일종의 '룰(Rule)' 같은 것이구나!

    → 공개 SW 개발자가 만들어 놓은 조건의 범위에 따라 소프트웨어 사용

    → 위반 시 라이선스 위반 및 저작권 침해로 이에 대한 법적 책임을 부담

    공개 SW 개발자들이 만들어 놓은 규칙에 따라 사용해야 하며
    이를 어길 시 법적 책임을 부담해야 한다.

SW 라이선스 분류

  • 대표적인 공개 SW라이선스로는 GPL, LGPL, Apache, License, BSD License등이 있다.

GPL(General Public License)은 소스코드 공개에 대한 해석이 까다로운 라이선스 중 하나이다

GPL의 소스코드 전체 혹은 일부를 사용했거나, 소스코드가 아닌 형태(라이브러리, 바이너리 코드 등)를 경합/연결했다면 어디부터 어디까지 소스코드 공개를 해야 하는지 의문이 발생한다.

GPL 라이선스의 이해II

공개 SW 라이센스 GPL, LGPL, BSD

인터넷에 공개된 코드나 라이브러리 등을 보면 대부분 GPL 또는 LGPL 라이센스를 가지고 있는데, 개인적으로 어떤 것인지 알아둬야 할 것 같아서 정리해봅니다.

GPL, LGPL 도대체 이게 뭐야?

GNU GPL(General Public License)

  • 기본적으로 어떤 프로그램을 개발할 때, GPL 코드를 일부라도 사용하게 되면 그 프로그램은 GPL이 된다.

  • GPL을 가진 프로그램을 유료로 판매하는 것은 가능하지만, 반드시 전체 소스코드는 무료로 공개해야 한다.

  • GPL 코드를 사용한 SW를 내부적인(개인, 기관 또는 단체 등) 목적으로만 사용할 때에는 소스코드를 공개할 필요가 없지만 어떤 형태로든(유료든 무료든) 외부에 공표/배포할때에는 전체 소스코드를 공개해야 한다.

⇒ 즉, 프로그램을 외부에서 사용하고자 할 경우(외부 공개 또는 판매를 목적으로) 반드시 GPL 규정에 따라서 프로그램의 전체 소스코드를 무료로 공개해야 한다.

  • GPL 관련 오해

    자신이 개발한 SW에서 GPL코드를 일부만 사용한 경우는 어떻게 될까?

GNU LGPL(Lesser General Public License)

  • LGPL은 GPL보다는 훨씬 완화된(lesser) 조건의 공개 소프트웨어 라이센스이다.

  • 가장 큰 차이점

    LGPL 코드를 정적(static) 또는 동적(dynamic)라이브러리로 사용한 프로그램을 개발하여 판매/배포할 경우에 프로그램의 소스코드를 공개하지 않아도 된다는 점이다. 즉 LGPL 코드를 사용했음을 명시하기만 하면 된다.

    단, LGPL 코드를 단순히 이용하는 것이 아니라 이를 수정 또는 이로 파생된 라이브러리를 개발하여 배포하는 경우에는 전체 코드를 공개해야 한다.

BSD (Berkeley Software Distribution) 라이센스

소스코드 공개의 의무가 없으며 상용(상업적) 소프트웨어에서도 무제한 사용 가능한 라이센스이다.

OpenCV는 BSD 라이센스를 따른다.

 

모두를 위한 cs231n (feat. 모두의 딥러닝 & cs231n)

cs231n 시작합니다! 안녕하세요. Steve-Lee입니다. 작년 2학기 빅데이터 연합동아리 활동을 하면서 동기, 후배들과 함께 공부했었던 cs231n을 다시 시작하려고 합니다. 제가 공부하면서 느꼈던 점들과 중요하다고..

deepinsight.tistory.com

 

AWS Summit Seoul2019:: Innovation Day - AWS는 어떻게 소매시장을 혁신시키는가?

안녕하세요 Steve-Lee입니다. 지난날에 이어 AWS Summit Seoul 2019에 다녀온 후기를 남기려고 합니다. 오늘의 주제는 Innovation입니다. 혁신, 살면서 숱하게 들어온 말인데요. 4차 산업 혁명 시대의 도래와 함..

deepinsight.tistory.com

 

참고문서

https://www.olis.or.kr/ossw/license/introduction.do

http://guswnsxodlf.github.io/software-license

http://wiki.kldp.org/wiki.php/OpenSourceLicenseGuide

https://www.olis.or.kr/license/compareGuide.do

 

라이선스 비교표

Python Software Foundation License 2.0.1, 2.1.1 and newer Yes Yes

www.olis.or.kr

https://darkpgmr.tistory.com/89

댓글