← 프리뷰 목록으로

카피레프트 라이선스는 ‘제한적’이지 않다

게시일: 2025년 11월 23일 | 원문 작성일: 2024년 4월 19일 | 저자: Drew DeVault | 원문 보기

핵심 요약

  • 제약 vs 의무: 카피레프트는 소프트웨어 사용을 제약하지 않고, 권력에 의무를 부과함으로써 사용자의 자유를 보장해요
  • 자유의 원천: 진정한 자유는 의무가 없는 게 아니라 권력자에게 부과된 의무로부터 나와요 (헌법이 정부에 의무를 부과해 시민의 자유를 보장하듯)
  • 권력 역학: 허용적 라이선스는 기업의 권력을 견제하지 않지만, 카피레프트는 상호성(reciprocity)을 요구해 권력 불균형을 바로잡아요
  • 더 큰 자유: 카피레프트는 허용적 라이선스보다 “제한적”이지 않고 오히려 다운스트림 사용자의 권리를 보장하므로 더 자유로워요
  • 언어가 중요: 카피레프트를 “제한적”이라 부르는 건 사용자 자유 보장이 한계라고 인정하는 것과 같아요. “상호적(reciprocal)” 또는 “보호적(protective)“이 더 정확한 표현이에요

자유 소프트웨어와 오픈소스 소프트웨어 라이선스를 스펙트럼으로 나타낼 수 있는데, 한쪽 끝은 “허용적(permissive)“이고 다른 쪽 끝은 “카피레프트(copyleft)“예요. 하지만 카피레프트가 허용적의 반대편에 있다고 해서, 허용적의 언어적 반의어—즉 “제한적(restrictive)“—과 동의어인 건 아니에요. 카피레프트 라이선스는 허용적 라이선스와 비교해서 “제한적”이지 않아요.

참고: 자유 소프트웨어가 카피레프트와 동의어가 아니고, 오픈소스가 허용적과 동의어도 아니에요. 흔한 오해인데 말이죠. 허용적 라이선스도 대체로 자유 소프트웨어고, 카피레프트 라이선스도 대체로 오픈소스예요. 허용적과 카피레프트의 구분은 자유 소프트웨어와 오픈소스의 구분과는 직교하는(orthogonal) 개념이에요.

카피레프트 라이선스를 허용적 라이선스보다 더 “제한적”이거나 “덜 자유롭다”고 오해하는 경우가 많아요. 이런 시각은 자유에 대한 피상적인 이해에서 나와요—의무가 없는 게 자유라는 식의, 수동적인 자유 개념 말이죠. 카피레프트는 더 깊은 자유 개념에 기반하고 있어요. 자유를 권리의 적극적 보장으로 보는 거죠. [1]

자유, 의무, 권리, 제약의 문제를 깊이 있게 살펴볼게요.

의무 vs 제약

두 종류의 라이선스 모두 의무를 포함하고 있어요. 의무와 제약은 같은 게 아니에요. 허용적 라이선스인 MIT 라이선스의 예를 볼까요:

이 소프트웨어를 제약 없이 다룰 수 있는 권한을 부여한다 […] 다음 조건을 따를 것:

위의 저작권 고지와 이 허가 고지를 소프트웨어의 모든 복사본이나 상당 부분에 포함해야 한다.

이건 사용자가 소프트웨어를 배포할 때 저작권 고지를 포함하라는 의무를 부과해요. 하지만 어떤 조건에서든 소프트웨어 사용을 제약하지는 않아요. 제약의 예는 악명 높은 JSON 라이선스에서 찾을 수 있어요. 표준 MIT 라이선스에 이런 조항을 추가했거든요:

이 소프트웨어는 선(Good)을 위해 사용되어야 하며, 악(Evil)을 위해서는 안 된다.

IBM이 Douglas Crockford에게 JSON으로 악행을 저지를 수 있는 라이선스를 요청했고, 실제로 받았다는 유명한 이야기가 있어요. [2] 이런 종류의 조항은 자유 소프트웨어 용어로 “사용 분야 차별(discrimination against field of endeavour)“이라고 불러요. 이런 제약은 자유 소프트웨어와 오픈소스 정의 모두에 위배돼요. 오픈소스 정의(Open Source Definition) 6조를 인용해볼게요:

