비즈니스를 위한 오픈 소스 소프트웨어

서문

근래에 들어서, 오픈소스 소프트웨어가 무엇인지 설명할 필요는 없다. 한때 이상하게 꼬인 소프트웨어 라이선스로 간주되던 것이 이제는 전체 소프트웨어에 대한 튼튼한 기반이 되었다. 이 책을 골랐다면, 아마도 오픈소스 라이선스가 동작하는 방식과 관련된 위험을 책임있는 방식으로 관리하여 비즈니스에 오픈소스 소프트웨어를 사용하고자 할 것이다. 아마도 “LAMP 스택”으로 불리는 리눅스(Linux) 커널, 아파치(Apache) 웹서버, MySQL 데이터베이스, PHP 스크립팅 언어 뿐만 아니라 파이어폭스 웹브라우져 혹은 Sendmail 같은 범용 오픈소스 “킬러 앱(Killer App)”에 친숙할 것이다. 오픈소스 라이선스는 자신만의 고유한 규칙과 관습을 간직하고 있으며 현실 세계에서 주요한 자리를 점하고 있다. 오픈소스 소프트웨어는 전자상거래의 등뼈이며 개발 도상국에서 찾는 소프트웨어 도구상자다.

이책은 기술 비즈니스에서 생긴 오픈소스 법률적 쟁점사항에 대한 거의 20년에 걸친 결과물이다. 오픈소스 라이선스를 둘러싼 법률적 쟁점사항을 이해하려는 변호사와 사업가를 위한 실무지침서로 집필되었다. 이책은 법률 논문이 아니다; 변호사와 함께 변호사가 무슨 말을 하고 있는지 이해하려는 사람을 돕고자 이책을 집필했다. 기술변호사는 기술이 항상 앞서고, 법률입법자와 판사가 뒤따라, 새로운 패러다임과 능력에 대한 규칙을 정상화하려는 것을 잘 알고 있다. 하지만, 오픈소스 라이선스 경우에, 자리잡은 법률과 모범사례(best practice) 사이에 불일치가 천양지차다. 이것이 왜 리처드 스톨만(Richard Stallman) 같은 오픈소스 라이선스 모형의 주창자가 변호사가 아니고 기술자인 이유다; 기술자는 법률 문화가 따라오길 기다릴 수 없어서 스스로 규칙을 발명할 수 밖에 없었다. 법규와 판례를 정독하면 오픈소스 라이선스를 이해하는데 도움이 될 수는 있지만, 오픈소스 소프트웨어를 사용하는 것에 대한 실무적인 사업결정을 내리는 방법을 이해하려면, 판래집에 없는 상당한 지식과 정보가 필요하다.

오픈소스 소프트웨어가 흥분되고 예측불가능한 사춘기와 마추침에 따라 21세기 십대로 진입하고 있다는 것이 적절할 것이다. 이번 십년은 오픈소스 소프트웨어 라이선스 허가권을 갖는 사람에 의한 첫번째 심대한 집행노력을 목도했다. 따라서 새로운 세대의 여명이 밝았다. 오늘날, 오픈소스는 당연히 있어야 하고, 이익을 창출하는 사업에서 책임감을 갖고 오픈소스를 사용하려면 관리해야되는 실제적 법률위험이 존재하고, 기술 라이선싱을 이해하려는 누구나 오픈소스 라이선싱을 지각해야 한다는 점을 기술에 있는 어떤 누구도도 부인하지 않는다. 특허 라이선스 울타리가 있는 정원(walled garden)은 더이상 가능하지 않다. 오픈소스 소프트웨어는 울타리가 쳐진 정원의 틈을 비집고 자라는 강인한 잡초다.

배경지식: 유닉스, 리눅스, 그리고 소프트웨어 라이선스

