나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-03-11 19:25:38

GNU 약소 일반 공중 사용 허가서

LGPL에서 넘어옴


1. 개요2. 내용3. 관련 문서

1. 개요


GNU LGPL (GNU Lesser General Public License; 약소 일반 공중 사용 허가서)는 자유 소프트웨어 재단 GNU 프로젝트의 라이선스 종류중에 하나로 어플리케이션 개발자를 위해 제창되었다. 이전에는 Library General Public License로 불리기도 했다.

2. 내용

기본적으로 GNU GPL과 비슷하지만, GNU GPL이 라이브러리의 라이선스로 쓰일 경우에 발생하는 문제점을 해결할 수 있도록 만들어져 있다.

GNU GPL로 허가된 프로그램이 라이브러리일 경우 그 프로그램과 링크되어 작동하는 프로그램은 반드시 GPL로 배포되어야 한다. 프로그램에서 '링크'란 목적 코드인 실행물을 실행할 때 라이브러리를 불러오면서 하나의 실행 프로그램으로 결합하도록 하는 기능을 말한다. 이는 운영체제의 링커가 작업하여 RAM에 일시적으로 올라가 작동하게 된다. 자유 소프트웨어 재단은 GPL 프로그램 또는 라이브러리가 독점 라이브러리 또는 프로그램과 링크되어 결과값을 공유하며 단일 프로그램인 것처럼 작동하는 라이브러리 또는 프로그램의 경우 파생 저작물로 해석되며 그에 따라 해당하는 독점 라이브러리 또는 프로그램의 소스가 공개되어야 한다.

하지만 위와 같이 라이브러리를 GPL로만 배포한다면, 상용 프로그램에서 그 라이브러리를 사용할 수 없으므로 충분한 경쟁력이 없는 라이브러리에 대해서는 이를 대체하는 라이브러리를 새로 만들게 될 것이며, 이는 자유 소프트웨어 생태계에 큰 위협이 된다. 자유 소프트웨어 재단은 이에 따라 LGPL이라는 새로운 라이선스를 만들었고, 지금에 이르러서는 FFmpeg 등의 대형 프로젝트에도 사용되고 있다.

LGPL은 다음과 같은 사용 요건을 제시하고 있다.
요약하자면, LGPL 라이브러리 소스코드를 '정적 링크'로 사용하는 경우 프로그램의 목적 코드를 제공해야 하며 그게 싫으면 '동적 링크' 방식으로 이용한다면 어플리케이션 소스코드를 제공할 필요가 없다는 것이다. '정적 링크'일 시 프로그램의 목적 코드를 제공해야 한다는 부분은 LGPL 라이브러리 사용에 대한 남용을 방지하기 위함이다. 동적 링크 방식으로 어플리케이션을 컴파일하면 프로그램 소스코드를 공개할 필요가 없어 상용 프로그램들과 같은 클로즈드 소프트웨어 대부분이 이 방식을 이용한다. 즉 다이나믹 링크로 공통적으로 사용하는 LGPL 바이너리 라이브러리 정도를 외부에 노출시켜 달라는 요청과도 같다.

GNU 역시 다른 플랫폼이나 컴파일러 라이브러리들과 경쟁을 해야하는 상황이라 어플리케이션 개발자를 위한 라이선스로 제창된것이다.

일부 LGPL 프로젝트는 별도 표기에 정적 연결을 해도 파생 저작물로 인정하지 않는다는 조항을 두어 더 자유롭게 하기도 한다.

3. 관련 문서

분류