GPL·LGPL (카피레프트 라이선스)
쉽게 말하면
라이선스는 '이 프로그램을 이렇게 써도 된다'는 약속문이에요. GPL은 '내 공개 코드를 가져다 고쳐서 남에게 나눠 줄 거면, 당신 코드도 똑같이 공개하세요'라는 조건이에요. 그래서 공개가 계속 이어져요. LGPL은 그 조건을 조금 풀어서, 부품처럼 가져다 연결만 해 쓰면 내 코드는 공개하지 않아도 돼요.
시험용 정의
GPL은 FSF가 만든 대표적인 카피레프트 라이선스로, GPL 코드를 수정하거나 포함해 배포하는 프로그램 전체도 GPL로 공개하도록 요구한다. LGPL은 라이브러리용으로 조건을 완화해, 라이브러리를 링크만 해서 쓰는 프로그램은 공개하지 않아도 된다.
비유로 이해하기
GPL은 "이 씨앗으로 키운 열매는 다시 씨앗째 나눠야 한다"는 조건이 붙은 씨앗이다. LGPL은 "씨앗 자체를 개량하면 공개하되, 그 열매로 만든 요리 레시피까지 공개할 필요는 없다"는 완화판이다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 라이선스 | 저작권자가 "이 조건을 지키면 써도 된다"고 정해 둔 사용 허락 조건 |
| 카피레프트 | copyright(저작권)를 뒤집은 말장난. 저작권을 이용해 자유를 대물림시키는 방식으로, 고친 판을 배포할 때도 원래와 같은 자유(소스 공개·수정·재배포)를 보장하게 한다 |
| 배포 | 프로그램을 다른 사람에게 넘기는 것(판매·다운로드 제공·기기에 넣어 출하). 회사 안에서만 쓰는 건 배포가 아니다 |
| 파생 저작물 | 원래 코드를 고치거나 원래 코드를 포함해 새로 만든 프로그램 |
| 라이브러리와 링크 | 라이브러리는 여러 프로그램이 가져다 쓰는 기능 묶음(예: C 표준 라이브러리 glibc). 링크는 내 프로그램이 그 라이브러리 기능을 불러 쓰도록 연결하는 것. 라이브러리 코드를 고치지 않고 호출만 한다 |
카피레프트 계열 비교
| 라이선스 | 핵심 | 대표 사용처 |
|---|---|---|
| GPL v2 | 수정·결합해 배포하면 전체를 GPL로 소스 공개 | 리눅스 커널 |
| GPL v3 (2007) | v2 + 특허 조항, 티보이제이션(하드웨어로 수정판 실행 막기) 방지 | GCC, Bash 최신판 |
| LGPL | 라이브러리 자체 수정분만 공개. 링크해서 쓰는 프로그램은 비공개 가능 | glibc, Qt(일부) |
| AGPL | GPL + 네트워크로 서비스만 해도(배포 없이) 소스 공개 | 일부 웹 서비스용 |
| MPL | 파일 단위 카피레프트. 수정한 MPL 파일만 공개, 나머지 코드는 다른 라이선스 가능 | Firefox |
GPL 핵심 정리
- 상업적 이용·판매 가능
- 배포 시 소스 코드 제공(또는 제공 약속) 의무
- 파생 저작물도 같은 GPL로 배포
- 저작권 표시와 라이선스 문구 유지
- 보증 없음(무보증)
시험에 이렇게 나와요
- 카피레프트: 수정·배포하면 같은 라이선스로 소스를 공개해야 함 → GPL
- LGPL(라이브러리 링크 허용), AGPL(네트워크 서비스도 공개), MPL(파일 단위)
1차 출제기준 · 공개 기출 없음
확인 문제
Q1. 회사가 GPL 라이브러리를 수정해 자사 프로그램에 넣었다. 이 프로그램을 외부에 배포하지 않고 사내에서만 쓴다면 소스를 공개해야 할까?
- GPL은 상업적 사용 자체가 금지다
- 배포하지 않으면 공개 의무가 없다
- 반드시 공개해야 한다
- 수정했으면 무조건 공개
정답 보기
2번 배포하지 않으면 공개 의무가 없다
GPL의 소스 공개 의무는 배포할 때 생긴다. 내부에서만 쓰면 공개하지 않아도 된다. 배포한다면 받은 사람에게 소스를 제공하고 같은 GPL로 배포해야 한다. 상업적 이용도 허용된다.
Q2. 라이브러리를 링크해 사용하는 프로그램에는 소스 공개 의무를 지우지 않도록 완화된 라이선스는?
- BSD
- GPL
- LGPL
- AGPL
정답 보기
3번 LGPL
LGPL이다. 라이브러리를 링크만 해서 쓰는 프로그램은 소스를 공개하지 않아도 된다. GPL은 링크한 프로그램까지 공개 의무가 생길 수 있다.
Q3. 네트워크 서비스로 제공만 해도 소스를 공개해야 하는 라이선스는?
- AGPL
- MIT
- LGPL
- GPL v2
정답 보기
1번 AGPL
AGPL이다. GPL은 프로그램을 배포할 때만 소스 공개 의무가 생기는데, AGPL은 웹 서비스로 제공하기만 해도 공개해야 한다.
Q4. 파일 단위로 카피레프트를 적용하는 라이선스는?
- GPL
- BSD
- Apache
- MPL
정답 보기
4번 MPL
MPL(Mozilla Public License).
Q5. 리눅스 커널에 적용된 라이선스는?
- GPL v2
- BSD
- GPL v3
- LGPL
정답 보기
1번 GPL v2
GPL v2다. 커널은 GPL v3로 바꾸지 않고 v2를 유지한다.
헷갈리기 쉬운 O·X
GPL 소프트웨어는 상업적으로 판매할 수 없다.
정답 보기
X 판매 가능. 대신 소스 제공과 같은 라이선스 유지가 조건.
GPL 프로그램을 수정해 배포하면 수정한 소스도 공개해야 한다.
정답 보기
O 카피레프트의 핵심.
LGPL 라이브러리를 수정해 배포하면, 라이브러리의 수정분은 공개하지 않아도 된다.
정답 보기
X 라이브러리 자체를 고치면 그 부분은 공개해야 한다. 완화되는 건 링크해 쓰는 프로그램 쪽.