가이드 · 07

라이선스 호환성 기초

라이선스 호환성이 무엇인지, 왜 한 방향으로만 성립하는지, Apache-2.0 과 GPL, MPL-2.0 의 Secondary License, LGPL 링크 조건, AGPL 결합 등 대표 조합을 정리합니다.

최종 확인: 2026-09-23

호환성은 '합쳐서 배포할 수 있는가'

두 라이선스가 호환된다는 것은 각 라이선스가 적용된 코드를 하나의 프로그램으로 합쳐 배포할 때 두 라이선스의 조건을 동시에 지킬 수 있다는 뜻입니다. 어느 한쪽이 다른 쪽의 조건을 금지하면 호환되지 않습니다. 예를 들어 GPL 은 '추가 제한을 두지 말 것'을 요구하므로, GPL 이 허락하지 않는 추가 조건을 가진 라이선스의 코드는 GPL 프로그램에 들어갈 수 없습니다.

호환성에는 방향이 있다

허용형 코드는 카피레프트 프로젝트로 들어갈 수 있지만, 반대로는 안 됩니다.

그래서 호환성 표는 항상 '어떤 코드를 → 어떤 프로젝트에' 넣는지로 읽어야 합니다.

대표적인 조합

Apache-2.0 과 GPL

FSF 는 Apache-2.0 이 GPL-3.0 과 호환되지만 GPL-2.0 과는 호환되지 않는다고 봅니다. Apache-2.0 의 특허 종료 조항과 면책 조항이 GPL-2.0 에는 없는 추가 조건이기 때문입니다. GPL-3.0 은 설계 단계에서 이 문제를 풀도록 만들어졌습니다. 따라서 GPL-2.0-or-later 프로젝트는 결합본을 GPL-3.0 으로 배포하면 Apache-2.0 코드를 쓸 수 있습니다.

MPL-2.0 과 GNU 라이선스

MPL-2.0 1.12조는 GPL-2.0·LGPL-2.1·AGPL-3.0 과 이후 버전을 'Secondary License'로 정의하고, 3.3조는 MPL 코드와 이들 코드를 합친 Larger Work 를 GNU 라이선스로 배포할 수 있게 합니다. 원저작자가 Exhibit B('Incompatible With Secondary Licenses')를 붙인 경우는 예외입니다.

LGPL 라이브러리와 비공개 앱

LGPL 라이브러리는 비공개 앱에서 사용할 수 있습니다. 대신 사용자가 라이브러리를 수정한 버전으로 바꿀 수 있어야 하고(동적 링크가 가장 쉬움), 라이브러리 부분의 소스와 라이선스 고지를 제공해야 합니다. LGPL 코드를 앱 소스에 복사해 섞으면 이야기가 달라져, 결합본이 LGPL/GPL 조건을 따라야 합니다.

GPL-3.0 과 AGPL-3.0

두 라이선스는 서로의 13조로 결합을 명시적으로 허용합니다. 결합본에서 GPL 부분은 GPL 조건을, AGPL 부분은 네트워크 소스 제공 조건을 포함한 AGPL 조건을 계속 따릅니다.

EPL-2.0 과 GPL

EPL-2.0 은 기본적으로 GPL 과 호환되지 않지만, 원저작자가 Exhibit A 로 GPL 등을 Secondary License 로 지정하면 결합이 가능해집니다.

가져올 코드비공개 앱MIT 프로젝트GPL-2.0-onlyGPL-3.0
MIT·BSD·ISC가능(고지)가능가능가능
Apache-2.0가능(고지·NOTICE)가능불가가능
MPL-2.0조건부(파일 공개)조건부조건부(Secondary)조건부(Secondary)
LGPL-3.0조건부(링크)조건부(링크)불가가능
GPL-3.0불가불가불가가능

'결합'은 어디까지인가

호환성 문제는 코드가 하나의 프로그램으로 결합될 때 생깁니다. FSF 는 같은 실행 파일로 링크되거나 복잡한 내부 데이터 구조를 공유하면 하나의 프로그램으로 보고, 파이프·소켓·명령줄 인자처럼 별도 프로그램 사이의 일반적인 통신은 보통 별개 프로그램의 '집합(aggregate)'으로 봅니다. 다만 이 경계는 법원 판례로 확정된 것이 아니어서 해석이 갈립니다. 한 배포판에 여러 프로그램을 함께 담는 것 자체는 결합이 아닙니다.

실무 순서

  1. 의존성 목록을 뽑습니다(패키지 관리자의 라이선스 보고 기능이나 SBOM 도구).
  2. 각 의존성의 라이선스를 SPDX 식별자로 정리합니다.
  3. 내 프로젝트 라이선스와의 조합을 호환성 검사기로 1차 확인합니다.
  4. '조건부'인 조합은 조건(고지, 링크 방식, Secondary License 여부)을 원문으로 확인합니다.
  5. 불가 조합이 있으면 의존성을 바꾸거나, 프로그램을 분리하거나, 내 라이선스를 조정합니다.
이 글은 일반 정보이며 법률 자문이 아닙니다. 중요한 결정은 전문가와 상의하세요.

참고 출처