오픈소스 라이센스의 종류과 적용범위
오픈소스를 살펴보면 누구나, 가져다가 사용해볼 수 있고 원한다면 기여도 해볼 수 있다.
이러한 오픈소스는 학습 목적으로는 상관없지만, 회사 프로젝트에 적용하여 상용으로 활용하려는 순간 주의해야할 부분이 몇개 있는 듯 하여, 생각날때마다 보려고 이렇게 글로 정리해본다.
소프트웨어 라이센스?
소프트웨어 라이센스는 소프트웨어를 사용, 수정, 배포할 수 있는 권한을 규정하는 계약을 일컫는다. 소프트웨어 라이센스의 종류는 다음과 같다.
- 상용 소프트웨어 라이센스 : 사용자가 소프트웨어를 구매하여 사용할 수 있는 라이센스이다. 대표적으로 윈도우 OS, 오피스 스위트, 어도비의 포토샵 오라클 등이 있다.
- 오픈 소스 소프트웨어 라이센스 : 소스 코드를 공개하고 누구나 수정하고 배포할 수 있는 라이센스다. 대표적으로는 GNU GPL, Apache License, MIT License 등이 있다.
- 프리웨어 라이센스 : 소프트웨어를 무료로 사용할 수 있지만 수정 및 배포는 금지되어 있는 라이센스다. 대표적으로 노턴 백신의 무료 버전인 노턴 보안이 있다.
- 클라우드 서비스 라이센스 : 클라우드 서비스를 제공하는 회사가 제공하는 라이센스이다. 이러한 라이센스는 일반적으로 사용자가 소프트웨어를 설치하거나 유지보수 할 필요가 없으며, 사용시 요금을 지불한다.
- 기부금 라이센스 : 소프트웨어를 사용할 때 자유로운 결제를 할 수 있는 라이센스다. 대표적으로는 파이어폭스 브라우저가 있다.
대략 5가지의 라이센스가 있는데, 여기서 가장 애매한게 오픈 소스 라이센스다. 누구나 수정하고 배포할 수 있는데, 만약 이걸로 이윤 추구를 하려는 순간 문제 없다는 내용은 없기에 한번 더 조사해볼 필요는 있다.
오픈 소스 소프트웨어 라이센스의 종류
- GNU 일반 공중 사용 허가서(GNU GPL):
- 소스 코드 공개 필요 O, 동일한 라이센스 적용 O, 상업적 이용 O
- 개발자 사이에선 매우 악명 높은 라이센스로 법적인 효력까지 갖춘 라이센스로 상업적으로 이용할 경우, 많은 주의를 요구한다.
- GPL 라이센스라고도 불리며, '자유를 누린 만큼 너의 코드도 공개하라'는 원칙을 가지고 있다.
- 소프트웨어의 소스 코드를 공개하고 누구나 자유롭게 사용할 수 있으며, 수정한 소스 코드를 공개해야 한다. 이 라이센스는 많은 오픈 소스 프로젝트에서 사용되며, 이러한 프로젝트의 소스 코드는 대개 GNU GPL 라이선스를 사용된다.
- 아파치 라이센스(Apache License):
- 소스 코드 공개 필요 X, 동일한 라이센스 적용 X, 상업적 이용 O
- 아파치(Apache) 소프트웨어 재단에서 자체적으로 만든 라이센스이다.
- 소스코드 사용자에게 특허의 무제한적 사용을 허용하는 라이센스로 누군가 소스코드를 무료로 제공해놓고 나중에 특허 사용료를 요구하는 그런 못된 짓을 막기위해 만든 라이센스라고도 한다.
- 소스 코드를 공개할 필요가 없고, 법적인 안전장치까지 있어서 개발자들이 꽤 선호하는 라이센스들 중 하나이다.
- BSD 라이센스:
- 소스 코드 공개 필요 X, 동일한 라이센스 적용 X, 상업적 이용 O
- BSD 계열, 즉, 버클리 대학에서 개발한 운영체제인 유닉스계열의 소프트웨어에서 주로 채택하고 있는 라이센스다.
- 소스코드 공개의무 없이 자유로운 사용과 상업적 이용이 가능하다. 그러나 해당 라이센스의 소프트웨어를 사용함으로서 발생하는 리스크는 본인이 책임지도록 고지하고 있다. 책임 회피형 라이센스이기도 하다.
- MIT 라이센스:
- 소스 코드 공개 필요 X, 동일한 라이센스 적용 X, 상업적 이용 O
- 메사추세스 공과대학에서 만든 소프트웨어 라이센스이다. BSD를 기초해서 만든 라이센스로 세부 규정은 거의 동일하다.
- BSD와 마찬가지로 소스 코드를 공개할 필요도 없고 손해에 대한 책임도 지지 않는다. BSD 계열의 소프트웨어에서 일반 소프트웨어로 옮겨오기 위해 만든 라이센스 정도로 생각하면 될 것 같다.
오픈소스 라이센스는 학습이 목적인 개발자들에게는 사실 크게 구분할 필요는 없지만, 상업적 이용시 해당 라이센스의 세부내용에 따라 크고작은 법적 분쟁에 휘말릴 수 있다.
GPL의 경우, '누린만큼 베풀어라'의 철학이 담긴 뜻깊은 라이센스라 개인적으로는 긍정적으로 받아들여지지만, 소스 코드를 비공개하여 원하는 상용 소프트웨어를 제공해야하는 회사의 경우, GPL은 너무 불리할 수 있다.
그러나 유료 GPL 소프트웨어의 경우 재판매도 가능하고 무료 GPL 소프트웨어의 소스코드를 수정해서 유료료 재판매가 가능하다는 장점이 있다. 즉, GPL 프로그램 개발자, 판매자에게는 해당 라이센스가 유리하다.
BSD의 경우 매우 자유롭지만 4조항(4-clause)이상의 라이센스의 경우, 저작권자 표기 조항으로 인해 GPL과 호환이 되지 않는다. 즉, 비공개 소스코드로 상업 활동에는 유리할 수 있지만, 경우에 따라 라이센스를 활용한 소프트웨어 재판매가 힘들어질 수 있다는 것이다.
만약 MIT 라이센스의 소스코드를 가져다 썼어도, 해당 소스코드의 일부가 GPL 기반의 라이브러리를 사용했다면 결과적으로는 MIT 소스코드를 사용했어도 GPL의 제약을 따라야할 수도 있다.
정리하자면, 오픈소스 라이센스가 일반적으로는 무료로 누구나 사용하는 것이 주 목적이지만, 상업적으로 이용할 경우 전문가와 상담이 필요할 정도로 매우 복잡해진다.
특별히 검토하지 않아도 될만한 라이센스의 경우, 자유로운 이용에 법적 안전장치까지 마련된 Apache 라이센스 정도가 있겠다.(국내에 스프링 기반의 개발자들이 많은 이유일지도..?)
출처: