common.loading

GPL 2.0 vs GPL 3.0:변경 사항 상세 분석

GNU 일반 공중 사용 허가서 버전 진화 분석

articles.categories.versionsarticles.difficulty.intermediate
👤LicenseHub Team
📅2024. 1. 10.
⏱️12 articles.content.minutesRead
#gpl#copyleft#history

GPL 2.0 vs GPL 3.0:변경 사항 상세 분석

GNU 일반 공중 사용 허가서(GPL)는 가장 중요한 카피레프트 오픈소스 라이선스 중 하나입니다. GPL 3.0의 출시는 오픈소스 라이선싱에서 중요한 진전을 의미했습니다.

버전 출시 타임라인

  • GPL 1.0: 1989년 출시
  • GPL 2.0: 1991년 출시
  • GPL 3.0: 2007년 출시 (3년간의 공개 토론 후)

주요 변경 사항 개요

1. 특허 보호 조항

GPL 2.0:

  • 명시적인 특허 보호 조항 없음
  • 암묵적인 특허 라이선싱에 의존

GPL 3.0:

  • 명시적인 특허 보호 조항
  • 특허 보복 조항(patent retaliation)
  • 특허 트롤링 방지

2. 안티-티보화 조항

GPL 2.0:

  • 소스 코드 제공만 요구
  • 수정 사항의 하드웨어 잠금 허용

GPL 3.0:

  • "설치 정보" 제공 요구
  • 사용자가 기기에서 수정된 버전을 실행할 수 있어야 함
  • TiVo화 현상 방지

3. 호환성 개선

GPL 2.0:

  • 엄격한 호환성 요구사항
  • 다른 라이선스와의 결합이 어려움

GPL 3.0:

  • 더 유연한 호환성 메커니즘
  • "추가 조항" 허용
  • Apache 2.0 등의 라이선스와 호환

상세 변경 분석

특허 보호

GPL 3.0 제11조에서 특허 보호 도입:

각 기여자는 귀하에게 비독점적이고 전 세계적이며 무료인 특허 라이선스를 부여합니다...

이는 GPL 2.0의 특허 보호 부족 문제를 해결했습니다.

DRM 및 안티-티보화

GPL 3.0 제6조 요구사항:

"사용자 제품"은... 개인, 가족 또는 가정용으로 설계되거나 판매되는 소비재

사용자 제품의 경우 "설치 정보"를 제공해야 합니다.

국제화 개선

  • 더 나은 국제 법적 적응
  • 명확한 종료 및 복구 조항
  • 개선된 정의 및 용어

실제 영향

채택 현황

여전히 GPL 2.0을 사용하는 유명한 프로젝트:

  • Linux 커널
  • Git
  • MySQL

GPL 3.0으로 이전한 프로젝트:

  • GCC
  • Bash
  • GRUB

호환성 고려사항

결합 시나리오GPL 2.0GPL 3.0
Apache 2.0과 결합❌ 비호환✅ 일방향 호환
BSD와 결합✅ 호환✅ 호환
프로프라이어터리와 결합❌ 비호환❌ 비호환

마이그레이션 가이드

GPL 2.0에서 GPL 3.0으로 마이그레이션

  1. 프로젝트 요구사항 평가

    • 더 강한 특허 보호가 필요한가?
    • 하드웨어 잠금 문제를 신경 쓰는가?
    • 의존성이 호환되는가?
  2. 의존성 호환성 확인

    • 모든 의존성이 GPL 3.0 호환인지 확인
    • "GPL 2.0 전용" 구성 요소에 특별히 주의
  3. 라이선스 파일 업데이트

    • 라이선스 텍스트 교체
    • 파일 헤더 업데이트
    • 문서 업데이트

마이그레이션 예시

GPL 2.0 파일 헤더:

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

GPL 3.0 파일 헤더:

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

선택 권장사항

GPL 2.0을 선택해야 하는 경우

  • GPL 2.0 전용 프로젝트와의 호환성이 필요한 경우
  • 프로젝트에 오랜 역사가 있고 마이그레이션 비용이 높은 경우
  • 특허 및 하드웨어 잠금 문제를 신경 쓰지 않는 경우

GPL 3.0을 선택해야 하는 경우

  • 새로운 프로젝트를 시작하는 경우
  • 더 강한 특허 보호가 필요한 경우
  • 안티-티보화 문제를 신경 쓰는 경우
  • 더 많은 라이선스와의 호환성을 원하는 경우

결론

GPL 3.0은 GPL 2.0에 대한 중요한 진전으로, 현대 소프트웨어 개발의 많은 문제를 해결합니다. 마이그레이션에는 신중한 호환성 고려가 필요하지만, 새로운 프로젝트의 경우 일반적으로 GPL 3.0이 더 나은 선택입니다.

선택할 때 다음을 균형 있게 고려해야 합니다:

  • 기술적 요구사항 vs 호환성 요구사항
  • 법적 보호 vs 프로젝트 유연성
  • 장기 개발 vs 단기 편의성