본문 바로가기
애자일(Agile)개발방법론

[ETC] 오픈소스 라이센스 정리 (GPL, LGPL, BSD, MIT 이란?)

by swconsulting 2015. 3. 9.

약 4~5년 전부터 오픈소스를 사용하면서 생각이 정말 많이 바뀌었습니다. 오픈소스를 잘 사용하는 것이 프로그램 개발 잘하는 것 만큼 중요하다. 


오픈소스 사용하기 전에 각 라이센스 의미를 잘 파악하고 라이센스를 준수해야 합니다.


아래 내용은 구글 검색을 통해서 여러 사이트에서 찾은 내용을 정리한 것입니다.


<출처 >

http://darkpgmr.tistory.com/89

- KLDP 오픈소스 SW 라이센스 가이드: http://wiki.kldp.org/wiki.php/OpenSourceLicenseGuide

- 위키 : http://ko.wikipedia.org/wiki/MIT_%ED%97%88%EA%B0%80%EC%84%9C


GNU GPL(General Public License)


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

 유료로 판매하는 것은 가능하지만, 반드시 전체 소스코드는 무료로 공개해야 합니다.


GPL 관련하여 한가지 햇갈리기 쉬운 점이 있는데, 그건 자신이 개발한 SW에서 GPL 코드를 일부만 사용한 경우입니다.

GPL 전문에 보면, '만일 배포하고자 하는 프로그램의 특정 부분이 GPL 코드로부터 파생된 것이 아닌 독립적인 저작물일 경우에는독립 저작물 모듈의 개별적인 배포에는 GPL이 적용되지 아니한다 (즉, 코드를 공개할 필요가 없다). 

하지만 프로그램을 전체(GPL코드에서 파생된 모듈 + 독립 저작물 모듈)적으로 배포할 때에는 GLP을 따라야 한다.' 고 되어 있습니다.


 'GPL과 관련되지 아니한 부분만 독립적으로 팔거나 배포하는 경우는 관계가 없다. 하지만 GPL 코드를 일부라도 사용한

 프로그램 전체를 배포할 때에는 GPL을 적용(즉, 프로그램의 전체 소스코드 공개)해야 한다'는 말이겠네요. 상당히 강도가 세군요.


GNU LGPL(Lesser General Public License)


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


가장 큰 차이점은 LGPL 코드를 정적(static) 또는 동적(dynamic) 라이브러리로 사용한 프로그램을 개발하여 판매/배포할 경우에 프로그램의

 소스코드를 공개하지 않아도 된다는 점입니다. LGPL 코드를 사용했음을 명시만 하면 됩니다.


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

 공개해야 합니다.


BSD (Berkeley Software Distribution) 라이센스


소스코드 공개의 의무가 없으며 상용(상업적) 소프트웨어에서도 무제한 사용 가능한 라이센스라고 하는데.. 그렇다면 아무런 제한이 없는

 라이센스라는 의미겠네요.


참고로 OpenCV는 BSD 라이센스를 따릅니다. GPL 정신에는 맞지 않겠지만 쓰는 사람 입장에서는 정말 편하네요..


MIT License

BSD 라이선스를 기초로 작성된 BSD계열 라이선스 중의 하나입니다.

MIT 허가서는 미국의 매사추세츠 공과대학교에서 자기 학교의 소프트웨어 공학도들을 돕기 위해 개발한 허가서입니다.

MIT 허가서를 따르는 소프트웨어를 개조한 제품을 반드시 오픈 소스로 배포해야 한다는 규정이 없으며, GNU 일반 공중 허가서의

엄격함을 피하려는 사용자들에게 인기가 있습니다.



정리를 하면 모든 오픈소스를 사용했으면 기본적으로 메뉴얼 또는 About 같은 곳에 사용했음을 알려야 합니다.

그리고 BSD, MIT 일경우에는 코드 및 모듈을 사용해도 되고 소스를 오픈할 필요가 없습니다.GPL 라이센스일 경우에는 위에 설명한 내용을 참고해서 사용해야 할것 같습니다.