GNU 일반 공중 사용 허가서

GNU 일반 공중 사용 허가서(GNU General Public License, GNU GPL 또는 GPL)는 자유 소프트웨어 재단에서 만든 자유 소프트웨어 라이선스로, 소프트웨어의 실행, 연구, 공유, 수정의 자유를 최종 사용자에게 보장한다. 대표적으로 리눅스 커널이 이용하는 사용 허가이다. GPL은 가장 널리 알려진 강한 카피레프트 사용 허가이며, 이 허가를 가진 프로그램을 사용하여 새로운 프로그램을 만들게 되면 파생된 프로그램 역시 같은 카피레프트를 가져야 한다. 이러한 철학에서 GPL은 컴퓨터 프로그램을 이용하는 사람에게 자유 소프트웨어의 권한을 누리며 카피레프트를 사용함으로써 그러한 자유가 보전되고, 이전 작업 내용을 수정하거나 다른 내용을 추가하는 것도 허용됐다. 이는 허용적인 자유 소프트웨어 사용 허가로서, BSD 사용 허가가 대표적인 예이다.

GNU 약소 일반 공중 사용 허가서(The GNU Lesser General Public License, LGPL)는 이를 변형하여 더 허가된 형태로서, 소프트웨어 라이브러리를 염두에 둔 것이다. 또 GNU 자유 문서 사용 허가서 (GNU FDL)은 GNU 소프트웨어에 대한 문서의 사용 허가로 시작하였으나 위키백과 프로젝트와 같이 다른 문서 형태에도 널리 퍼지게 되었다.

다만 현재까지 이 허가서는 미국과 유럽 일부 국가 등에서만 법원의 판단 등으로 합법한 허가서로 인정받았고, 대다수 국가에서는 이에 따른 법률적 판단을 받은 바 없다. 대한민국 내에서도 직접 이 허가서가 합법한가에 대한 법원의 판단은 없었으며, 다만 허가서라는 특성상 준법행위를 하는 다수는 분쟁없이 이 허가서의 제약을 따르고 있을 뿐이다. 대한민국 내에서도 한 차례 법원의 판단을 받을 뻔했던 엘림넷과 하이온넷 사건이 있었으나, 회사 기밀 유출 사건으로 형사기소되는 바람에 중요 쟁점일 수 있었던 GPL에 대한 판단은 형사법원에서 다루지 않고 다른 이유로 1, 2심 법원에서 유죄를 판결, 최종 확정한 바 있다. 따라서 현재로서는 적어도 공정거래위원회 등을 통해 표준 약관심의 따위를 받아 확정지을 필요가 있으며, 다만 그렇다 하더라도 이 표준 허가서가 부당하다는 법률적 판단도 없으므로, 이 허가서의 조건을 위반할 시 저작자로부터 기소당할 수 있다.

 소프트웨어에 관련된 다섯 가지 의무 
GNU 일반 공중 사용 허가서는 누구에게나 다음의 다섯 가지의 의무를 저작권의 한 부분으로서 강제한다.

 컴퓨터 프로그램을 어떠한 목적으로든지 사용할 수 있다. 다만 법으로 제한하는 행위는 할 수 없다.
 컴퓨터 프로그램의 실행 복사본은 언제나 프로그램의 소스 코드와 함께 판매하거나 소스코드를 무료로 배포해야 한다.
 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경할 수 있다.
 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 반드시 공개 배포해야 한다.
 변경된 컴퓨터 프로그램 역시 반드시 똑같은 라이선스를 취해야 한다. 즉 GPL 라이선스를 적용해야 한다.

 GPL의 유래 

GPL은 미국의 리처드 스톨만(Richard Stallman)이 GNU-프로젝트로 배포된 프로그램의 라이선스로 사용하기 위하여 작성하였다. 이것은 Emacs, GNU 디버거(GDB), GNU 컴파일러 모음(GCC)에서 사용된 라이선스의 초기 판의 통합에 기반하고 있다. 이 라이선스들은 현재 GPL과 비슷한 조항들이 있으나, 각각의 프로그램 고유의 라이선스였다. 스톨만의 목표는 어떤 프로그램에서도 사용할 수 있는 하나의 라이선스를 만들어서 여러 프로젝트에서 코드를 공유할 수 있게 하는 것이었다. 이와 같은 목적에 부합하는 저작권의 형태로서 GPL이 1989년 1월에 처음으로 빛을 보게 되었다.

1990년에 이르자 몇몇 라이브러리에서 전략적으로 규제를 약화해야 할 필요성이 생겨났고, 이에 대한 조치로 라이브러리-GPL(LGPL, Library General Public License)이 생겨나게 되었으며, 1991년 6월에 배포된 GPL의 두 번째 판을 따라 LGPL도 두 번째 판으로 같은 번호를 붙여서 두 라이선스가 상호보완적임을 나타내었다. 1999년에는 LGPL은 약소 일반 공중 사용 허가서(Lesser General Public License)로 이름을 바꾸어 부르게 되면서 2.1판으로 숫자를 바꾸게 되었다.

