강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터 1급 :자유소프트웨어의 정의와 GNU GPL

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터 1:자유소프트웨어의 정의와 GNU GPL




2) 자유 소프트웨어의 정의와 GNU GPL

: 송창훈(chsong@gnu.org)

 

리차드 스톨만은 카피레프트 : 실용적인 이상주의에서 자신이 주장한 자유 소프트웨어가 이상주의적인 희망에 근거한 것이며, 그 이상을 실현하기 위한 수단으로 선택한 카피레프트, GNU GPL이 자유 소프트웨어를 지지하는 공동체에 많은 이익을 가져다 줄 수 있다고 얘기합니다.

 

 

 

 

또한 자유 소프트웨어 공동체를 지키기 위해서는 독점 소프트웨어 업체와 타협하지 않고 공동체에 동참하는 것이 중요하다고 역설하고 있습니다.

 

 

 

 

그렇다면 소프트웨어에 있어서 마치 이상주의적 구현물과 같이 언급되고 있는 자유 소프트웨어의 보다 정확한 의미와 GNU GPL과 카피레프트와의 관계는 무엇일까요? 여기서는 자유 소프트웨어의 의미와 자유 소프트웨어를 지키기 위한 수단으로 선택한 카피레프트에 대해서 좀더 자세히 설명해 보도록 하겠습니다.

 

 

 

 

 

 

가장 핵심적이면서 기본적인 출발점인 자유라는 단어의 의미는 무엇에 구속되거나 얽매이지 않는다는 관점에서의 자유를 말합니다.

 

 

 

 

자유에 해당하는 영어 단어인 “FREE”2가지 뜻을 함께 갖고 있습니다.

 

 

 

 

첫 번째는 구속되지 않는다는 의미이고, 두 번째는 돈을 지불하지 않아도 된다는 무료(無料, gratis)라는 의미입니다.

 

 

 

 

영어에서는 이러한 중의적인 의미의 차이 때문에 많은 오해가 발생하기도 하지만 다행히 한국어에서는 자유 소프트웨어의 참된 의미만을 나타내 줄 수 있는 자유(自由)”라는 단어가 독립적으로 존재하기 때문에 용어상의 문제로 인한 혼동은 없다고 할 수 있습니다.

 

 

 

 

따라서 GNU/FSF에서 사용하는 자유 소프트웨어를 지칭할 때는 용어상의 혼동이 존재할 수 있는 프리 소프트웨어가 아닌 보다 명확한 의미를 가진 자유 소프트웨어로 번역하는 것이 바람직합니다.

 

 

 

 

자유 소프트웨어는 무엇에 구속되거나 얽매이지 않아도 되는 소프트웨어라는 뜻입니다.

 

 

 

GNU/FSF에서는 어떤 프로그램이 자유 소프트웨어인가 아닌가를 판단할 수 있는 기준으로 다음과 같은 4가지 조건을 규정하고 있는데, 이 조건들을 모두 충족시키는 소프트웨어를 자유 소프트웨어라고 할 수 있습니다.

 

 

 

 

 

 

자유 0 : 프로그램을 어떠한 목적을 위해서라도 실행할 수 있는 자유

 

 

자유 1 : 프로그램의 작동 원리를 연구하고, 이를 자신의 필요에 맞게 변경시킬 수 있는 자유

 

 

자유 2 : 이웃을 돕기 위해서 프로그램을 복제하고 배포할 수 있는 자유

 

 

자유 3 : 프로그램을 향상시키고 이를 공동체 전체의 이익을 위해서 다시 환원시킬 수 있는 자유

 

 

 

점층적인 구조를 갖고 있는 자유 소프트웨어의 4가지 정언 조건들은 자유 소프트웨어를 명확하게 규정하기 위한 것이며, 이러한 기준을 만족하는 소프트웨어를 보호하기 위한 법률적 장치가 GNU GPL이라고 불리는 사용권 허가 방식입니다.

 

 

 

 

흔히 말하는 카피레프트라는 단어는 특정한 소프트웨어를 자유 소프트웨어로 만드는 방식들을 통칭하는 일반적인 명칭이며 카프레프트가 성립하기 위해서는 자유 2’에 해당하는 프로그램에 대한 배포가 일어날 경우에 원시코드의 개작 여부에 상관없이 배포 기준을 그대로 유지시켜야 합니다.

 

 

 

 

예를 들면, 자신이 얻은 원시코드를 개작해서 새로운 기능을 추가하거나 보다 확장된 프로그램을 만들었다 하더라도 최초의 원시코드에 설정된 사용권 허가 방식을 변경하거나 새로운 제한 사항을 추가하지 않고 원래의 내용을 그대로 유지시켜야 합니다.

 

 

 

 

