본문 바로가기
코딩취미/프로그램 지식

LGPL(Lesser General Public License)의 특징

by 브링블링 2023. 12. 5.
728x90

LGPL(Lesser General Public License)

LGPL (Lesser General Public License)은 GNU General Public License (GPL)의 한 종류로, 오픈 소스 소프트웨어의 배포와 수정을 규제하는 데 사용되는 라이선스입니다. LGPL-3.0은 LGPL의 최신 버전 중 하나이다

LGPL 특징

소프트웨어 수정의 자유 사용자는 LGPL-3.0 소프트웨어를 수정하고 자신의 프로그램에 통합할 수 있습니다.
파생작품 배포 수정한 소스 코드를 수정된 형태로 다시 배포할 때 해당 소스 코드도 LGPL-3.0으로 라이선스해야 합니다.
라이브러리 및 동적 링크 허용 LGPL-3.0 소프트웨어를 사용하는 응용 프로그램이나 라이브러리를 동적으로 링크할 수 있습니다.
상용 및 오픈 소스 프로젝트 사용 가능 LGPL-3.0 소프트웨어는 상용 및 오픈 소스 프로젝트에서 모두 사용할 수 있습니다.
변경사항 공개 의무 수정한 소스 코드의 일부나 전체를 공개해야 하는 의무가 있습니다. 단, 이는 변경된 라이브러리 부분에 해당합니다.
제한적인 정적 링크 허용 LGPL-3.0은 일부 특별한 경우에 한해 정적 링크로 연결된 소프트웨어도 LGPL로 라이선스할 수 있는 조건을 제공합니다.
임베디드 시스템에서의 사용 용이 LGPL-3.0은 임베디드 시스템이나 특정 제한된 환경에서도 사용이 용이하도록 설계되었습니다.

 

LGPL 제한점

공유 라이브러리의 수정 공개 의무 수정한 LGPL-3.0 소스 코드를 공유 라이브러리로 사용하고 해당 라이브러리를 공개적으로 제공할 경우, 수정한 소스 코드를 공개해야 합니다.
프로프리어터리 모듈 제한 LGPL-3.0으로 라이선스된 라이브러리를 사용하는 경우, 상업적인 프로프리어터리(종전의 상업 소프트웨어) 모듈을 이 라이브러리와 함께 제공하는 것이 제한됩니다.
파일이 아닌 인터페이스의 공개 의무 수정한 소스 코드의 변경사항 중 일부가 바이너리 인터페이스일 경우, 해당 변경사항을 공개해야 합니다.
728x90

LGPL 제한점 관련 설명 과 예시

소프트웨어 수정의 자유 사용자는 LGPL-3.0 소프트웨어를 수정하고 자신의 프로그램에 통합할 수 있습니다. 사용자가 오픈 소스 라이브러리를 다운로드하고 수정하여 자체 프로젝트에 통합하는 경우.
파생작품 배포 수정한 소스 코드를 수정된 형태로 다시 배포할 때 해당 소스 코드도 LGPL-3.0으로 라이선스해야 합니다. 수정한 라이브러리를 제3자에게 공개 배포할 때, 해당 수정된 소스 코드도 LGPL-3.0으로 라이선스.
라이브러리 및 동적 링크 허용 LGPL-3.0 소프트웨어를 사용하는 응용 프로그램이나 라이브러리를 동적으로 링크할 수 있습니다. 응용 프로그램이 동적으로 LGPL-3.0으로 라이선스된 라이브러리를 사용하는 경우.
상용 및 오픈 소스 프로젝트 사용 가능 LGPL-3.0 소프트웨어는 상용 및 오픈 소스 프로젝트에서 모두 사용할 수 있습니다. 상용 애플리케이션 또는 오픈 소스 프로젝트에서 LGPL-3.0 라이브러리 사용.
변경사항 공개 의무 수정한 소스 코드의 일부나 전체를 공개해야 하는 의무가 있습니다. 수정한 라이브러리의 일부 소스 코드를 공개하거나, 전체 소스 코드를 공개해야 함.
제한적인 정적 링크 허용 LGPL-3.0은 일부 특별한 경우에 한해 정적 링크로 연결된 소프트웨어도 LGPL로 라이선스할 수 있는 조건을 제공합니다. 정적 링크로 연결된 프로프리어터리 소프트웨어를 제공할 경우, 해당 수정된 소스 코드를 공개해야 함.
임베디드 시스템에서의 사용 용이 LGPL-3.0은 임베디드 시스템이나 특정 제한된 환경에서도 사용이 용이하도록 설계되었습니다. LGPL-3.0로 라이선스된 라이브러리를 통합하여 임베디드 시스템에 적용하는 경우.

 

예시 설명: 가정: 개발자 Alice는 LGPL-3.0으로 라이선스된 "LibX"라는 라이브러리를 사용하여 자신의 프로젝트를 개발 중이고, Bob은 Alice가 개발한 프로젝트를 사용하려고 합니다.

  1. 소프트웨어 수정의 자유:
    • 상황: Alice가 LibX를 다운로드하고 수정하여 자신의 프로젝트에 통합.
    • 결과: Alice는 LibX를 수정하고 자체 프로젝트에 통합할 수 있습니다.
  2. 파생작품 배포:
    • 상황: Alice가 자신의 프로젝트를 Bob에게 배포.
    • 결과: Alice는 자신의 프로젝트를 배포할 때 LibX의 수정된 소스 코드도 LGPL-3.0으로 라이선스해야 합니다.
  3. 라이브러리 및 동적 링크 허용:
    • 상황: Alice의 응용 프로그램이 LibX를 동적으로 링크.
    • 결과: Alice의 응용 프로그램은 동적으로 LGPL-3.0으로 라이선스된 LibX를 사용할 수 있습니다.
  4. 변경사항 공개 의무:
    • 상황: Alice가 LibX의 일부 소스 코드를 수정.
    • 결과: Alice는 수정한 일부 소스 코드를 공개해야 하며, LibX의 전체 소스 코드를 공개할 필요는 없습니다.
  5. 제한적인 정적 링크 허용:
    • 상황: Alice가 LibX를 정적으로 링크하여 상용 소프트웨어에 포함.
    • 결과: Alice는 특별한 조건을 충족하면 정적으로 링크된 프로프리어
728x90