소프트웨어 라이선스가 시작된 이래로, 오픈소스 소프트웨어 라이선스의 도입은 소프트웨어 라이선스에 있어 가장 괄목할만한 발전이다. 하지만, 소프트웨어 라이선스는 그 자체로 우리와 그다지 오랜기간 함께 지낸 것은 아니다. 실은, 오프소스 라이선스는 사람 대부분이 인식하는 보다 오랜기간 존재해왔다. 사실, 오픈소스 라이선스가 소프트웨어 라이선스에 대한 최초 모형이고, 독점적(proprietary) 라이선스가 굴러들어온 돌이다. 이 두 모형이 함께 어떻게 발전했는지 이해하려면, 컴퓨팅 역사에 대해 이해가 필요하다.

아주 오래전에 유닉스라고 불리는 운영체제가 있었다.

대부분 사람들이 “오픈소스”를 언급할 때, 소프트웨어 라이선스 집합을 지칭한다. 이런 라이선스는 사용권을 주는 누군가가 소프트웨어 사용에 대한 이용약관을 정했다. 이런 의미에서, 오픈소스는 라이선싱 모형(Licensing Model)이다. 하지만 또한, 아마도 좀더 중요하게 오픈소스는 소프트웨어 개발에 대한 모형이기도 하다. 차이가 중요한데 이유는 라이선싱 모형과 개발모형이 연관된 위험이 매우 다르기 때문이다.

오픈소스 “킬러앱(Killer App)”의 대표적인 사례가 리눅스 운영체제다. 리눅스가 왜 그리고 어떻게 개발되었는지 학습하는 것이 현재 “오픈소스”로 알고 있는 라이선싱 모형이 어떻게 개발되는지 그리고, 어떻게 오픈소스 모형이 독점적 모형과 다른지 이해하는 최선의 방식이다.

오늘날 기술사업에 종사하는 대부분의 사람들은 윈도우 시대에서 자라나서, 또다른 운영체제(컴퓨팅 역사에서 중대한 역할을 한 유닉스)에 관해서 그다지 알고 있지 못하다. 유닉스(UNIX)가 “자유 소프트웨어(free software)” 모형이 출현한 이유다.

컴퓨팅의 초기 시절에, 유닉스가 주도적인 운영체제였다. AT&T 벨연구소에서 개발했다. 그 당시에 AT&T는 지배적인 사업라서 독점금지법의 결과로 법무부와 합의된 양자간 합의된 법원판결(consent degree)1에 묶여 전화사업분야를 제외한 상업적 활동에 참여가 금지된다. 따라서, 최고 가장 똑똑한 AT&T 엔지니어는 AT&T 벨연구소로 불리는 비영리 단체에서 컴퓨터 과학 개발을 수행하게 되었다.

켄톰슨(Ken Thompson)과 데니스 리치(Dennis Ritchie)는 벨연구소 과학자로 컴퓨터 프로그램을 공부한 누구나 그들의 이름을 알고 있다. 그들이 첫번째 범용 운영체제, 유닉스 창시자다. 유닉스를 작성하는 동안에 C 로 불리는 프로그래밍 언어도 발명했다. C는 오늘날 용어로 “저수준(low-level)” 언어로 일컸는 유연하고 강력한 프로그래밍 언어다. 저수준 언어는 프로그래머가 소프트웨어와 하드웨어가 상호작용하는 방법에 대한 고수준 제어를 가능하게 한다. 많은 확장과 개선을 겪었고 C언어에 객체지향을 접목한 C++가 가장 눈에 띄지만, C는 여전히 오늘날에도 흔히 사용된다.

하지만, 양자간 합의된 법원판결이 AT&T가 유닉스를 상업적 제품으로 판매를 금했다. 따라서, 기술 분야 바퀴를 예외적인 방향으로 틀어서, 벨연구소는 유닉스를 변형하고 재배포할 수 있는 조건을 갖는 소스코드형태로 나눠졌다. 벨연구소에서 말하듯이, 만약 무언가를 사랑한다면 자유로이 놓아주라 - 그리고 1970년대 1980년대 컴퓨터 과학자는 유닉스를 사랑했다.