GPL은 오늘날 자유 소프트웨어 저작권 가운데 가장 널리 쓰이고 있으며, 대부분의 GNU 프로젝트는 GPL과 LGPL의 규준에 따라 진행되고 있는 것으로 알려져 있다. 또한 모든 LGPL의 규준에 따르는 프로그램이나 프로젝트는 동시에 GPL의 규준에 따르고 있다.

 GPL 버전 
 GPLv1 
GPL의 버전 1은 1989년 1월에 발표되었다(GPLv1 전문). 이것은 자유 소프트웨어에서의 두 가지 중요한 자유를 보장해 주었는데, 하나는 프로그램의 소스 코드를 공개하지 않은 채 바이너리 파일만 배포하는 것을 막는 경우로 이것을 막기 위해 GPLv1에는 프로그램을 GPLv1로 배포할 때는 사람이 이해하기 쉬운 소스 코드를 같이 배포해야 한다는 조건이 들어갔다.

두 번째 문제는 프로그램에 추가적인 제약을 걸 가능성이 있다는 점이었고, 이를 막기 위해 GPLv1 프로그램을 수정한 프로그램은 원래 프로그램과 마찬가지로 GPLv1을 따라야 한다는 조건이 들어갔다.

 GPLv2 
GPL 버전 2는 1991년 6월에 발표되었다(GPLv2 전문).
중요한 변경 사항은 "자유냐 죽음이냐"Section 7에 자세히 명시되어 있다. 이 내용은 GPL 프로그램을 배포하는 것을 막는 조건, 예를 들어 특허로 인하여 추가적으로 돈을 지불해야 한다거나 하는 일이 발생하여 소스 코드의 공개가 불가능하고 실행 바이너리 프로그램만 배포하려고 한다면 소스 코드 뿐만 아니라 실행 바이너리 프로그램조차 배포할 수 없도록 보완했다.

그리고 1990년대에 이르러 소프트웨어 라이브러리에 대해서는 조금 약화된 GPL 라이선스가 전략적으로 더욱 유용하다는 의견이 많아졌다. 이에 대한 내용을 LGPL(the Library General Public License)이라고 하여, 1991년 6월에 발표된 GPLv2와 동시에 같이 발표되었다. 이 두 가지의 내용은 1999년 LGPL v2.1로 발전되었고 LGPL(GNU Lesser General Public License)이라고 불렀다.

 GPLv3 
GPL 버전 3은 2007년 6월 29일에 발표되었다.

2005년 후반에 자유 소프트웨어 재단에서 GPL의 세 번째 판을 개발할 것이라고 발표했다. 2006년 1월 16일 첫 번째 초안이 발표되었다. 2판과 다른 점도 비공식적으로 나와 있다 .

2006년 2월 25일 벨기에 브뤼셀에서 열린 FOSDEM 발표에서 리처드 스톨만은 다음과 같이 말했다.

바뀐 점 중에서 가장 중요한 4가지를 말하자면, 소프트웨어 특허에 대처하는 것, 다른 라이선스와의 호환성, 어떤 부분의 원시 코드와 무엇이 GPL이 포함되어야 하는 원시 코드를 구성하는지와 디지털 제한 관리(Digital Restrictions Management)에 신경을 썼다.

2006년, 자유 소프트웨어 재단은 GPL의 바뀔 수 있는 부분에 대해서 열두달간의 공공자문회를 가졌다. 이 과정에서 자유 소프트웨어 재단, 소프트웨어 자유 법률 센터, 유럽 자유 소프트웨어 재단이 의견을 조정했다.

 비판 
 마이크로소프트 
2001년에 마이크로소프트의 CEO인 스티브 발머가 "건드리는 모든 지적 재산권에 퍼지는 암같은 존재(a cancer that attaches itself in an intellectual property sense to everything it touches)"라며 비판했다.

2009년 7월, 마이크로소프트는 GPL 라이선스를 위반한 하이퍼V의 컴포넌트의 소스코드 20,000여줄을 공개했다.

 같이 보기 
 리눅스
 자유문서 (Free Contents)
 GNU 약소 일반 공중 사용 허가서(GNU LGPL)
 GNU 자유 문서 사용 허가서

 각주 

 외부 링크 
 GNU GPL 원문
 한글판
 자유 소프트웨어 재단 홈페이지
 유네스코 자유 소프트웨어 포털
 GNU Korea 홈페이지

분류:GNU 프로젝트
분류:카피레프트
분류:자유 및 오픈 소스 소프트웨어 사용권
분류:자유 저작물 사용권
분류:카피레프트 소프트웨어 사용권