따라서 카피레프트로 설정된 프로그램을 기반으로 만들어진 프로그램들은 모두 카피레프트가 될 수밖에 없는 순환적인 구조를 갖게 됩니다.

 

 

 

 

자유 소프트웨어의 범위와 체계가 현재와 같이 커질 수 있었던 가장 근본적인 외적 이유는 카피레프트가 이러한 순환적이고 팽창적인 구조를 갖고 있기 때문입니다.

 

 

 

 

 

 

GNU GPL은 이러한 카피레프트를 실제로 구현한 방법 중 하나이며, 만약 새로운 사용권 허가 문서를 만들 경우에 카피레프트에 맞게 설계된다면 이는 GNU GPL과 같이 카피레프트를 담보할 수 있는 실제적인 법률 장치 중의 하나가 되는 것입니다.

 

 

 

 

따라서 반드시 GNU GPL을 사용하지 않더라도 자유 소프트웨어에 대한 4가지 조건들을 만족시키면서 소프트웨어를 사용하거나 배포할 수 있도록 허용한다면 그것은 GNU/FSF가 견지하고 있는 자유 소프트웨어와 외적인 형식면에서 호환된다고 말할 수 있으며, 이러한 GPL 호환 사용권 허가 방식들은 GPL과 충돌하지 않기 때문에 함께 혼용될 수 있습니다.

 

 

 

 

여기에 해당하는 것으로는 LGPL, X11 라이선스, Zlib 라이선스, Python 라이선스, Expat 라이선스 등이 있는데 여러가지 사용권 허가 방식들과 이들 간의 호환 여부에 대한 간략한 설명은 http://www.gnu.org/philosophy/ license-list.html 페이지를 통해 참고할 수 있습니다.

 

 

 

 

이 글은 GNU/FSF가 카피레프트의 방법으로 공식적으로 사용하고 있는 GPL에 집중하고 있기 때문에 GPL 호환 및 비호환 사용권 허가 방법들에 대한 설명은 생략합니다.

 

 

 

 

 

 

자유 소프트웨어를 가름하는 4가지 기준에 따라 다양한 종류의 소프트웨어들을 다음과 같은 다이어그램으로 분류해 볼 수 있습니다.

 

 

 

 

 

 

[자유 소프트웨어의 범주]

71171e6fda183fe58c0c77e135210b5c_1679539292_5692.png
 

 

[그림 1] 자유 소프트웨어가 되기 위한 4가지 조건에 의한 소프트웨어의 분류

 

 

GPL 소프트웨어 - GPL'ed software

 

 

GPL을 사용권 허가 방법으로 사용하고 있는 소프트웨어를 지칭합니다.

 

 

 

 

GNU/FSF가 배포하고 있는 거의 대부분의 소프트웨어들은 GPL 소프트웨어입니다.

 

 

 

 

 

 

카피레프트 소프트웨어 - Copylefted software

 

 

GNU/FSF가 정의하고 있는 자유 소프트웨어 대한 4가지 조건을 충족시키는 소프트웨어 중에서 카피레프트 방식의 배포가 이루어지는 소프트웨어를 지칭합니다.

 

 

 

 

즉 원시코드의 개작 여부에 관계없이 원래의 배포 기준을 그대로 유지시켜야하는 소프트웨어를 말합니다.

 

 

 

 

GPL은 카피레프트를 구현하는 방식이기 때문에 GPL 소프트웨어는 카피레프트 소프트웨어의 부분 집합이 됩니다.

 

 

 

 

 

 

공용 소프트웨어 - Public domain software

 

 

저작권자가 저작권을 명시적으로 포기했거나 저작권자를 알 수 없는 공개된 소프트웨어를 지칭합니다.

 

 

 

 

카피레프트는 저작권을 인정하는 방식이기 때문에 공용 소프트웨어가 카피레프트에 포함되지는 않지만, 저작권이 없음으로 인해서 사용상의 어떠한 제한도 존재하지 않기 때문에 자유 소프트웨어처럼 사용될 수 있습니다.

 

 

 

 

이 말은 공용 소프트웨어가 독점 소프트웨어로 사용될 수도 있다는 것을 함축합니다.

 

 

 

 

[그림 1]에서는 보다 명확한 분류를 위해 공용 소프트웨어를 자유 소프트웨어의 부분 집합으로만 표시했지만, 경우에 따라서 독점 소프트웨어의 부분 집합으로 표시될 수도 있습니다.

 

 

 

 

GNU/FSF에서는 우리에게 유리한 방향으로 정의하는 기준을 적용해서 공용 소프트웨어를 카피레프트 이외의 자유 소프트웨어로 분류하고 있습니다.

 

 

 

 

[그림 1]에서 자유 소프트웨어를 구성하는 부분 집합 중 카피레프트 소프트웨어의 여집합이 카피레프트 이외의 자유 소프트웨어입니다.

 

 

 

 

 