그리고 나서, 양자간 합의된 법원판결이 해제되었고, AT&T는 단지 목적코드형태로만 재배포가 허용된 라이선싱 조건을 갖는 제약된 형태 유닉스 라이선스를 부여하기 시작했다. 이것이 유닉스 “포킹(forking)”의 결과를 가져왔고 다수 호환되지 않는 버젼이 양산되었다. 이전에 변형을 할 수 있고 공유를 즐겼던 사람들이 갑자기 그렇게 할 수 없게 되었다. IBM 컴퓨터에서 잘 돌아가던 유닉스 프로그램이 선마이크로시스템즈(SUN) 유닉스에서는 필히 돌아가지 않게 되었다.

자유 소프트웨어 운동이 직접적인 대응으로 유닉스 포킹으로 일어났는데 독점적 라이선싱에 대한 변화다. 상호호환성 부족보다 컴퓨터 프로그래머가 미워하는 것은 없다 - 특히 운영체제같은 기술 스택 하위 계층에서 발생하는 호환성 문제. 그리고, 일부는 이런 것이 다시 재발하지 못하도록 했다.

그 당시에 “독점적” 소프트웨어는 오늘날처럼 아주 흔한 관례가 아니라는 것을 이해하는 것이 중요하다. 1980년대 저자는 그 당시에 미니컴퓨터라고 불리는던 컴퓨터로 작업했다: PDP, 왕 VS, DEC, 콴텔(Quantel). 그 당시 대부분의 응용 프로그래머와 마찬가지로 저자는 주문형 비즈니스 응용프로그램을 작성했다. 어느날 에그헤드 소프트웨어(Egghead Software) 소매점에 들어가서 진열장에서 구매할 수 있는 회계 소프트웨어를 목격한 것을 기억한다. 가능하리라고 절대로 믿을 수 없었던 것이다. (판매 점원이 다가와서 매킨토쉬 컴퓨터용 프로그램을 구매하면 정말 매킨토시 컴퓨터에서 돌아간다고 구매를 유도했다.) 수년동안 프로그래머였고, 표준화된 소프트웨어 개념은 저자에게는 낯설었다. 그 당시 소프트웨어는 두가지 중 한가지 방식으로 출시되었다 - 구매한 컴퓨터에 판매자가 적재하거나, 시스템 통합회사 즉 OEM 으로 불리는 주문형 맞춤 소프트웨어 개발자가 작성한 소프트웨어다. 그리고 소프트웨어는 항상 소스코드형태로 배송되었다. 왜 그럴까? 마이크로 컴퓨터(IBM PC) 이전에, 바이너리-전용 소프트웨어 배포 모형을 지원하거나 요구할만큼 충분한 표준화가 되어있지 못했다. 회사는 거의 항상 번들형태로 동일한 판매회사로부터 하드웨어와 소프트웨어를 구매했다. 기술지원을 하는 사람들은 소스코드가 필요했고, 기술지원은 해당 컴퓨터, 운영체제, 환경에 특별히 맞춰야 했다. (사실, 1985년경에 저자는 첫번째 기술지원대표과 조우했고, 그 개념에 즐거워했다. 왜냐하면, 프로그래머로서 그 당시까지 저자가 기술지원 작업을 수행하는 사람이었기 때문이다.) 그래서 왜 소스코드와 바이너리를 누군가 쪼갰을까? 저자가 한창 일하던 세계에서는 그다지 인식하지는 못했다. 하지만 곧 상전벽해를 목격하게 된다. 전체 컴퓨팅 세계가 변화하기 시작했다. 몇년 지나서, 마이크로컴퓨터가 일반적인 것이 되었고 바이너리 소프트웨어는 표준이 되었다. 마치 모든 맞춤양복 재단사가 하룻밤 사이 시장에서 퇴출되고 그 빈 자리를 기성복 매장이 점유했다. 그리고 만약 변경이 필요하다면, 소프트웨어에 장착된 라이선스를 위반해야 했다.

