[1과목 1장 03절] GNU 프로젝트와 자유 소프트웨어 4가지 자유, 카피레프트, GPL·LGPL·BSD·MIT·Apache 라이선스의 조건 차이를 다룹니다.
🎯 이 강의 학습 목표
이 강은 1과목 1장 03절 리눅스 핵심 철학입니다. 이 강을 마치면 GNU 프로젝트와 자유 소프트웨어 재단(FSF)이 무엇을 하려 했는지 설명할 수 있고, 자유 소프트웨어의 4가지 자유를 나열할 수 있으며, GPL·LGPL·BSD·MIT·Apache 라이선스가 각각 무엇을 요구하고 무엇을 허용하는지 구분할 수 있게 됩니다.
라이선스는 법률 이야기라 지루해 보이지만, 시험에서는 "어느 라이선스가 소스 공개 의무를 지우는가" 한 가지 축으로 정리됩니다. 그 축만 잡으면 표 하나로 끝납니다. 또 이 단원은 2강에서 본 "오픈 소스"라는 특징의 근거에 해당하므로, 앞 강들과 이어서 이해하면 훨씬 쉽습니다.
💡 GNU 프로젝트와 자유 소프트웨어 재단
1970년대까지 소프트웨어는 소스 코드와 함께 주고받는 것이 자연스러웠습니다. 그런데 1980년대 들어 소프트웨어가 상품이 되면서 소스를 감추고 비공개 라이선스로 배포하는 것이 일반화됩니다. MIT 인공지능 연구소에 있던 리처드 스톨먼(Richard Stallman)은 이 흐름이 사용자에게서 프로그램을 고치고 나눌 권리를 빼앗는다고 보았습니다.
그는 1983년 GNU 프로젝트를 발표합니다. 목표는 유닉스와 호환되면서 완전히 자유로운 운영체제를 만드는 것이었습니다. 이름 GNU는 GNU's Not Unix의 약자인데, 약자 안에 자기 이름이 다시 들어가는 재귀 약어입니다. 유닉스와 호환되지만 유닉스는 아니라는 선언입니다. 이어 1985년 자유 소프트웨어 재단(FSF, Free Software Foundation)을 설립해 이 활동을 법적·재정적으로 뒷받침합니다.
GNU 프로젝트는 셸(bash), 컴파일러(gcc), 편집기(emacs), 기본 명령어 모음(coreutils), 디버거(gdb) 등 운영체제를 이루는 도구를 차례로 완성했습니다. 그런데 정작 커널인 허드(Hurd)가 완성되지 않았습니다. 바로 그때인 1991년 리누스 토르발스의 커널이 등장했고, GNU 도구 + 리눅스 커널의 결합으로 비로소 완전한 자유 운영체제가 성립합니다. 이것이 FSF가 GNU/Linux라는 명칭을 주장하는 근거이며, 4강에서 본 uname -o의 출력이 그 흔적입니다.
💡 자유 소프트웨어의 4가지 자유와 카피레프트
FSF가 말하는 자유 소프트웨어(Free Software)의 "자유"는 가격이 아니라 권리를 뜻합니다. 스톨먼 자신이 "무료 맥주가 아니라 언론의 자유에서의 자유"라고 설명한 것이 유명합니다. 자유 소프트웨어도 돈을 받고 팔 수 있습니다. 구체적으로는 다음 네 가지 자유로 정의됩니다.
| 번호 | 자유 | 전제 조건 |
|---|---|---|
| 자유 0 | 목적을 묻지 않고 프로그램을 실행할 자유 | — |
| 자유 1 | 프로그램의 동작을 연구하고 수정할 자유 | 소스 코드 접근이 전제 |
| 자유 2 | 복제본을 재배포할 자유 | — |
| 자유 3 | 수정한 개선판을 배포할 자유 | 소스 코드 접근이 전제 |
번호가 0부터 시작한다는 점까지 그대로 출제되기도 합니다. 네 자유 중 1번과 3번은 소스 코드가 공개되어야만 성립한다는 구조를 이해해 두면 외우기 쉽습니다.
그런데 자유롭게 배포할 수 있다면, 누군가 소스를 받아 수정한 뒤 비공개로 바꿔 팔아 버릴 수도 있습니다. 그러면 원래의 자유가 사라집니다. 이를 막는 장치가 카피레프트(Copyleft)입니다. 저작권을 뜻하는 카피라이트(Copyright)를 뒤집은 말로, "자유롭게 쓰되, 파생물도 반드시 같은 자유를 유지해야 한다"는 조건을 붙이는 방식입니다. 저작권을 포기하는 것이 아니라 저작권을 근거로 자유를 강제한다는 점이 핵심입니다.
💡 주요 라이선스 비교
라이선스는 카피레프트를 요구하는가를 기준으로 갈립니다.
| 라이선스 | 성격 | 수정·배포 시 소스 공개 의무 | 특징 |
|---|---|---|---|
| GPL | 강한 카피레프트 | 있음 — 파생물 전체를 같은 GPL로 | 리눅스 커널(v2), bash, gcc |
| LGPL | 약한 카피레프트 | 조건부 — 라이브러리 자체를 고치면 공개, 링크만 하면 면제 | 주로 라이브러리용(glibc 등) |
| BSD | 허용적(permissive) | 없음 | 저작권 표시만 유지하면 상용 비공개 가능 |
| MIT | 허용적 | 없음 | 가장 짧고 단순한 조건 |
| Apache 2.0 | 허용적 | 없음 | 특허권 관련 조항을 명시 |
| MPL | 중간 | 파일 단위로 공개 | 수정한 파일만 공개, 결합은 자유 |
GPL은 가장 강력합니다. GPL 코드를 가져다 쓴 프로그램은 그 프로그램 전체가 GPL이 되어 소스를 공개해야 합니다. 이 성질 때문에 "전염성이 있다"고 표현되기도 합니다. 버전은 GPLv1(1989), GPLv2(1991), GPLv3(2007)이 있으며, 리눅스 커널은 GPLv2를 유지하고 있습니다.
LGPL은 원래 Library GPL이었다가 Lesser GPL로 이름이 바뀌었습니다. 라이브러리에 GPL을 적용하면 그 라이브러리를 쓰는 모든 프로그램이 GPL이 되어 버려 보급이 어려워집니다. 그래서 라이브러리를 링크해 쓰는 것만으로는 공개 의무가 생기지 않도록 완화한 것입니다. 단, 라이브러리 자체를 수정해 배포하면 그 부분은 공개해야 합니다.
BSD와 MIT는 허용적 라이선스로 분류됩니다. 저작권 표시와 면책 조항만 남겨 두면 수정본을 비공개 상용 제품으로 만들어 팔 수 있습니다. 기업이 부담 없이 채택할 수 있어 널리 쓰입니다. Apache 2.0도 허용적이지만 기여자가 자신의 특허를 사용자에게 허락한다는 조항을 명시해 특허 분쟁 위험을 줄인 점이 차별점입니다.
마지막으로 용어 구분이 있습니다. 자유 소프트웨어(Free Software)는 FSF가 사용자의 자유라는 윤리를 강조하며 쓰는 말이고, 오픈 소스(Open Source)는 1998년 설립된 OSI(Open Source Initiative)가 기업 친화적인 표현을 찾으면서 쓰기 시작한 말입니다. 대상이 되는 소프트웨어 목록은 거의 겹치지만 강조점이 다릅니다. 둘을 아우를 때 FOSS 또는 FLOSS라고 부릅니다.
💻 실습으로 확인하기
라이선스 이야기는 추상적으로 들리지만, 실제 시스템 안에 파일로 들어 있습니다. 아래는 WSL 우분투에서 실행한 결과입니다.
$ ls /usr/share/common-licenses/
Apache-2.0 Artistic BSD CC0-1.0 GFDL GFDL-1.2 GFDL-1.3
GPL GPL-1 GPL-2 GPL-3 LGPL LGPL-2 LGPL-2.1 LGPL-3
MPL-1.1 MPL-2.0
데비안 계열 배포판은 자주 쓰이는 라이선스 전문을 /usr/share/common-licenses/에 모아 둡니다. 앞에서 표로 본 GPL·LGPL·BSD·Apache·MPL이 실제 파일로 존재하고, GPL은 1·2·3 버전이 각각 따로 있다는 점이 눈에 들어옵니다.
$ head -3 /usr/share/common-licenses/GPL-2
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GPL 버전 2가 1991년 6월에 나왔다는 사실이 문서 첫머리에 그대로 적혀 있습니다. 리눅스 커널이 채택한 것이 바로 이 버전입니다.
$ bash --version | sed -n '3p'
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
셸인 bash의 버전 정보를 출력하면 라이선스가 함께 나옵니다. GPLv3+는 "GPL 버전 3 또는 그 이후 버전"이라는 뜻입니다. 여기서 중요한 관찰이 하나 있습니다. 커널은 GPLv2, bash는 GPLv3로 서로 다릅니다. 같은 시스템 안에서도 구성 요소마다 라이선스가 다를 수 있다는 것을 직접 확인한 셈입니다. sed -n '3p'는 3번째 줄만 출력하라는 뜻으로, 31강 편집기 단원에서 다시 다룹니다.
⚠️ 시험에 나오는 함정
| 함정 | 정확한 사실 |
|---|---|
| 자유 소프트웨어는 무료 소프트웨어다 | "자유"는 가격이 아니라 권리. 돈을 받고 팔 수 있다 |
| GPL은 판매를 금지한다 | 판매는 자유. 다만 소스를 함께 제공해야 한다 |
| 카피레프트는 저작권 포기다 | 저작권을 근거로 자유 유지를 강제하는 방식 |
| BSD 코드는 반드시 공개해야 한다 | 공개 의무 없음. 비공개 상용화 가능 |
| LGPL은 링크만 해도 소스를 공개해야 한다 | 링크는 면제. 라이브러리 자체를 수정했을 때만 공개 |
| GNU는 리눅스의 다른 이름이다 | GNU는 프로젝트·도구 모음, 리눅스는 커널 |
| 리눅스 커널은 GPLv3다 | 커널은 GPLv2를 유지(bash 등은 GPLv3) |
📝 핵심 요약 — 암기표
| 항목 | 핵심 |
|---|---|
| GNU 프로젝트 | 1983년 · 리처드 스톨먼 · GNU = GNU's Not Unix(재귀 약어) |
| FSF | 1985년 설립 · 자유 소프트웨어 재단 |
| GNU의 미완성 부분 | 커널 허드(Hurd) → 그 자리를 리눅스 커널이 채움 |
| 4가지 자유 | 0 실행 · 1 연구·수정 · 2 재배포 · 3 개선판 배포 |
| 카피레프트 | 파생물도 같은 자유 유지 강제 (저작권 포기 아님) |
| 소스 공개 의무 있음 | GPL(전체) · LGPL(라이브러리 수정 시) · MPL(수정 파일) |
| 소스 공개 의무 없음 | BSD · MIT · Apache 2.0 |
| Apache 2.0의 차별점 | 특허 조항 명시 |
| 리눅스 커널 라이선스 | GPLv2 |
| OSI | 1998년 설립 · "오픈 소스" 용어와 정의(OSD) 관리 |
다음 6강부터는 1장 리눅스의 이해를 마치고 2장 리눅스 설치로 들어갑니다. 설치 매체와 설치 유형, 듀얼 부팅과 가상머신 설치를 다룹니다.
📋 실전 문제
1. GNU 정신에 입각하여 자유 소프트웨어에 적용시킨 대표적인 라이선스는?
① GPL ② BSD ③ MIT ④ Apache 2.0
2. GNU 프로젝트를 시작하고 자유 소프트웨어 재단(FSF)을 설립한 인물은?
① 리누스 토르발스 ② 리처드 스톨먼 ③ 켄 톰슨 ④ 빌 조이
3. 자유 소프트웨어의 4가지 자유에 해당하지 않는 것은?
① 목적을 묻지 않고 프로그램을 실행할 자유
② 프로그램을 연구하고 수정할 자유
③ 복제본을 재배포할 자유
④ 원저작자의 이름을 삭제하고 배포할 자유
4. 라이브러리에 적용하기 위해 GPL의 조건을 완화한 라이선스로, 링크해서 사용하는 것만으로는 소스 공개 의무가 발생하지 않는 것은?
① GPLv3 ② LGPL ③ MPL ④ Artistic
5. 다음 중 수정 후 비공개 상용 소프트웨어로 배포할 수 있는 라이선스로만 묶인 것은?
① GPL, LGPL ② GPL, MPL
③ BSD, MIT ④ LGPL, MPL
6. 카피레프트(Copyleft)에 대한 설명으로 옳은 것은?
① 저작권을 완전히 포기하여 공유 영역에 두는 것이다.
② 저작권을 근거로, 파생 저작물도 동일한 자유를 유지하도록 강제하는 방식이다.
③ 소프트웨어의 무료 배포만을 허용하는 규정이다.
④ 상업적 이용을 전면 금지하는 조항이다.
7. GNU 프로젝트에 대한 설명으로 틀린 것은?
① GNU는 GNU's Not Unix의 재귀 약어이다.
② bash, gcc, emacs 등이 GNU 프로젝트의 산물이다.
③ 커널인 허드(Hurd)가 먼저 완성되어 리눅스 커널을 대체했다.
④ 유닉스와 호환되는 완전히 자유로운 운영체제를 만드는 것이 목표였다.
8. 리눅스 커널이 채택하고 있는 라이선스로 알맞은 것은?
① GPL 버전 2 ② GPL 버전 3 ③ BSD 라이선스 ④ Apache 라이선스 2.0
✅ 정답과 해설
1. 정답 ①
GPL입니다. FSF가 자유 소프트웨어의 네 가지 자유를 법적으로 보장하기 위해 만든 라이선스로, 카피레프트를 강제합니다. ②·③·④는 모두 허용적 라이선스로 소스 공개 의무가 없어 자유 소프트웨어 진영의 대표 라이선스로는 보지 않습니다.
2. 정답 ②
리처드 스톨먼이 1983년 GNU 프로젝트를 시작하고 1985년 FSF를 설립했습니다. ①의 토르발스는 리눅스 커널, ③의 켄 톰슨은 유닉스, ④의 빌 조이는 BSD와 vi에 관련된 인물입니다.
3. 정답 ④
자유 소프트웨어는 저작권 표시와 원저작자 정보를 유지할 것을 요구합니다. 원저작자를 지우고 배포할 자유는 어떤 라이선스에도 없습니다. ①·②·③은 각각 자유 0·1·2에 해당하며, 나머지 하나인 자유 3은 "수정한 개선판을 배포할 자유"입니다.
4. 정답 ②
LGPL입니다. 원래 Library GPL이었다가 Lesser GPL로 이름이 바뀌었습니다. 라이브러리를 링크해서 쓰는 것만으로는 공개 의무가 없고, 라이브러리 자체를 수정해 배포할 때만 그 부분을 공개하면 됩니다. ①의 GPLv3는 여전히 강한 카피레프트, ③의 MPL은 수정한 파일 단위로 공개를 요구합니다.
5. 정답 ③
BSD와 MIT는 허용적 라이선스로 저작권 표시와 면책 조항만 유지하면 비공개 상용화가 가능합니다. ①·②·④에 포함된 GPL·LGPL·MPL은 정도의 차이는 있어도 모두 소스 공개 의무를 지웁니다.
6. 정답 ②
카피레프트는 저작권을 포기하는 것이 아니라 저작권을 수단으로 파생물의 자유를 강제하는 방식입니다. ①은 퍼블릭 도메인(CC0 등)에 대한 설명이고, ③·④는 GPL이 판매와 상업적 이용을 허용한다는 사실과 어긋납니다.
7. 정답 ③
허드는 완성되지 않았고, 그 빈자리를 1991년 등장한 리눅스 커널이 채웠습니다. 인과가 정반대로 서술된 선지입니다. ①·②·④는 모두 옳습니다.
8. 정답 ①
리눅스 커널은 GPL 버전 2를 유지하고 있습니다. 같은 시스템에 들어 있는 bash는 GPLv3를 쓰므로, "리눅스에 들어 있는 모든 소프트웨어가 같은 라이선스"라고 생각하면 틀립니다. ③·④는 허용적 라이선스로 커널과 무관합니다.
📚 참고 자료
- What is Free Software? (네 가지 자유) — GNU Project
- GNU General Public License, version 2 — GNU Project
- GNU Lesser General Public License — GNU Project
- OSI Approved Licenses — Open Source Initiative
- Apache License 2.0 (특허 조항 포함) — The Apache Software Foundation
- Linux kernel licensing rules — The Linux Kernel documentation
관련 주제
- GNU 프로젝트
- 리처드 스톨먼
- 자유 소프트웨어
- 카피레프트
- GPL
- LGPL
- BSD 라이선스
- 오픈소스
- 자격증
- 자격증 강의
- 리눅스마스터 2급 완전정복
- 무료강의
- 무료 온라인 강의
- NUGUNA
- 누구나
📚 시리즈 전체 공유
리눅스마스터 2급 완전정복
이 강의가 속한 시리즈는 총 9강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.
댓글
불러오는 중...
