가이드 · 06

GPL "only" vs "or later"

GPL 의 'or any later version' 문구가 무엇을 뜻하는지, 리눅스 커널이 GPL-2.0-only 를 고집하는 이유, GPL-2.0-only 와 GPL-3.0 이 호환되지 않는 까닭과 선택 기준을 설명합니다.

최종 확인: 2026-09-23

문제의 한 문장

GNU 라이선스의 권장 고지문에는 다음 문장이 들어 있습니다.

either version 3 of the License, or (at your option) any later version.

이 문장이 있으면 받는 사람은 지정된 버전 또는 FSF 가 이후에 발표하는 어떤 버전의 조건이든 골라 따를 수 있습니다. 이것이 'or later'(SPDX GPL-3.0-or-later)입니다. 문장에서 'or later' 부분을 빼고 특정 버전만 적으면 'only'(GPL-3.0-only)가 됩니다.

GPL-3.0 14조와 GPL-2.0 9조가 이 구조를 정합니다. 특히 GPL-2.0 9조는 버전 번호를 아예 적지 않은 프로그램이라면 FSF 가 발표한 어떤 버전이든 고를 수 있다고 정합니다. 그래서 LICENSE 파일만 두고 버전 조항을 밝히지 않으면 의도와 다르게 해석될 수 있습니다.

왜 'or later' 를 두는가

FSF 는 'or later'를 권장합니다. 이유는 미래의 호환성입니다. 법과 기술 환경이 바뀌어 새 GPL 이 나왔을 때, 'or later' 코드는 새 버전과 자연스럽게 합쳐질 수 있습니다. 실제로 GPL-2.0-or-later 코드는 GPL-3.0 프로젝트에 그대로 들어갈 수 있었지만, GPL-2.0-only 코드는 그러지 못했습니다.

GPL-3.0 14조는 한 걸음 더 나아가 '프록시(proxy)'를 지정할 수 있게 합니다. 저작권자가 지정한 사람이 이후 버전의 수용 여부를 공개적으로 결정하면 그 결정이 효력을 갖습니다.

왜 'only' 를 고르는가

'or later'는 아직 쓰이지 않은 라이선스에 미리 동의하는 것이기도 합니다. FSF 가 나중에 내 뜻과 다른 조건을 담은 새 버전을 내면, 받는 사람은 그 버전을 골라 내 코드를 쓸 수 있습니다.

리눅스 커널이 대표 사례입니다. 커널은 GPL-2.0-only 입니다. 리누스 토르발스는 GPL-3.0 의 설치 정보 조항(이른바 티보이제이션 방지)에 반대하는 입장을 공개적으로 밝혔고, 커널에는 수천 명 기여자의 저작권이 섞여 있어 사실상 라이선스를 바꿀 수도 없습니다.

호환성에 미치는 영향

GNU 라이선스 FAQ 의 호환성 매트릭스를 요약하면 다음과 같습니다.

가져올 코드 → 내 프로젝트GPL-2.0-onlyGPL-2.0-or-laterGPL-3.0
GPL-2.0-only가능가능(결합본은 2.0-only)불가
GPL-2.0-or-later가능가능가능
GPL-3.0불가가능(결합본은 3.0)가능
LGPL-3.0불가가능(결합본은 3.0)가능

핵심은 GPL-2.0-only 와 GPL-3.0 은 서로 받아들일 수 없다는 점입니다. 두 라이선스가 각각 '추가 제한을 두지 말 것'을 요구하는데, 서로의 추가 조건(3.0 의 특허·설치 정보 조항 등)이 상대방 입장에서는 추가 제한이기 때문입니다. 더 많은 조합은 호환성 검사기에서 확인할 수 있습니다.

선택 기준

표기하는 법

  1. LICENSE(또는 COPYING)에는 해당 버전의 원문을 그대로 둡니다. 원문 자체에는 only/or-later 구분이 없습니다.
  2. 각 파일의 고지문과 SPDX 식별자로 버전 조항을 밝힙니다. 생성기의 파일 헤더 탭에서 'only' 또는 'or-later'를 고르면 GNU 공식 고지문과 SPDX 줄이 함께 만들어집니다.
  3. README 에도 한 줄로 적어 둡니다(예: 'Licensed under GPL-3.0-or-later').
이 글은 일반 정보이며 법률 자문이 아닙니다. 중요한 결정은 전문가와 상의하세요.

참고 출처