XFree86 형태의 소프트웨어 - XFree86 style software

 

 

공용 소프트웨어와 마찬가지로 카피레프트 이외의 자유 소프트웨어중 하나입니다.

 

 

 

 

대표적인 그래픽 유저 인터페이스인 X 윈도우 시스템에 적용되는 사용권 허가 방식이 여기에 해당하는데, 이 방식에서는 개작과 재배포가 허용되지만, 카피레프트에는 허용되지 않는 추가적인 제약의 설정이 가능합니다.

 

 

 

 

 

이 말은 이러한 형태의 소프트웨어를 이용해서 독점 소프트웨어를 만드는 것이 가능하다는 뜻입니다.

 

 

 

 

 

 

오픈소스 소프트웨어 - Open Source software

 

 

 

오픈소스에 대한 정의를 충족시키는 소프트웨어를 지칭합니다.

 

 

 

 

오픈소스에 대한 정의는 http://korea.gnu.org/people/chsong/copyleft/osd-korean.html 문서를 통해 참고할 수 있습니다.

 

 

 

 

예외가 존재하기는 하지만, 명칭상의 차이를 제외하면 일반적으로 오픈 소스 소프트웨어는 자유 소프트웨어와 동일하다고 볼 수 있습니다.

 

 

 

셰어웨어 - Shareware

 

 

일정한 기간 동안 무료로 사용할 수 있게 하는 등의 부분적인 제한을 설정해서 배포되지만, 계속해서 사용하기 위해서는 비용을 지불해야 하는 소프트웨어를 지칭합니다.

 

 

 

 

셰어웨어는 상업적인 목적을 위한 마케팅 방법의 하나로 대부분 원시코드가 제공되지 않거나 배포상의 제약이 설정되므로 독점 소프트웨어에 속합니다.

 

 

 

 

 

 

프리웨어 - Freeware

 

 

셰어웨어와 유사한 형태의 소프트웨어로, 일반적으로 배포는 허용하지만 개작은 허용하지 않는 경향을 갖고 있습니다.

 

 

 

 

프리웨어라는 표현에 특히 주의해야 하는 것은 자유 소프트웨어가 아님에도 불구하고 유사한 어감의 단어를 사용함으로써 사용자들을 혼동시키고 있기 때문입니다.

 

 

 

 

GNU/FSF에서는 프리웨어라는 표현을 사용하지 않고 있으며, 프리웨어는 결코 자유 소프트웨어가 아닙니다.

 

 

 

 

 

 

비공개 소프트웨어 - Closed software

 

 

(오픈 소스 소프트웨어에 대한 상대적인 표현으로) 원시코드가 공개되지 않는 소프트웨어를 지칭합니다.

 

 

 

 

원시코드가 공개되지 않는 것은 자유1’자유 3’을 성립시킬 수 없기 때문에 비공개 소프트웨어는 독점 소프트웨어에 속합니다.

 

 

 

 

 

 

독점 소프트웨어 - Proprietary software

 

 

원시코드가 공개되지 않거나 프로그램에 대한 복제 및 배포가 금지되는 등의 자유 소프트웨어에 대한 4가지 조건이 충족되지 않는 소프트웨어를 지칭합니다.

 

 

 

 

[그림 1]에 의하면 무료로 다운 받을 수 있는 소프트웨어의 영역에 독점 소프트웨어의 일부가 포함되어 있기도 한데, 무료로 다운 받을 수 있다고 하더라도 사용과 복제 및 배포 상의 제약이 있다면 이는 자유 소프트웨어가 될 수 없기 때문에 독점 소프트웨어에 포함됩니다.

 

 

 

 

Acrobat ReaderReal Player와 같은 프로그램이 이러한 형식을 갖는 대표적인 예라고 할 수 있습니다.

 

 

 

 

이와 반대로 무료로 다운 받을 수 있는 소프트웨어의 영역에 자유 소프트웨어의 일부가 제외되어 있는 이유는 자유 소프트웨어라고 해서 무조건 무료로 제공되어야 한다는 조건이 자유 소프트웨어에 대한 4가지 조건에는 포함되어 있지 않기 때문입니다.

 

 

 

 

따라서 A라는 기업이 GPL로 사용권 허가를 설정한 프로그램을 새롭게 창작한 뒤에 이를 유료로 판매하면서 제품을 구입하는 사람에게만 원시코드를 제공하는 방식으로 사업을 영위한다고 해도 이는 GPL 위반이 되지 않습니다.

 

 

 

 

GNU GPL은 카피레프트를 실제로 구현한 것이기 때문에 카피레프트 방식을 충족시키기만 하면 구체적인 배포 형태에 대한 제한은 두지 않습니다.

 

 

 

 

 

 

상용 소프트웨어 - Commercial software