라이선스는 특정 분야에서 프로그램을 사용하는 것을 제한해서는 안 된다. 예를 들어, 프로그램이 비즈니스에서 사용되는 것이나 유전자 연구에 사용되는 것을 제한할 수 없다.

자유 소프트웨어나 오픈소스 소프트웨어 라이선스에는—허용적이든 카피레프트든—이런 제약이 없어요. 모든 FOSS 라이선스는 어떤 목적으로든 제약 없이 소프트웨어를 사용할 수 있게 해줘요. 허용적 라이선스든 카피레프트 라이선스든 판매할 수 있고, [3] 상업 클라우드 서비스의 일부로 사용할 수 있고, [4] 핵무기 프로그램의 일부로 사용할 수도 있어요. 자유 소프트웨어가 어떻게 사용되는지에 대한 제약은 없어요. 허용적이든 카피레프트든 상관없이요.

카피레프트는 제약을 부과하지 않아요. 하지만 의무는 부과해요. 이 의무는 소프트웨어 사용자의 권리를 보장하기 위해 존재해요—다시 말해, 자유를 보장하기 위해서죠. 이런 점에서 카피레프트 라이선스는 허용적 라이선스보다 더 자유로워요.

자유는 어디서 오는가

자유는 정치적 개념이에요. 그래서 이걸 이해하려면 정치적 관점에서 봐야 해요. 즉, 권력 역학의 문제로 봐야 한다는 거죠. 의무 없는 자유는 모순이에요. 자유는 의무로부터, 특히 권력에 부과된 의무로부터 나와요.

자유는 어디서 올까요?

예를 들어 미국을 생각해볼게요. 자유를 핵심 정치적 가치로 삼는 사회죠. [5] 미국의 자유는 궁극적으로 미국 헌법과 권리장전에 근거하고 있어요. 이 도구들은 정부에 의무를 부과함으로써 미국 시민에게 권리를 보장하고 자유를 만들어내요.

예를 들어, 미국에서 범죄 혐의를 받으면 변호인을 선임할 권리가 있어요. 그래서 정부는 변호인을 제공할 의무가 있어요. 이런 의무로부터 자유가 나와요. 또 다른 예로, 집회의 자유는 경찰이 평화로운 시위를 해산하지 못하도록 막아요—이 자유는 권력(정부)에 대한 제약으로부터 나와요. 권력이 적은 사람들(시민)의 권리와 자유를 보장하는 수단으로서 말이죠.

소프트웨어에서 누가 권력을 갖고 있나

비자유 소프트웨어를 대조해서 생각해볼게요. 기업이 소프트웨어를 작성하고 사용에 상당한 제약을 두면서 사용자에게 판매하죠. 기업은 개인보다 더 많은 권력을 가져요. 더 많은 자원(돈 같은)과 더 많은 영향력을 갖고 있고, 소프트웨어 자체와 더 근본적으로 관련해서는, 소프트웨어를 이해하거나 동작을 수정하는 도구를 비공개로 보유하고 있어요. 그리고 소프트웨어가 어떤 조건에서 사용될 수 있는지 지시해요(예: 라이선스 키가 만료되지 않은 경우에만, 또는 특정 목적으로만). 이건 소스 코드를 비공개로 보유하고 저작권법을 사용해서 소프트웨어에 대한 자신의 의지를 강제하는 모든 사람에게 해당돼요—이런 식으로 그들은 사용자에 대한 권력을 소유하고 행사하는 거예요.

허용적 라이선스는 이 권력에 대한 견제를 제공하지 않아요. 대체로 저작인격권만 보존하고 나머지는 거의 없어요. 허용적 라이선스는 상대적으로 적고 좁은 자유만 제공하고, 그다지 “자유롭지” 않아요. 카피레프트 라이선스는 추가 의무를 통해 이런 권력을 제약하고, 이 의무로부터 더 큰 자유가 나와요. 구체적으로, 상호성(reciprocity)을 요구해요.

허용적 라이선스와 카피레프트 라이선스는 이런 방식으로 구분돼요. 허용적 라이선스가 허용하는 곳에서, 카피레프트는 제약하지 않아요. 더 나은 용어는 “상호적(reciprocal)“과 “비상호적(non-reciprocal)“일 수도 있는데, 아마 그 배는 이미 떠났을 거예요.

