며칠간 유니티 가격정책(https://www.asiatime.co.kr/article/20230918500098#_mobwcvr)
때문에 논란(?)이 있었다.
그래서, 급하게 현재 프로젝트 사용중인 QT에 대한 라이선스에 대해서 다시 점검을 하였습니다.
1. 라이선스
- 이해하기 쉽게 관점을 "내 코드(제품)를 오픈해야 하는가?"로 설정, 오픈하기 싫으면 비용을 지불
1.1 GPL (라이센스 라이브리) 사용
- 상용, 비상용 여부를 떠나서 부분 공개가 아닌 2차 저작물 전체 공개가 원칙
- 사용방법(정적링크과 동적링크)에 상관없이 2차 저작물의 전체 소스공개의 의무가 있음.
(단, 배포하지 않는다면, 즉, 나 혼자 사용한다면 아무도 모르는데 공개할 필요 없겠죠^^)
경험담)
웹서비스 개발 초기에 GPL 라이선스때문에 이슈(?)가 있었음
즉, GPL이 적용된 componet를 사용하여 웹서비스를 개발하면, 웹서비스 코드 전체 공개의무?
결론은 공개할 필요 없다. 왜냐면, 웹서비스를 사용하는 사용자 PC에 배포되는 것이 아니다.
하지만, 지금은 AGPL(Affero General Public License), OSL(Open Software License)등 라이센스가 생기면서,
웹서비스 개발에도 배포로 보아 코드 전체 공개 의무가 생김(잘 살펴봐야 함)
결론, GPL은 절대사용하지 말아라.
1.2 LGPL (라이선스 라이브리) 사용
- GPL이 너무 타이트(?)하다 보니, 사용방법에 따라 공개의무 결정과 변경된 부분만 공개하는 LGPL 라이선스 생김
- 사용방법을 동적링크로만 한다면, 소스 공개 의미가 없음
하지만, 정적링크로 사용한다면, 소스 공개 의무는 없지만, 모든 OBJECT 코드를 제공해야함(보안상 문제)
2. QT 라이센스
- https://www.qt.io/licensing/open-source-lgpl-obligations
- 라이선스 정책(듀얼라이선스): GPL-3.0, LGPL-3.0, 상업(commercial)
- GPL-3.0 사용: 개발된 모든 코드(내코드+라이브러리코드) 공개 의무 발생
- LGPL-3.0 사용: 동적링크로만 사용한다면 코드 공개 의무 없음,
단, QT 라이브러리를 수정하여 사용하면, 수정된 부분에 대한 공개의무
- 결론: LGPL만 동적으로 사용하자.
3. QT LGPL 사용방법
- https://www.qt.io/product/features#js-6-3-
- 위와 같이 라이선스 모델을 확인하고 개발을 진행하면 최대한 실수를 줄일수 있음
참고: https://www.olis.or.kr/license/licenseOSI.do?mapcode=010001&page=1.