손유에! 이루어 내려면 기다리고 있어서는 안돼!
-- 다이 호우밍, ``사람아 아! 사람아'' 중에서, 1980년
![[노트북 앞에 앉아 있는 리차드 스톨만]](image/rms-2000-10-14-by-lugos-3.jpg)
Photo Courtesy of Linux User Group Of Slovenia
글: 리차드 스톨만
<rms@gnu.org>1
한국어 번역:
2000년 5월 9일 김원의 <wekim@sogang.ac.kr>,
송창훈 <chsong@gnu.org>
인간의 의사는 그 사람의 가치관이나 목적에 따라 결정되고 사람들의 삶의 가치 기준이나 목표는 다르기 마련입니다. 돈, 명예, 사랑, 생존, 즐거움, 자유 등은 선량한 사람들이 취할 수 있는 목표들이며 그것이 자신뿐 아니라 다른 사람에게도 도움이 되는 것이라면 이상적인 것이라 말할 수 있습니다.
자유 소프트웨어를 위한 저의 활동은 자유와 협력을 널리 퍼트리기 위한 이상주의적인 목표에서 시작되었습니다. 2 저는 협력을 허용하지 않는 독점 소프트웨어보다 자유 소프트웨어가 널리 퍼져서 이 사회가 보다 좋은 곳이 되기를 소망합니다. 이것이 GPL이 만들어진 근본적인 이유입니다. GPL 프로그램에 추가되는 모든 코드는, 비록 그것이 별도의 파일로 존재한다고 하더라도 반드시 자유 소프트웨어가 되어야 합니다. 저는 다른 사람들이 자유 소프트웨어를 만드는데 도움을 주기 위해서 제가 만든 코드들을 자유 소프트웨어로 만들었습니다. 독점 소프트웨어 개발자들이 그들의 프로그램을 무료로 사용하거나 공유하지 못하도록 저작권을 사용하듯이, 우리 자유 소프트웨어 개발자들도 저작권을 이용해서 서로가 프로그램을 공유하거나 원시 코드(Source Code)를 활용하도록 할 수 있는 것입니다.
물론, GPL을 이용하는 모든 사람이 이러한 목적을 갖고 있는 것은 아닙니다. 오래 전에 제 친구는 카피레프트 프로그램을 카피레프트가 아닌 조건으로 배포하도록 요청 받은 적이 있습니다. 그 친구는 아마 다음과 같이 요지의 말을 했던 것으로 기억됩니다.
``저는 가끔씩 자유 소프트웨어를 만들기도 하고 때로는 독점 소프트웨어를 만들기도 하지만 독점 소프트웨어를 만들 때는 그만한 대가를 기대하고 만듭니다.''
그는 소프트웨어를 공유하는 공동체와는 그의 소프트웨어를 함께 나누고자 했지만, 공동체에 도움이 되지 않는 상용 제품으로 그가 만든 소프트웨어가 이용되는 것은 원하지 않았습니다. 그의 생각은 제 생각과 달랐지만 그 역시 GNU GPL이 그의 목적을 위해서 유용하다고 생각했습니다.
만약, 여러분이 이 세상에서 무엇인가를 이루려고 한다면 이상만으로는 부족하며, 이상과 목적을 이룰 수 있는 수단과 방법을 선택해야 합니다. 요컨대, 실용적인 것이 필요하다는 것입니다. 그렇다면 우리의 이상을 이루기 위한 수단인 GNU GPL이 과연 실용적인지 살펴볼 필요가 있습니다.
GNU C++의 경우를 생각해 봅시다. 우리가 어떻게 자유롭게 사용할 수 있는 C++ 컴파일러를 가질 수 있게 되었을까요? 그것은 GNU GPL이 자유 소프트웨어가 되어야 한다고 규정하고 있기 때문입니다. GNU C 컴파일러에서부터 시작된 GNU C++ 컴파일러는 기업 컨소시움인 MCC에 의해 개발되었습니다. MCC는 가능한 모든 부분을 독점적으로 만들려고 했지만, 결국 그들은 C++ 프론트엔드를 자유 소프트웨어로 만들었습니다. 왜냐하면 그 방법만이 GPL하에서 그들이 C++ 프론트엔드를 배포할 수 있는 유일한 방법이었기 때문입니다. C++ 프론트엔드에는 새로운 많은 파일들이 추가되었지만, 그것들을 GCC와 연동시키기 위해서는 GPL에 규정된 대로 C++ 프론트엔드 또한 자유 소프트웨어가 되지 않으면 안됩니다. GPL을 통해서 공동체가 얻을 수 있는 이익이 입증된 것입니다.
GNU Objective C의 경우도 그렇습니다. NeXT사는 처음에 이 프론트엔드를 상업용으로 만들려고 했습니다. 그들은 이것을 .o를 확장자로 갖는 목적 파일로 발표하고 사용자들이 GCC와 연결해서 사용하도록 제안했습니다. 그들은 이것이 GPL의 요구에 맞는 방법이라고 생각했던 것입니다. 그러나 우리측 변호사는 그것이 허용되지 않는 방식이라는 결론을 내렸고 결국 그들은 Objective C 프론트엔드를 자유 소프트웨어로 전환했습니다.
이러한 예는 몇 년 전의 일들이지만, GNU GPL은 우리에게 더 많은 자유 소프트웨어를 계속 가져다주고 있습니다.
대부분의 GNU 라이브러리에는 LGPL이 적용되지만, GPL이 적용되는 라이브러리 중에 명령행 편집 기능을 제공하는 Readline이라는 프로그램이 있습니다. 한 달쯤 전에 저는 Readline을 이용하도록 만들어진 자유 소프트웨어가 아닌 소프트웨어에 대해 알게 되었고, 그 프로그램의 개발자에게 그러한 방식은 허용되지 않는다고 얘기한 적이 있습니다. 3 그 개발자는 자신의 프로그램에서 명령행 편집 기능을 제거해 버릴 수도 있었겠지만, Readline의 기능을 없애기 않기 위해서 프로그램을 GPL로 공개했습니다. 그 프로그램은 이제 자유 소프트웨어입니다.
GCC나 Emacs, 배쉬, 리눅스와 같은 GPL 프로그램들을 개선하고자 하는 프로그래머들은 종종 기업이나 대학에 고용됩니다. 프로그래머가 자신이 개선한 프로그램을 공동체로 환원하려고 하면, 사장은 ``잠깐 기다려, 그것은 우리에게 속한 것이야. 다른 사람과 함께 공유하고 싶지 않아! 우리는 그것을 독점 소프트웨어 제품에 포함시키기로 결정했네.''라고 말할 수도 있을 것입니다.
이러한 경우에도 GPL은 도움이 될 수 있습니다. 개발자는 사장에게 그것은 GPL을 위반하는 것이라고 알려줄 수 있습니다. 사장은 그 제품을 자유 소프트웨어로 발표하든지 아니면 포기하는 양자택일을 할 수밖에 없습니다. 거의 대부분 경우, 사장은 개발자가 원하는 방식을 수용하기 때문에 개발자는 자신이 원하는 대로 할 수 있으며, 새롭게 만들어진 개선 사항들은 공동체로 환원되어 다음 번 릴리즈에 포함될 수 있습니다.
그러나 GNU GPL이 천사표는 아닙니다. GPL은 이따금씩 사람들이 원하는 일에 대해서 `NO'라고 단호하게 말하기도 합니다. 예를 들면, 어떤 사람은 GPL이 자유 소프트웨어 개발에 필요한 독점 프로그램 개발자들을 공동체에서 제외시키고 있다고 얘기합니다. 하지만 우리는 그들은 제외시킨 적이 없습니다. 그들이 공동체 안으로 들어오려고 하지 않을 뿐입니다. 그들이 독점 소프트웨어를 만드는 것 자체가 우리 공동체 안에 들어오지 않겠다는 의사 표시인 것입니다. 공동체의 일원이 된다는 것은 우리와 함께 협력에 동참한다는 것을 의미합니다. 그러나 그들이 원하지 않는데도 불구하고 우리가 그들을 공동체 안으로 끌고 올 수는 없는 노릇입니다.
우리가 할 수 있는 것은 그들이 우리와 함께 하기를 권유하는 것입니다. GPL은 현재의 자유 소프트웨어들을 이용해서 새로운 자유 소프트웨어를 만드는 충분한 동기를 부여할 수 있습니다. ``자유 소프트웨어를 만들 생각이라면 이 코드들을 사용할 수 있습니다.''라고 공동체에 동참하도록 권유할 수 있습니다. 물론, 이러한 방법이 항상 유효한 것은 아니지만 때로는 성공적입니다.
독점 소프트웨어의 개발은 우리 공동체에 아무런 도움이 되지 않습니다. 그러나 독점 소프트웨어 개발자들은 종종 우리에게 도움을 요청합니다. 자유 소프트웨어 개발자가 사용자들로부터 감사와 예우를 받을 수도 있지만, ``당신 프로그램을 상업용으로 만듭시다. 그러면 그 프로그램을 더 많은 사람들이 사용하게 될 겁니다.''라는 말은 인기와 명성이라는 측면에서 볼 때 상당히 유혹적일 수 있습니다. 그러나 결국에는 그러한 유혹을 거절하는 것이 모두에게 좋은 길입니다.
독점 소프트웨어에 부합하는 정책을 수용하는 자유 소프트웨어 단체를 통해 간접적으로 나타나는 이러한 유혹이나 압력은 알아차리기가 매우 어렵습니다. 독점 소프트웨어 기업들의 기금 출연으로 만들어진 X 컨소시움(현재의 오픈 그룹)이 바로 이러한 예가 될 수 있습니다. 이 단체는 지난 십여 년간 카피레프트를 사용하지 못하도록 프로그래머들을 설득하는데 노력해 왔습니다. 오픈 그룹은 X11R6.4를 GNU가 정의하는 자유 소프트웨어로 만들지 않았기 때문에, 인기와 명성이라는 압력에 저항해 왔던 사람들은 우리가 취해왔던 입장에 더욱 호의를 갖게 되었습니다. 4
실용주의적인 관점에서 얘기한다면, 장기적인 안목을 갖고 생각하는 것이 결국 이러한 압력을 극복하는 힘을 길러줄 수 있을 것입니다. 확고한 신념으로 이룩할 수 있는 자유와 공동체에 여러분의 초점을 맞춘다면 유혹과 압력을 이겨낼 수 있는 힘을 얻을 수 있을 것입니다. 이겨내기 위해서 싸우지 않으면, 헛되이 무너질 뿐입니다.
2. 역자주: 이러한 생각이 구체적으로 실천된 GNU 프로젝트의 초기 문서인 ``GNU 선언문''은 GNU/리눅스를 시작하는 모든 사람들에게 추천할 만한 명문 중의 하나입니다. ``어떤 프로그램을 좋아한다면 당연히 그것을 좋아하는 사람들과 함께 나누는 것이 황금률(대우받고자 하는 데로 대하라-성서)이라고 생각한다. 소프트웨어를 판매하는 사람들은 사용자를 각각 구분하고, 그들 위에 군림하고, 사용자 서로가 프로그램을 공유하는 것을 막고자 한다. 나는 이런 식으로 사용자간의 결속이 깨지는 것을 거부한다. 나는 올바른 양심으로 비공개 협정이나 소프트웨어 사용 허가서에 서명할 수 없다.'' (이하 생략)
3. 역자주: 이 글이 쓰여진 시점은 1998년입니다.
4. 원주: X11R6.4가 자유 소프트웨어가 아닌 형식으로 발표된 1998년 9월로부터 몇 달이 경과한 뒤에 오픈 그룹은 원래의 입장을 철회해서 X11R6.4를 X11R6.3 때와 같이 자유 소프트웨어로 재배포하기 시작했습니다. 오픈 그룹에 감사의 뜻을 표합니다. 그러나 이러한 입장 철회가 자유 소프트웨어에 제한 사항을 추가하는 것이 가능하다는 오픈 그룹의 결정이 옳지 않다는 우리의 결론까지 무효로 만든 것은 아닙니다.