리눅스: “킬러 앱”

오픈소스 소프트웨어 특히 카피레프트(Copyleft) 소프트웨어 라이선싱은 리눅스가 없었다면 법률적 호기심으로만 남았을 수도 있다. 카피레프트는 복잡한 라이선싱 모형이다. 만약 리눅스가 충분한 자격있는 인기를 얻지 못했다면, IT 산업은 해결하고 점차 덜 불편해지는데 에너지를 결코 투여하지 않았을지도 모른다. 하지만, 리눅스에 관해서 그다지 알지 못한다면, 여러분이 혼자는 아니다; 대부분의 사람은 자주 리눅스를 사용하지만, 리눅스를 사용하고 있다는 것을 이해하지 못한다. 컴퓨터 과학자를 위한 운영체제로 리눅스는 출생을 시작했기 때문에, 훌륭한 사용자 인터페이스를 갖고 있지 못하다. 따라서, 많은 시스템은 리눅스를 운영체제 코어로 사용하고 있으며 안드로이드, 크롬, 심지어 맥도 리눅스 위에 인터페이스를 얹어 사용한다. 하지만, 리눅스에 관해서 알지 못한다면, 학습할 필요가 있다; 오픈소스 라이선싱을 이해하기 위해서, 왜 리눅스가 그렇게 대중적이고 중요한지 이해하는 것이 필수적이다.

1980년대 후반, 유닉스 인기는 사라지고 있었다. 1980년대 이전에는 대부분의 컴퓨터를 대형 기관(정부, 교육기관, 은행, 대기업)에서 사용했다. 마이크로컴퓨터 첫번째 세대(애플 II, TRS-80, 물론 DOS 개인용 컴퓨터)가 몇년만에 모든 것을 바꿨다. 이들 컴퓨터는 더 새롭고 더 저렴한 중앙처리장치 위에서 돌아갔다. 운영체제는 중앙처리장치 특성을 타서, 유닉스가 쉽게 이런 플랫폼에 적응될 수는 없었다.

유닉스는 표준사양서를 보유하고 있어서 표준사양서에는 유닉스 플랫폼과 호환성을 정의하는 시스템 루틴 집합이 포함되어 있었다. 이 표준을 현재 포식스(POSIX)라고 부른다. 그래서, 다양한 사람들이 성배를 찾기 시작했다. 성배는 POSIX와 호환되지만 AT&T가 제기하는 라이선스 제한에서 자유로운 운영체제다. 그런 개인 중 한 사람이 미닉스(MINIX)로 불리는 학교 프로젝트로 코드를 작성한 네덜란드 컴퓨터과학과 교수가 있다. 또다른 개인은 리누스 토발즈(Linus Torvalds)로 헬싱키 거주 십대 청소년이다. 토발즈는 1991년 첫번째 리눅스 버젼을 출시해서 세상을 바꿨다.

그러는 동안에 MIT 인공지능 연구소 컴퓨터 과학자 리차드 스톨만(Richard Stallman)은 GNU 프로젝트를 시작했다. (GNU는 “GNU’s is not UNIX”에 대한 재귀축약어다.) GNU 프로젝트는 유닉스에 대한 무료대안이 되는 운영체제를 만들어 내려고 노력했다. 전체 운영체제는 많은 구성요소가 필요하고 운영체제의 코어는 커널(kernel)로 불린다. 커널은 컴퓨터를 실행하고, 메모리를 관리하고, 프로그램을 실행하고, 주변장치와 다른 하드웨어와 의사소통한다. 전체 운영시스템은 또한 컴파일러, 디버거, 텍스트 편집기, 관리 도구, 사용자 인터페이스 같은 개발 도구를 필요로 한다. 토발즈는 자신이 만든 소프트웨어를 자유로이 이용가능하게 만드는데 동의했다. 토발즈가 작성한 최초 버젼에서 개작되고 향상된 리눅스 커널은 GNU 운영체제 코어가 되었다. 이 운영체제가 이제 흔히 리눅스(Linux)2로 불린다.