허용적 라이선스와 카피레프트 라이선스 모두 “당신은 이 소프트웨어를 …라면 사용할 수 있다”라고 말해요. if 조건이 다를 뿐이죠. 둘 다 “당신은 이 소프트웨어를 …라면 사용할 수 없다”라고 말하지 않아요. 그렇게 말하는 라이선스는 자유롭지 않은 거예요.

허용적 라이선스와 카피레프트 라이선스는 둘 다 자유 소프트웨어예요. 하지만 후자만이 권리를 보장해요. 둘 다 자유로울 수 있지만, 후자만이 자유를 제공해요.

각주

[1] 적극적 자유(positive liberty)와 소극적 자유(negative liberty)에 대해서는 스탠퍼드 철학 백과사전을 참고하세요.

[2] 엄밀히 말하면 이 예외는 JSON이 아니라 JSLint에 대한 거였어요. 뭐 아무튼.

[3] 잠깐 이걸 상상해보세요. 핵탄두에 MIT 라이선스 코드가 유도 시스템에 통합되어 있다면, 핵탄두는 법적으로 MIT 라이선스 사본을 탑재해야 할 의무가 있어요. 그 소프트웨어를 수신자들에게—어, 그러니까—“배포”하는 거니까요. 뭐 그렇다는 얘기죠.

[4] 이건 소프트웨어가 AGPL 라이선스를 사용하더라도 마찬가지예요.

[5] 미국이 이걸 어느 정도나 달성했는지는, 뭐 당연히 수세기 동안 격렬한 논쟁의 대상이었죠.


역자 보충: 실질적 의미

원문은 여기서 끝나지만, 한국 독자를 위해 실질적 함의를 추가로 정리했습니다.

개발자 입장에서

라이선스를 선택할 때 고려할 점:

  • 다운스트림에서 사용자 자유를 보장하고 싶나요?
  • 대기업이 당신의 코드를 독점 제품에 넣고 소스를 공유하지 않는 걸 막고 싶나요?
  • 모든 참여자에게 대칭적인 의무를 원하나요?

그렇다면 카피레프트가 이를 달성해요. 주로 최대한 많은 기업의 채택을 원한다면 (이것도 타당한 이유가 될 수 있어요), 허용적 라이선스가 그걸 쉽게 만들어줘요.

사용자와 조직 입장에서

의존성을 평가할 때:

  • 이 라이선스가 개선 사항에 대한 내 권리를 보장하나요?
  • 독점 버전에 대한 벤더 종속을 방지하나요?
  • 대칭적인 권력 관계를 보장하나요?

GPL 라이선스 의존성은 지속적인 자유에 대한 더 강력한 보장을 제공해요.

언어가 중요한 이유

카피레프트를 “제한적”이라고 부르는 걸 받아들이면, 우리는 사용자 자유를 보장하는 것이 개선이 아니라 한계라는 걸 암묵적으로 인정하는 거예요.

대안적 표현:

  • 상호적(Reciprocal) 라이선스 — 상호 의무를 강조
  • 보호적(Protective) 라이선스 — 사용자 자유 보장을 강조
  • 공유-동일(Share-alike) 라이선스 — 배포 대칭성을 강조

핵심 정리

  1. 의무 vs 제약: 모든 FOSS는 의무를 가져요. 차이는 그 의무가 권력을 보존하는가 재분배하는가예요.
  2. 자유의 원천: 자유는 규칙이 없는 게 아니라, 권력자에게 부과된 의무로부터 나와요.
  3. 권력 역학: 저작권법은 비대칭을 만들어요. 라이선스는 이걸 보존하거나 깨뜨릴 수 있어요.
  4. 보장 vs 허가: 카피레프트는 다운스트림 자유를 보장해요. 허용적 라이선스는 처음에만 허용해요.

이건 제약이 아니에요. 해방이죠.

저자 소개: Drew DeVault은 SourceHut의 창립자이자 자유 소프트웨어 옹호자로, 오픈소스 라이선스와 소프트웨어 자유에 대한 명확한 관점으로 유명해요.

참고: 이 글은 Drew DeVault의 개인 블로그 포스트를 번역하고, 한국 개발자를 위한 실질적 함의를 추가한 것입니다.

원문: Copyleft licenses are not “restrictive” - Drew DeVault (2024년 4월 19일)

생성: Claude (Anthropic)

총괄: (디노이저denoiser)