허용·조건·제한 한눈에 보기
조건
- 저작권·라이선스 고지배포할 때 라이선스 사본과 저작권 표시를 함께 넣어야 한다.
- 변경 사항 표시원본을 고쳤다면 그 사실을 표시해야 한다.
- 소스 공개배포할 때 소스 코드를 제공해야 한다.
- 동일 라이선스수정본·파생물을 배포할 때 같은(또는 호환되는) 라이선스를 써야 한다.
제한
- 책임 제한손해에 대한 책임을 지지 않는다고 명시한다.
- 보증 없음어떤 보증도 하지 않는다고 명시한다.
권한·조건·제한 분류 출처: choosealicense.com (GitHub, MIT 라이선스) 데이터.
어떤 라이선스인가
GPL(GNU General Public License) 3.0 은 자유 소프트웨어 재단(FSF)이 2007년 6월 29일에 발표했습니다. 누구나 자유롭게 사용·연구·수정·배포할 수 있게 하되, 배포할 때는 받는 사람에게도 같은 자유를 보장해야 한다는 카피레프트(copyleft) 원칙이 핵심입니다. 이 코드를 포함하거나 결합한 프로그램을 배포하면 그 프로그램 전체를 GPL 로, 대응하는 소스 코드와 함께 제공해야 합니다. GNU Bash, GIMP, GNU Emacs 등이 GPL-3.0-or-later 를 씁니다.
GPL-2.0 과 달라진 점
- 명시적 특허 허락(11조): 기여자는 자기 기여분에 필요한 특허 사용권을 부여합니다.
- 설치 정보(Installation Information): 가정용 기기처럼 '사용자 제품(User Product)'에 GPL-3.0 소프트웨어를 넣어 배포하면, 수정한 소프트웨어를 그 기기에 설치할 수 있는 정보(서명 키 등)도 제공해야 합니다(6조). 흔히 '티보이제이션 방지'라고 부릅니다.
- 위반 치유 기간(8조): 처음 위반한 경우 저작권자의 통지를 받은 날부터 30일 안에 바로잡으면 권리가 회복됩니다. GPL-2.0 에서는 위반 즉시 권리가 소멸했습니다.
- 호환성 확대: Apache-2.0 코드를 받아들일 수 있고, AGPL-3.0 과 결합할 수 있습니다(13조).
배포할 때 지켜야 할 것
- 대응하는 소스 전체(빌드 스크립트 포함)를 제공하거나, 서면 제안 등 6조의 방법 중 하나로 제공합니다.
- 저작권·라이선스 고지를 유지하고, 수정한 사실과 날짜를 표시합니다(5조).
- 받는 사람에게 GPL 이 준 권리를 제한하는 추가 조건(예: 재배포 금지 계약)을 걸 수 없습니다.
자주 하는 오해
- "GPL 코드를 쓰면 무조건 공개해야 한다" — 공개 의무는 배포(conveying)할 때 생깁니다. 회사 내부에서만 쓰거나 서버에서만 돌리면 GPL-3.0 의 소스 제공 의무는 생기지 않습니다. 네트워크 이용까지 묶으려면 AGPL-3.0 이 필요합니다.
- "GPL 소프트웨어는 판매할 수 없다" — 판매해도 됩니다. 다만 받은 사람이 다시 배포하는 것을 막을 수는 없습니다.
- "GPL 프로그램 위에서 돌아가는 내 프로그램도 GPL 이 된다" — 별개의 프로그램으로 실행되거나 표준 방식으로 통신하는 경우는 보통 '집합'으로 봅니다. 결합 여부 판단은 링크 방식·데이터 교환 방식에 따라 해석이 갈립니다.
- "GPL-3.0 과 GPL-2.0 은 호환된다" — GPL-2.0 이 'or later'가 아닌 only 라면 호환되지 않습니다(only vs or-later 가이드).
적용 방법
LICENSE(또는 GNU 관례대로 COPYING)에 원문을 그대로 넣고, 각 소스 파일 맨 위에 GNU 공식 고지문을 붙입니다. 이때 'or later' 여부를 고지문으로 정합니다. SPDX 식별자는 GPL-3.0-only 또는 GPL-3.0-or-later 를 씁니다(단순 GPL-3.0 은 SPDX 에서 폐기된 식별자).
이런 경우에 어울린다
내 코드를 바탕으로 한 개선이 폐쇄형 제품으로 빠져나가지 않고 모두에게 돌아오길 바라는 애플리케이션, 도구, 커뮤니티 프로젝트에 맞습니다. 라이브러리라면 폐쇄형 앱이 쓸 수 있게 LGPL-3.0 을 함께 고려합니다.
GPL-3.0 코드를 다른 프로젝트에 넣을 수 있을까?
이 라이선스로 공개된 코드를 가져와 아래 라이선스의 프로젝트에 합쳐 배포할 때의 일반적인 판정입니다. 호환성 검사기에서 다른 조합 보기 →
| 넣으려는 프로젝트 | 판정 | 메모 |
|---|---|---|
| 비공개(상용) 소프트웨어 | 불가 | 합쳐서 배포하는 프로그램 전체가 같은 GNU 라이선스로 소스와 함께 공개돼야 하므로, 프로젝트 라이선스를 유지한 채로는 넣을 수 없습니다. |
| MIT | 불가 | 합쳐서 배포하는 프로그램 전체가 같은 GNU 라이선스로 소스와 함께 공개돼야 하므로, 프로젝트 라이선스를 유지한 채로는 넣을 수 없습니다. |
| Apache-2.0 | 불가 | 합쳐서 배포하는 프로그램 전체가 같은 GNU 라이선스로 소스와 함께 공개돼야 하므로, 프로젝트 라이선스를 유지한 채로는 넣을 수 없습니다. |
| MPL-2.0 | 불가 | 합쳐서 배포하는 프로그램 전체가 같은 GNU 라이선스로 소스와 함께 공개돼야 하므로, 프로젝트 라이선스를 유지한 채로는 넣을 수 없습니다. |
| LGPL-2.1 | 조건부 가능 | 결합본은 GPL-3.0 조건으로 배포해야 합니다. |
| LGPL-3.0 | 조건부 가능 | 결합본은 GPL-3.0 조건으로 배포해야 합니다. |
| GPL-2.0 | 불가 | 3.0 버전 코드는 GPL-2.0(only)의 조건과 양립하지 않아 넣을 수 없습니다. |
| AGPL-3.0 | 가능 | GPL-3.0 과 AGPL-3.0 은 각각의 13조로 결합을 허용합니다. 결합본에서 AGPL 부분의 네트워크 소스 제공 의무는 그대로 남습니다. |
이 사이트의 내용은 일반 정보이며 법률 자문이 아닙니다. 실제 배포·계약·분쟁 판단은 변호사 등 전문가와 상의하세요.