하지만, 스톨만은 자신이 개발하려는 새롭고 자유로운 운영체제 사유를 막을 수 있는 라이선싱 패러다임 작업에도 병렬로 임하고 있었다. 스톨만은 이 패러다임을 “자유 소프트웨어(free software)”로 칭하고 자유 소프트웨어 규정을 GNU 일반 공중 라이선스(General Public License, GPL)로 불리는 라이선스에 포함했다. 소스코드를 비밀로 감출 수 없는 조건으로 소프트웨어를 재배포할 구속받지 않는 권리를 이 라이선스에 부여했다. 이것이 카피레프트의 전제가 된다. 카피레프트의 전제는 저작권법을 사용해서 저작권 보호를 받을 수 있는 소프트웨어 공유를 강제한다.

자유 소프트웨어 정신에 입각해서 처음 개발된 이래로 리눅스 커널을 성장했고, 변경되고, 극적으로 향상됐다. 오늘날, 리눅스는 기여자(contributor) 수천명, 리눅스를 유지보수하는 비영리재단, 수백만 신기술 채택자, 수십억 사용자를 갖고 있다. 그리고 여전히 자유로이 변경, 배포, 향상이 가능하다. 사실, 오픈소스 라이선싱 모형은 전체 산업을 협력하게 만들었고, 결과로 IT 산업의 거대 기업 뿐만 아니라 수백명의 자원봉사자가 유지보수하는 강건하고 확장가능한 시스템이 되었다.

하지만, 좀더 중요하게 오픈소스 라이선싱 여정에서 리눅스를 사용하는데, 산업이 리눅스 라이선싱 조건(terms)을 사용해야만 한다. 따라서, 스톨만이 개척한 카피레프트 패러다임은 천천히 관심을 끌고 있다.

대략 1996년, GPL이 기술세계에 만만찮은 진입을 시작했다. 저자는 1995년 개업을 시작했고, 얼마지나지 않아 곧 고객이 오픈소스 라이선스에 대한 문의를 시작했다. 그 당시 지적재산 변호사 대부분은 “GPL로 불리는 라이선스 아래 소프트웨어를 사용해야 되나요?” 라는 질문을 받았을 때 혼란스워했고 두려워했다. 쉬운 대답은 아니오 - 항상 쉬운 대답이다.

하지만, 저자처럼 일부 변호사는 더 나은 대답을 제시할 필요가 있다는 점을 인식했다. GPL은 “땅바닥에서 500원 동전을 하나 주었습니다. 사용해도 될까요?” 라고 고객이 질문하는 것과 맞먹는다. 일부 변호사는 여전히 “아니오, 동전이 어디에 있었는지 모르잖아요.” 라고 대답할 것이다. 하지만, 변호사 중 일부는 “500원 동전이군요. 이 동전에 관해서 좀더 생각해 봅시다.” 라고 생각하게 되었다. 그래서 저자는 민간 사업 목적과 부합되는 방식으로 오픈소스 소프트웨어를 사용하는 방법을 이해해 보고자 했다.

초기 자유 소프트웨어 운동은 분명히 기업에 적대적인 미사여구를 퍼트려 도움이 되지 못했다. 미션이 독점적 소프트웨어를 파괴하는 것이고, 고객 대부분은 독점적 소프트웨어 사업에 종사하고 있었다. 하지만, 운동에 참여한 다른 사람들은 교리보다는 결과에 집중했고, 고객의 일부는 리눅스 초기 후원자였다. 저자와 저자 고객은 함께 새로운 경로로 여행을 시작했다. 민간 사업에서 자유 소프트웨어를 어느 쪽 모형도 파괴하지 않고 사용할 수 있는지 이해하려고 했다.