[그림 1]에는 언급되어 있지 않지만, 소프트웨어의 종류를 구분할 때 빼놓을 수 없는 중요한 형태의 하나가 바로 상용 소프트웨어입니다.

 

 

 

 

상용 소프트웨어는 판매 수익을 통해 돈을 벌기 위한 목적으로 만들어진 소프트웨어를 말합니다.

 

 

 

 

자유 소프트웨어에서 사용된 자유는 무료를 의미하는 금전적인 측면의 자유가 아니라 구속되지 않는다는 관점에서의 자유라고 이미 언급한 바 있습니다.

 

 

 

 

따라서 자유 소프트웨어를 유료로 판매하는 것은 전혀 문제가 되지 않기 때문에 경우에 따라서 자유 소프트웨어가 상용 소프트웨어가 될 수도 있습니다.

 

 

 

 

또한 독점 소프트웨어라고 해서 모두 상용 소프트웨어가 되는 것도 아닙니다.

 

 

 

 

A라는 기업에 의해서 만들어진 인터넷 유해 정보 차단 프로그램이 인터넷을 통해서 무료로 배포되고 있다고 가정해 봅시다.

 

 

 

 

A가 프로그램의 원시코드를 공개하지 않고 제3자에 의한 개작과 배포를 허용하지 않는다고 해도 프로그램을 개발한 목적 자체가 공익을 위한 것이었고 또한 프로그램을 전액 무료로 배포하고 있다면 이 프로그램을 상용 소프트웨어로 볼 수 없습니다.

 

 

 

 

그러나 이 프로그램이 자유 소프트웨어의 조건들을 충족시키지는 못하기 때문에 자유 소프트웨어로 간주될 수도 없습니다.

 

 

 

 

이 프로그램을 굳이 [그림 1]의 기준에 따라 분류해 본다면 `비상용 독점 소프트웨어'가 된다고 할 수 있습니다.

 

 

 

 

따라서 상용 소프트웨어는 자유 소프트웨어와 독점 소프트웨어를 가늠하는 구분이 아니라 단지 돈을 받고 판매하는가 아닌가에 근거한 구분 방식입니다.

 

 

 

 

자유 소프트웨어와 독점 소프트웨어는 경우에 따라서 모두 상용 소프트웨어와 비상용 소프트웨어가 될 수 있습니다.

 

 

 

 

 

 

위의 분류 형태를 가만히 살펴보면, 그 기준이 저작권이 누구에게 있는가에 초점을 맞추고 있는 것이 아니라 프로그램의 원시코드가 제공되는 지와 개작과 배포를 허용하는지의 여부에 있다는 것을 알 수 있습니다.

 

 

 

 

이는 소프트웨어의 분류가 다른 사람들의 사용을 염두에 둔 기준을 바탕으로 한 것이기 때문입니다.

 

 

 

 

 

 

일반적으로 라이선스(License)라는 말로 불리는 사용권 허가또는 사용 허가는 정해진 범위 안에서의 사용을 허가해 주는 저작권자로부터의 일방적인 승인입니다.

 

 

 

 

이러한 상황에서는 사용자가 저작권자의 승인 내용에 포함된 조건에 동의할 경우에만 사용 계약이 성립됩니다.

 

 

 

 

GNU GPL(GNU General Public License)은 마지막에 포함된 라이선스라는 단어가 말해주듯이 저작권 설정 문서가 아닌 사용권 허가 문서입니다.

 

 

 

 

새로운 저작물을 창작하게 되면 명시적인 저작권 설정 절차를 거치지 않는다고 하더라도 창작과 함께 저작권이 자동적으로 인정됩니다. 컴퓨터 프로그램 또한 저작권법에 의해서 이러한 권리가 자동으로 인정되는데, 미국과는 달리 한국에서는 컴퓨터 프로그램 보호법이라는 별개의 특별법이 적용됩니다.

 

 

 

 

그러나 실제적으로는 컴퓨터 프로그램의 특수성을 감안해서 법률의 이름만을 따로 만든 뒤에 세부적인 조항을 저작권법의 범위 안에서 컴퓨터 프로그램에 맞게 적용하도록 입법한 것이기 때문에 저작권법의 틀에서 벗어나지 않습니다(20097월에 컴퓨터프로그램보호법은 폐지되고 저작권법에 통합되었다.

 

 

 

 

따라서 현재는 우리나라도 미국과 같이 저작권법에 의해 컴퓨터프로그램을 보호한다.

 

 

 

 

여기서는 원문을 그대로 옮긴 것이다).

 

따라서 GNU GPL은 프로그램을 창작한 저작자로부터 불특정 다수의 사람들에게 해당 프로그램을 GNU/FSF가 정의하고 있는 자유 소프트웨어의 범위 안에서 마음껏 사용할 수 있도록 합법적으로 허용해 주는 사용권 허가 문서라고 할 수 있습니다.

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  219 명