오픈소스 · 라이선스

오픈소스 라이선스 한눈에
MIT·Apache·GPL부터 AGPL까지

⏱ 약 14분 ⚖️ 라이선스 / 컴플라이언스 📚 OLIS 분류 기준 📅 2026-06-22
📝
"오픈소스니까 그냥 써도 되지?" — 아닙니다.
오픈소스도 저작권이 있는 소프트웨어이고, 라이선스는 "이 조건을 지키면 써도 된다"는 이용 허락 계약입니다. 조건을 어기면 저작권 침해가 됩니다. 특히 어떤 라이선스는 내 코드까지 같은 라이선스로 공개하라고 요구해서, 모르고 가져다 쓰면 사업 전체가 흔들릴 수 있습니다.

이 글에서는 가장 많이 쓰이는 MIT·Apache 2.0·GPL을 중심으로, BSD·LGPL·MPL·AGPL까지 핵심 의무를 정리하고 한눈 비교표와 실무 선택 가이드를 제공합니다. (분류·용어는 오픈소스SW 라이선스 종합정보시스템(OLIS) 기준을 따릅니다.)

1 핵심 개념 — 허용·의무·카피레프트

라이선스를 읽을 때 보는 축은 결국 셋입니다 — 무엇이 허용되는가, 무슨 의무가 따르는가, 내 코드까지 전염되는가.

💡
고지 의무는 거의 공통
어떤 라이선스든 최소한 저작권 표시와 라이선스 전문(또는 고지)을 유지하라고 요구합니다. "그냥 복붙"이 위험한 가장 흔한 이유가 이 고지를 빠뜨리는 것입니다.

2 두 갈래 — 허용적 vs 카피레프트

라이선스는 크게 허용적(Permissive)카피레프트(Copyleft)로 나뉘고, 카피레프트는 다시 전염 범위에 따라 강·약으로 갈립니다.

허용적 (고지만, 전염 없음) MIT · BSD · Apache 2.0 카피레프트 (상호주의 — 같은 라이선스로 공개) MPL 2.0 (파일 단위) LGPL (라이브러리/링크 단위) GPL (결합 저작물 전체) AGPL (네트워크 서비스까지)

위로 갈수록 자유롭고(내 코드 비공개 OK), 아래로 갈수록 공개 의무가 넓어집니다. "어디까지 전염되느냐"가 곧 그 라이선스의 성격입니다.

3 MIT — 가장 단순한 허용적

가장 널리 쓰이는 라이선스. 사실상 "저작권·라이선스 고지만 유지하면 뭐든 해도 된다"입니다. 상업적 이용·수정·비공개 모두 자유. 카피레프트 없음.

의무MIT
허용  복제 · 배포 · 수정 · 상업적 이용 · 비공개(독점) 가능
의무  저작권 표시 + 라이선스 전문 포함
전염  없음 (내 코드 공개 의무 X)
// 면책: 소프트웨어는 "있는 그대로" 제공, 보증 없음
💡
라이브러리·예제·스타터 템플릿에 가장 무난. 받는 쪽 부담이 거의 없어 채택률이 가장 높습니다.

4 BSD (2·3-clause)

MIT와 거의 같은 허용적 라이선스. 차이는 조항 수입니다.

ℹ️
3-clause의 비보증(non-endorsement)
"이 제품은 ○○가 만들었다"는 식으로 원저작자를 끌어다 마케팅하는 걸 막는 조항입니다. 의무는 여전히 가벼워서 허용적으로 분류됩니다.

5 Apache 2.0 — 특허 조항 포함

허용적이면서 특허(patent)를 명시적으로 다루는 라이선스. 기업 환경에서 선호됩니다.

⚠️
Apache 2.0 ↔ GPLv2 비호환
Apache 2.0의 특허·추가 조건 때문에 GPL 2.0과는 한 저작물로 결합 시 비호환으로 봅니다. 반면 GPL 3.0과는 호환(GPLv3가 이를 수용). 코드 결합 시 라이선스 호환성을 꼭 확인하세요.

6 GPL 2.0 / 3.0 — 강한 카피레프트