하지만, 이 작업을 위해서, 새로운 라이선싱 모형에 관해서 상당한 학습을 해야 했다. 앞으로 전진은 힘들었다. GPL에 대한 조언은 도플갱어(본인과 판박이인 사람)의 정반대 지적재산 세상으로 달려 들어가는 것 같았다. 저자의 분석을 뒤받침하는 법은 거의 없었다. 조단위 위법행위 소송을 수임하는 변호사에게 다른 사람 지지없이 정답을 찾는데 특별한 보상은 없었다. 하지만, 주변에 오픈소스 사용은 싹을 띄우고 있었고, 계속 나아가야 했다. 만약 안전한 대답을 주는 경력을 쌓고자 한다면, 기술법은 아마도 적절한 법률업무 영역이 되지 못할 것이다.

20년이 지난 후에, 저자는 많이 학습했고 여전히 배우고 있다; 기술, 법, 가장 중요하게는 라이선싱이 혁신을 주도하는 방식. 오픈소스가 무섭고, 환상적이고, 미쳤고 혹은 이 모든 것이라고 생각하던, 혁신을 증진시키고 번영을 주도하도록 오픈소스 라이선싱 세상에 안내를 돕고자 이 책이 집필되었다.

여러분께 감사드립니다.

이 책의 교재개발에 많은 분들이 저자를 직간접적으로 도움을 주셨다. 특히, Luis Villa, Alma Chao, Sabir Ibrahim, Maxim Tsotsorin, Aahit Gaba, David Pollak, David Marr, Greta Lichtenbaum, David Ribner 에게 감사의 말씀을 전한다. 이분들 모두 기나긴 원고 저작과 편집 작업에 직접적으로 도움을 주셨다. FSFE Legal Network 모든 회원분께도 감사의 말씀을 전한다 (특히, Matija Suklje 와 Carlo Piani). 이정표가 거의 없던 여행에 저자가 참여하도록 자유 토론에 참석해주시고 지적 문의를 해준신 오픈소스 법세계 모든 분께도 감사의 말씀을 젆나다. 새로운 경로를 친구3와 함께 걸어가는 것은 항상 최고다.

저자와 연락

만약 이 책을 읽고 있고, 오픈소스 라이선싱 쟁점에 도움될 변호사를 필요로 하다면, 저자와 연락을 취하는데 부담을 갖지 마라. 개업 변호사로, 웹사이트에서 저자가 몸담고 있는 O’Melveny & Myers 법률 회사를 쉽게 찾을 수 있고, 저자는 http://www.heathermeeker.com 웹사이트를 운영하고 있다. 또한 이 책에 대한 제안이나 논평도 환영한다. 물론, 이 책에 나온 어떤 것도 저자가 몸담고 있는 법률회사의 의견으로 간주하면 안된다. 이 책은 저자의 개인적 견해를 표현하고 있다. 그리고 이 책을 구매한 것이 독자와 변호사와 고객 관계를 생성하는 것은 아니다. 마지막으로, 책에 나온 조언이 독자가 처한 환경에 사실로 적용되는 것도 아니다.

만약 이 책 사본을 구매했고, 전자책 갱신에 관한 정보가 필요하다면, hmeeker@heathermeeker.com 전자우편주소로 메시지를 보내, 저자가 운영하는 메일링 리스트에 참여하는 것은 언제라도 환영한다.


  1. “Modification of Final Judgment,” August 24, 1982, filed in case 82-0192, United States of America v. Western Electric Company, Incorporated, and American Telephone and Telegraph Company, U.S. District Court for the District of Columbia, http://web.archive.org/web/20060827191354/members.cox.net/hwilkerson/documents/AT&T_Consent_Decree.pdf.

  2. GNU 프로젝트 사례는 리눅스가 GNU/리눅스 시스템으로 불리는 것이 더 적절하다는 것을 상기시킨다. 하지만, 이런 유형의 “브랜딩(branding)” 문제는 오픈소스 라이선싱에 급속히 확산되고 있다. 15장 상표권을 참조한다.

  3. 모든 실수는 저자에게 귀착된다. 이 책의 훌륭한 점만 다른 분들께 가야된다.