Jello's development blog

Jello's development blog

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

들어가며

개발을 하게 되면 여러 오픈소스들을 가져다가 사용하는 일이 많다. 오픈소스마다 라이센스가 있었는데, 이를 확인하지 않고 아무렇게나 이용했었다. 또한 내가 무엇을 만들 때에도 라이센스를 적는 란에 무엇을 적어야 하는지 모르고 그냥 ‘UNLICENSED’라고 적고 넘어갔다. 이번 기회에 개발을 할 때 몇 번씩은 보게 되는 오픈소스 라이센스에 대해서 포스팅하면서, 오픈소스 라이센스를 어떻게 이용해야 하는지 숙지해야겠다.

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

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

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

1980년대에 소프트웨어 시장이 커짐에 따라서, 지적재산권 및 라이센스 계약을 통해 소프트웨어의 사용, 복제, 배포, 수정을 제한하려는 움직임이 나타났다. 이런 움직임에 반대하여 리처드 스톨만(Richard Matthew Stallman)FSF(Free Software Foundation)을 설립하고 자유(Free) 소프트웨어 운동을 시작했다.

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

그 후 1998년, OSI(Open Source Initiative)가 결성되고, 오픈소스 소프트웨어가 활성화되면서 지금까지 여러 오픈소스 라이센스가 사용되고 있다. OSI는 오픈소스에 해당하는 라이센스의 최소한의 기준을 정의(Open Source Definition, OSD)해놓고 이 정의에 따라 인증, 관리 및 촉진시키는 일을 하고 있다.

GNU General Public License(GPL) 2.0

GPL은 현재 가장 많은 오픈소스 소프트웨어가 채택하고 있는 라이센스이다. 오픈소스 라이센스들 중에서 가장 많이 알려져 있고 의무사항들도 타 라이센스에 비해 엄격한 편이다.

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

GNU Lesser GPL(LGPL) 2.1

GPL 라이센스를 사용하기만 해도 소스코드를 공개해야 한다는 부담 때문에 단순한 라이브러리와 모듈로의 링크를 허용한 라이선스이다. 원래는 한정된 라이브러리에만 적용하려는 의도로 ‘Library GPL’이라는 이름을 붙였으나, 모든 라이브러리에 적용된다는 오해를 사 2.1 버전으로 ‘Lesser GPL’로 변경됐다.

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

Berkeley Software Distribution(BSD) License

BSD 라이센스는 GPL/LGPL보다 덜 제한적이기 때문에 허용 범위가 넓다. 가장 큰 차이점은 소스코드를 공개하지 않아도 된다는 점이다.

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

Apache License

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

아파치 라이센스는 아파치 재단(ASF: Apache Software Foundation)의 모든 소프트웨어에 적용되며 BSD 라이센스와 비슷하여 소스코드 공개 등의 의무가 발생하지 않는다. 다만 “Apache”라는 이름에 대한 상표권을 침해하지 않아야 한다는 조항이 명시적으로 들어가 있고, 특허권에 관한 내용이 포함되어 BSD 라이센스보다는 좀더 법적으로 완결된 내용을 담고 있다. 특히 GPL 2.0으로 배포되는 코드와 결합되는 것이 어렵다는 문제가 었었는데, GPL 3.0에서는 이 문제를 해결하여 아파치 라이센스로 배포되는 코드가 GPL 3.0으로 배포되는 코드와 결합하는 것이 가능해졌다.

Mozilla Public License(MPL)

MPL은 Netscape 브라우저의 소스코드를 공개하기 위해 개발된 라이센스이다. MPL에서는 링크 등의 여부에 상관없이 원래의 소스코드가 아닌 새로운 파일에 작성된 소스코드에 대해서는 공개의 의무가 발생하지 않는다.

  • 소프트웨어를 배포하는 경우 저작권 표시, 보증책임이 없다는 표시 및 MPL에 의해 배포된다는 사실을 명시
  • MPL 코드를 수정한 부분은 다시 MPL에 의해 배포
  • MPL 코드와 다른 코드를 결합하여 프로그램을 만들 경우 MPL 코드를 제외한 결합 프로그램에 대한 소스코드는 공개할 필요가 없음
  • 소스코드를 적절한 형태로 제공하는 경우, 실행파일에 대한 라이센스는 MPL이 아닌 다른 것으로 선택가능
  • 특허기술이 구현된 프로그램의 경우 관련 사실을 ‘LEGAL’파일에 기록하여 배포

MIT License

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

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

참고문서