Skip to content

Open Source Licensing

Jaeyong Cheon edited this page Jun 17, 2018 · 2 revisions

Overview

오픈소스 개발이란 프로그램의 소스코드를 공개하는 것을 의미하며, 이러한 개발과정에는 초대받은 개발자들이 자발적으로 참여한다. '오픈소스' 라는 것의 뿌리는 Free Software Foundation 이라는 재단으로부터 출발했다. FSF 에서는 소스코드는 독점적인 것이 아니라 어느 누구에게나 공개되어 사용자가 원하는대로 조사하고 수정할 수 있어야 하는 것이라고 주장했다.

Open Source Business

오픈 소스의 반대말은 close source 이다. 말 그대로 소스코드를 공개하지 않는 방식을 의미한다. 그런데 소스코드를 공개하면 소프트웨어를 개발한 회사는 무슨 수익을 얻고, 무슨 보상을 받으면서 개발을 할 지가 의문이다. 오픈 소스 회사의 수익은 어디서 창출될까? 사실, 오픈 소스 회사는 소프트웨어 그 자체를 판매하려는 것이 아니라, 그 소프트웨어 (여기서는 소스코드 그 자체)를 지원하면서 얻는 수익을 목적으로 운영한다.

Open Source Licensing

소스 코드가 공개되어 있다고 해서, 마음대로 가져다 쓰면 안된다. 바로 오픈소스 라이센스 조건 때문이다. 오픈소스 개발의 가장 기본적인 원칙은 "모두가 자유롭게 이용할 수 있다" 는데 있지만, 그렇다고 이 원칙이 어느 누구나 그들이 원하는 방식대로 이 코드를 이용할 수 있다는 말은 아니다. 정해진 규칙, 합법적인 조건에 맞게 사용해야 함을 의미한다.

License Model

오픈소스를 사용하기 전에 꼭 해당 오픈소스가 어떤 라이센스 정책을 사용하는지를 살펴봐야 한다. 오픈소스 라이센스에는 대표적인 모델 세 가지가 있다. 아마 대부분의 오픈소스들은 지금부터 소개하는 세 모델 범주안에서 라이센스를 제시할 것이다.

GNU GPL License

  • General Public License (GPL) 라이센스 정책을 따르는 오픈 소스는 단 한줄이라도 사용하면 그 모든 소스는 똑같이 공개되어야 하는 정책이다. 즉, 우리 오픈소스를 썼으면 너희도 오픈 소스 소프트웨어가 되어야함을 의미한다.

GNU LGPL License

  • Lesser General Public License (LGPL) 은 일종의 GPL의 변형 라이센스이다. GPL 보다는 규제의 정도가 조금은 덜해서 Lesser 라는 이름이 붙었다.

  • LGPL 정책

    • 소프트웨어를 배포하는 경우 저작권 표시, 보증책임이 없다는 표시 및 LGPL에 의해 배포된다는 사실을 명시
    • LGPL 라이브러리의 일부를 수정하는 경우 수정한 라이브러리의 소스코드 공개
    • LGPL 라이브러리에 응용프로그램을 링크할(정적 및 동적 링크 모두) 경우 해당 응용프로그램의 소스를 공개할 필요 없음. 다만 사용자가
    • 라이브러리 수정 후 동일한 실행 파일을 생성할 수 있도록 정적 링크시에는 응용프로그램의 오브젝트 코드를 제공해야 함
    • 특허의 경우 GPL과 동일함

<참고>

  • Dynamic Link (DLL)

    • Dynamic Link 라 하면, 라이브러리를 활용함에 있어서 DLL 과 같이 run-time 시에 해당 소스에 접근하는 것을 말한다.
  • Static Link (Lib)

    • Static Link 라 하면, 코드 개발 시에 라이브러리를 import 하여 정적으로 접근하는 것을 말한다.

BSD License

  • Berkley Standard Distribution (BSD) 라이센스는 소스코드를 공개하지 않아도 된다는 정책을 가진 대표적인 모델이다. 따라서 내가 만들고자 하는 소프트웨어가 close source system 으로 만들고 싶은데, 오픈소스의 활용이 필요하다면 BSD License 의 오픈소스를 찾아보면 된다.

React

Aiden

Zoe

Gini

Clone this wiki locally