※ 아래의 내용은 참조 용도로만 사용해야 합니다. 정확한 법적 참고 자료로 사용할 수 없습니다.
Qt 라이선스는 LGPL, GPL, Commercial 3가지로 나뉜다.
LGPL (Lesser General Public License)
특징
- LGPL 라이선스 하의 Qt 라이브러리는 동적 링크를 통해 사용할 수 있다.
- 애플리케이션이 Qt의 라이브러리를 사용하는 방식이 동적 링크라면 애플리케이션의 소스 코드를 공개할 필요는 없다.
- 정적 링크를 사용하는 경우 애플리케이션 전체 소스 코드를 공개하거나 사용자에게 재링크 가능한 형태로 제공해야 한다.
공개 범위
- 애플리케이션이 Qt 라이브러리를 동적으로 링크하고 있다면 해당 애플리케이션의 소스 코드를 공개할 의무가 없다.
- 단, 수정된 Qt 라이브러리 자체의 소스 코드는 공개해야 한다.
LGPL 라이선스 문서 : https://www.gnu.org/licenses/lgpl-3.0.html
GPL
특징
- GPL 라이선스를 따르는 Qt 모듈을 사용하는 경우 애플리케이션 전체 소스 코드를 공개해야 한다.
- GPL 라이선스는 사용자가 소프트웨어를 자유롭게 수정하고 재배포할 수 있도록 허용하지만 이를 기반으로 만든 프로그램은 동일한 GPL 라이선스를 따라야 한다.
공개 범위
- GPL 라이선스 모듈을 포함한 애플리케이션은 모든 소스 코드를 공개해야 한다.
GPL 라이선스 문서 : https://www.gnu.org/licenses/gpl-3.0.html
Commercial
특징
- 상업용 라이선스는 Qt를 폐쇄 소스 소프트웨어에 자유롭게 사용할 수 있게 해 준다.
- 소스 코드 공개 의무가 없으며 기술 지원 및 업데이트가 포함된다.
공개 범위
- 코드 공개 의무가 없다.
LGPL과 GPL 라이선스 모듈을 함께 사용할 경우 공개 범위
만약 LGPL 모듈과 GPL 모듈을 같은 프로젝트 내에서 함께 사용한다면, GPL 라이선스가 적용된다.
따라서 Qt Chart와 같은 GPL 모듈을 사용하면 프로젝트의 일부 코드만 공개하는 것이 아닌 프로젝트 전체 코드를 공개해야 한다.
상업적 배포
소스 코드를 공개한다면
- GPL 라이선스 공개 의무에 맞추어 프로젝트의 모든 소스를 공개하고 모듈들(Qt Chart, Qt Data Visualization 등)을 자유롭게 사용하면 된다.
소스 코드를 공개하기 싫다면
- Commercial 라이선스를 구매하여 GPL 라이선스의 공개 의무를 피할 수 있고 자유롭게 모듈들을 사용 가능하다.
- GPL 라이선스 모듈을 사용하지 않고 LGPL 라이선스 모듈들만 사용한다.
LGPL 모듈만 사용하여 판매하기
/release
│
├── MyApplication.exe # 실행 파일
├── QtCore.dll # LGPL 라이브러리 DLL
├── QtGui.dll # LGPL 라이브러리 DLL
├── QtWidgets.dll # LGPL 라이브러리 DLL
├── LICENSE.txt # LGPL 라이브러리 라이선스 명시
└── README.txt # 소스 코드 다운로드 링크 및 안내
릴리즈 파일 구성
- 실행 파일
- DLL(Dynamic Link Library) 파일
- 라이브러리 교체 가능성 보장
- LGPL 라이브러리의 소스 코드 또는 다운로드 경로 제공 (LICENSE파일 또는 README 파일 예시)
This software uses Qt libraries licensed under the LGPL v3.
You can find the source code at https://download.qt.io/official_releases/qt/
모듈별 라이선스
Qt는 전체가 라이선스 하나로만 되어 있는 것이 아니라 모듈별로 라이선스가 달라진다.
예를 들면 하나의 프로젝트 안에서 Qt Network 모듈과 Qt Charts 모듈을 사용한다고 하다고 가정하면 Qt Network 모듈은 LGPL, GPL, Commercial 중에 하나를 선택할 수 있고 Qt Chart 모듈은 GPL과 Commercial만 사용할 수 있다.
특정 모듈이 어떤 라이선스에 해당하는지 알기 위해서는 아래의 주소로 들어가서 한눈에 볼 수도 있고 모듈별로도 확인이 가능하다.
https://www.qt.io/product/features
https://doc.qt.io/qt-6.5/qtmodules.html
위에서 예시로 말했던 Qt Network 모듈은 위 사이트에서 확인해 본 결과 LGPL v3, GPL v2, Commercial 라이선스에 따라 제공된다는 것을 볼 수 있다.