대표적 강한 카피레프트. GPL 코드를 포함해 배포하면, 결합된 저작물 전체를 소스와 함께 같은 GPL로 공개해야 합니다. "전염성"이 가장 강합니다.

의무GPL
배포 시  결합 저작물 전체 소스 공개 + 동일 GPL 적용
고지     저작권 · 라이선스 · 변경 사실
// "배포(distribution)"가 트리거 — 사내 사용만이면 공개 의무 X

2.0 vs 3.0

⚠️
제품에 GPL을 섞기 전에
독점 소프트웨어에 GPL 라이브러리를 정적/동적으로 결합해 배포하면, 그 제품 전체를 GPL로 공개해야 할 수 있습니다. SaaS로만 제공하면(배포 아님) GPL은 트리거되지 않지만 — 그건 AGPL이 막습니다(아래).

7 LGPL — 약한 카피레프트(링크)

GPL을 라이브러리용으로 완화한 것. 라이브러리 자체의 수정분은 공개해야 하지만, 그 라이브러리를 링크해서 쓰는 내 애플리케이션은 독점으로 유지할 수 있습니다.

💡
"GPL은 부담스럽지만 라이브러리는 공개로 두고 싶다"는 절충점. 독점 제품에서 외부 라이브러리로 쓰기엔 동적 링크가 안전합니다(정적 링크는 조건이 더 까다로움).

8 AGPL 3.0 — 네트워크까지

GPL의 빈틈을 메운 라이선스. GPL은 "배포"에만 의무가 걸려서, 코드를 고쳐 서버에만 올려 서비스(SaaS)로 제공하면 소스를 안 줘도 됐습니다. AGPL은 이 네트워크 사용까지 공개 의무를 확장합니다.

⚠️
SaaS 회사가 가장 조심해야 할 라이선스
AGPL 컴포넌트를 백엔드에 넣고 서비스하면 서비스 코드 전체 공개 요구로 이어질 수 있습니다. 많은 기업이 AGPL 의존성을 사내 정책으로 금지하는 이유입니다. 도입 전 반드시 검토하세요.

9 MPL 2.0 — 파일 단위

파일 단위(file-level) 카피레프트. 수정한 그 파일들만 공개하면 되고, 더 큰 저작물(내 앱)은 다른 라이선스로 둘 수 있습니다. 허용적과 강한 카피레프트의 중간.

ℹ️
"기여는 공개로 환원하되, 사업 코드는 지키고 싶다"는 균형점. 파이어폭스(Mozilla) 계열에서 쓰입니다.

10 한눈 비교표

라이선스분류고지소스공개 동일 라이선스특허조항네트워크
MIT허용적
BSD 2/3허용적
Apache 2.0허용적 ✔ 명시
MPL 2.0약 카피레프트 파일 단위파일만
LGPL약 카피레프트 라이브러리라이브러리3.0
GPL 2.0/3.0강 카피레프트 전체3.0
AGPL 3.0강 카피레프트 전체

※ "소스공개·동일 라이선스"는 배포(또는 네트워크 제공) 시 발생하는 의무입니다. 사내에서만 쓰면 대체로 트리거되지 않습니다(AGPL 제외 주의).

11 실무 선택 가이드

내 코드를 공개할 때 — 어떤 라이선스를 붙일까

남의 코드를 가져다 쓸 때 — 체크리스트

⚠️
"오픈소스 = 공짜·무제한"이 아니다
가장 흔한 사고는 (1) 고지 누락, (2) GPL/AGPL을 독점 제품에 결합, (3) 비호환 라이선스 혼합입니다. 자동 스캐너(FOSSA·ScanCode 등)와 OLIS 비교표로 도입 전에 점검하세요.

정리

라이선스를 가르는 한 가지 질문은 "내 코드까지 공개해야 하나?"입니다.

💡
요점
고를 때는 "얼마나 퍼지길 원하는가", 가져다 쓸 때는 "내 제품에 공개 의무가 전염되는가"를 본다. 애매하면 OLIS 비교표(olis.or.kr)와 라이선스 전문을 확인하고, 사업적 영향이 크면 법률 검토를 받으세요.