공개소프트웨어 가이드 a Guide to Open Source Software
Total Page:16
File Type:pdf, Size:1020Kb
공개소프트웨어 가이드 A Guide to Open Source Software 2006 1 정보통신부 공개소프트웨어 가이드 요 약 문 1. 제 목 "공개소프트웨어 가이드" 발간 2. 발간의 목적 및 필요성 본 가이드의 목적은 공개소프트웨어 대한 이해를 높이고 공개소프트 웨어에 대한 우려와 현실을 객관적으로 분석하여 공개소프트웨어 도 입시 필요한 검토사항 및 위험요소 분석, 관리방안 등을 수립하는데 도움을 주기 위함이다. 3. 주요 내용 제1장 "서론"에서는 공개소프트웨어의 이해를 높이기 위한 부분으 로써 공개소프트웨어의 정의, 역사, 그리고 비공개소프트웨어와의 비 교분석을 다루고 있으며 또한 현재 국내 공개소프트웨어 비즈니스 모 델에 대한 소개와 관련업체들에 대해 다루고 있다. 1950년대부터 본 격적으로 시작된 소프트웨어는 그 당시의 여러 가지 의미와 개념들이 지금과는 사뭇 다른 모습을 하고 있다는 것을 알게 된다. 공개소프트웨어에 대한 정확하고 객관적인 정의와 소프트웨어 산업 적인 측면의 의미를 이끌어 내기 위하여 공개소프트웨어를 역사적인 관점으로 정리하였다. 그리고 공개소프트웨어 또는 자유소프트웨어 그리고 비공개소프트웨어, 독점소프트웨어, 사유소프트웨어 등 혼란스 러운 여러가지 용어들에 대하여 설명하고 이를 간략하게 정리하였다. - i - 공개소프트웨어 가이드 또한 비공개소프트웨어와의 차이점을 비교분석하고 분석결과를 간 략하게 도표로 정리하였으며 공개소프트웨어를 보다 객관적으로 이해 하는데 도움이 되도록 하였으며, 공개소프트웨어 기반의 비즈니스모 델을 소개하고 국내 공개소프트웨어 관련 산업에 대해 간략하게 분류 하고 소개하였다. 제2장에서는 공개소프트웨어에 대한 불필요한 오해들에 대하여 사 실과 진실을 객관성 있게 전달하고 있으며 크게는 공개소프트웨어의 비용에 대한 부분, 기술지원 및 가용성 부분, 소프트웨어 신뢰도 부분 그리고 완성도 및 수명의 4가지 부분으로 나누어서 오해에 대한 진실 을 정확하게 전달하고 있다. 공개소프트웨어의 라이센스 비용에 대해서는 주로 도입 시 발생하 는 라이센스 비용과 총소유비용(TCO)에 대해 잘못 이해할 수 있는 부분을 설명하였다. 특히 "자유소프트웨어"라는 용어의 "자유"라는 단 어에서 비롯되는 여러 가지 불필요한 오해들(경제적인 무비용(free)이 라는 의미와 자유롭다는 의미의 자유 등에 대한 오해들)에 대하여 보 다 정확한 의미전달을 하고 있다. 또한 공개소프트웨어의 사상(자본 주의와 공산주의)적인 오해에 대해서도 간략하고 분명하게 진실을 이 야기하고 있다. 그리고 공개소프트웨어의 기술지원 및 가용성 부분의 불필요한 오 해들에 대해서도 진실을 전달하고 있으며 특히 기술지원부분에서 무 조건적으로 신뢰하지 않는다는 것은 그 만큼 공개소프트웨어에 대해 정확히 인지하지 못하였다는 것을 의미하며 인지하지 못한 만큼 또한 오해하고 있었다는 것을 의미한다. - ii - 공개소프트웨어 가이드 제3장 "공개소프트웨어 도입유형 및 절차"에서는 3가지 도입유형 (직접선택, 간접공급, 내부개발)을 설명하였으며 특히 현실적으로 가 장 일반적이고 보편적인 도입방법인 간접공급에 대해서 특징, 장점, 단점 등을 깊이 있게 설명하고 있다. 그리고 일반적인 정보화사업 추진절차에 준하는 시스템 및 소프트 웨어 도입절차에 따른 표준화, 객관화를 위한 검토사항들을 설명하고 있다. 특히 소프트웨어 도입 시에 제안요청서상의 특정 운영체제 명 시, 특정 스펙명시, 특정 조건을 제시하는 등의 비표준, 불공정 소지 가 있는 부분에 대하여 객관성과 공정성 유지 방안을 제시하, 공공기 관의 정보시스템 구축시 필요한 고려사항과 실제 공개소프트웨어 기 반으로 시스템 적용에 필요한 권고사항을 설명하였다. 또한 공개소프트웨어를 도입하기로 결정하였을 경우에 어떠한 부분 을 고려해야하는가에 대한 "공개소프트웨어 도입 시 고려사항"들을 현실적인 부분을 고려하여 10여 가지 부분으로 나누어 자세히 설명한 다. 제4장 "위험분석 및 관리"편에서는 공개소프트웨어 도입에 따르는 위험요소 분석과 관리방법들을 다루고 있으며 "경쟁 유효성", "보증문 제", "소스코드 가용성"이라는 3가지 부분의 위험요소를 분석하고 이 를 관리하는 방안을 제시하였다. 경쟁 유효성 부분에서는 공급업체의 신뢰성과 경쟁력 확보여부, 공개소프트웨어 자체의 경쟁력 확보여부, 기능성 및 사용 편의성 등에 대한 경쟁력 확보여부, 비용절감의 경쟁 력 확보 여부 등을 주로 다루었다. - iii - 공개소프트웨어 가이드 그리고 보증문제는 라이센스와 법적인 문제까지 결부될 수 있는 매 우 민감한 사안으로써 보증의 결여에 따른 도입기관의 대처문제, 도 입하는 공개소프트웨어의 라이센스 문제 등에 대해서도 상세히 설명 하였다. 그리고 도입 시 소스코드를 확보해야하는 것은 물론 소스코드의 확 보와 함께 수정 및 재사용, 재배포 권한 문제등도 함께 검토되어야 한다. 도입하는 공개소프트웨어의 소스코드를 확보하지 못하였거나 수정권한을 얻지 못하였거나 재사용권한을 확보하지 못하였을 때에는 패치 및 업그레이드를 하지 못하는 상황이 발생 가능하다. 결국 이로 인하여 확장성, 영속성, 안정성 등이 보장되지 않을 수도 있다. 그리고 위험 관리방법과 위험 완화방법을 "도입 유형별 위험평가", "기술로드맵 평가", 위험완화를 위한 검토사항"으로 나누어 설명하였 다. 특히 직접선택 방법에서는 직원들의 개발능력이 검토되어야하며 프로젝트 수행경력과 능력이 있는 내부직원이 확보되어야 한다. 반면 간접공급방법에서는 공급업체의 신뢰성과 라이센스 문제를 고려하여 야 한다. 정부부처 등 공공기관은 간접공급 방식으로 도입하는 것이 가장 안정적인 공개소프트웨어 도입방식이며 이 때 비용이 발생하는 점을 고려해야 하며 이때, 공급업체의 기술지원 능력과 서비스 능력 도 함께 고려되어야 한다. 그리고 위험요소에 따른 위험완화를 위한 검토사항들이 있으며 이 들에 대하여 본문에서는 10 여가지의 검토사항들을 제시하고 있으며 공개소프트웨어를 도입하기로 하였다면 최소한 10 여가지의 검토사항 들은 기본 점검을 해야 한다. - iv - 공개소프트웨어 가이드 제5장에서는 공개소프트웨어의 법률문제를 다루었다. 공개소프트 웨어와 관련된 법률문제는 주로 라이센스로부터 발생하는 것이기 때 문에 GPL, LGPL, BSD License, MPL등 몇 가지 주요 라이센스에 대하여 알아두어야 한다. 그리고 이들 라이센스가 적용되었을 때에 발생하는 여러가지 법적인 문제들에 대해서도 설명하였으며 도입 후 재배포에 따른 유형별 법적문제들을 설명하고 있다. 공개소프트웨어의 라이센스 종류가 지나치게 많아지고 있다는 점을 사용자들은 매우 혼란스러워하며 또한 이에 대한 위험요소를 가중시 킨다고 불평하기도 한다. 하지만 라이센스의 수적 증가는 현실적인 요구에 의한 것으로써 공개소프트웨어가 활성화 될수록 이 요구는 더 욱 많아질 것이다. 이에 대한 OSI가 관리하고 있는 라이센스 리스트 에 추가되는 것을 현재로서는 막을 방법이 없다. 이보다 더한 위험요소는 법적문제 발생에 따른 GPL의 해석과 적용 범위의 문제이다. 즉, 계약의 성립여부와 그 계약의 유효성, 저작권과 계약의 관계, 준거법과 재판관할, 그리고 저작인격권, 전송권 등에 대 하여 해석과 적용범위를 명확히 해야 할 필요가 있다. 그리고 보증문 제에 따른 법적문제도 흔히 발생하는 것으로 도입 시에 주의해야 할 사항이다. 그리고 공개소프트웨어를 도입하고 이를 수정하여 확장적용하고 타 기관에 재배포하는 각각의 시나리오에 따른 법적문제도 검토되어야 한다. - v - 공개소프트웨어 가이드 4. 기대효과 및 활용 공개소프트웨어 도입과 활용은 점점 늘어가고 있다. 반면 도입기관 에서는 공개소프트웨어의 정확한 이해가 부족할 뿐 아니라 공개소프 트웨어의 도입방법과 그에 따르는 위험요소, 그리고 완화방법, 뿐만 아니라 공개소프트웨어의 라이센스 문제와 그에 따른 법적인 문제들 파악하고 싶어도 이에 대한 전문 안내서가 부족한 실정이다. 따라서 이에 대한 필요성이 제기되어 왔었다. 본 안내서는 이러한 요구환경 을 배경으로 제작되었으며 객관적인 시각을 통해 바라본 공개소프트 웨어의 진실들을 있는 그대로 전달하고자 노력하였다. 본 안내서는 기관들의 공개소프트웨어 도입에 따른 사전 지식과 도 입 후에 필요한 관리지식뿐 아니라 법적인 문제 발생 예방과 문제발 생시 대처능력을 확보하고 무엇보다 공개소프트웨어의 도입결정에 따 른 유용한 안내서 역할을 충실히 할 것으로 기대한다. - vi - 공개소프트웨어 가이드 <제목 차례> 1장. 서 론 1 1. 공개소프트웨어의 이해 3 가. 공개소프트웨어의 기원과 역사 3 나. 공개소프트웨어 정의 7 다. 비공개소프트웨어와의 비교 8 2. 공개소프트웨어 산업 개관 13 가. 공개소프트웨어 비즈니스 모델 13 나. 공개소프트웨어 산업 현황 14 2장. 공개소프트웨어에 대한 오해와 진실 21 1. 비용 문제 23 2. 기술지원 및 가용성 25 3. 공개소프트웨어의 신뢰도 30 4. 완성도 및 수명 34 3장. 공개소프트웨어 도입유형 및 절차 37 1. 도입유형 39 가. 직접선택 42 나. 간접공급 45 다. 내부개발 48 라. 종합비교 52 2. 도입절차 53 3. 적용시스템 57 가. 시스템 유형 57 - vii - 공개소프트웨어 가이드 나. 시나리오별 도입 방법 59 다. 적용 가능분야 62 4. 고려사항 64 4장. 위험분석 및 관리 70 1. 위험요소 분석 72 가. 경쟁 유효성 72 나. 보증문제 74 다. 소스코드의 가용성 78 2. 위험관리 및 완화방법 80 가. 도입유형별 위험평가 80 나. 기술로드맵 평가 86 다. 위험완화를 위한 검토사항 89 5장. 법률문제 93 1. 라이센스 유형 95 가. GPL 95 나. LGPL 98 다. MPL 98 라. BSD License 95 2. 법적문제 100 가. 라이센스의 위험성 평가 101 나. GPL의 해석과 적용범위 103 다. 계약의 성립여부 및 유효성 105 라. 저작권과 계약의 관계 105 마. 특허 106 바. 상표 106 - viii - 공개소프트웨어 가이드 사. 보증 책임의 범위 107 아. GPL로의 소스코드 공개방법 107 3. 사용유형별 법적문제 검토 108 참 고 문 헌 113 부록1. 신뢰성이 높은 공개소프트웨어 121 부록2. 비공개 소프트웨어 대 공개소프트웨어 안내 129 부록3. 공개소프트웨어 리소스 140 부록4. GNU 일반 공중 사용 허가서(2판) 142 - ix - 공개소프트웨어 가이드 <표 차례> <표 1> 비공개소프트웨어와 공개소프트웨어 비교 11 <표 2> 공개소프트웨어와 상용소프트웨어 비교 12 <표 3> 공개소프트웨어 도입 절차 44 <표 4> 직접선택방식 도입 전 체크리스트 45 <표 5> 공개SW도입방식에 따른 비교 52 <표 6> 공개SW도입을 위한 주요 검토 사항 53 <표 7> 비표준, 특정기술 조건 예 54 - x - 공개소프트웨어 가이드 <그림 차례> <그림 1> 공개소프트웨어 간접공급 유형 46 <그림 2> 웹기반 정보시스템 구조 59 <그림 3> 웹서버 운영체제 공개SW 도입 60 <그림 4> 웹서버, 웹 어플리케이션 서버 운영체제 공개SW 도입 61 <그림 5> 3계층 서버 운영체제 공개SW 도입 62 - xi - 1장. 서론 1장. 서 론 - 1 - BLANK - 2 - 1장. 서론 1. 공개소프트웨어의 이해 가. 공개소프트웨어 기원과 역사 공개소프트웨어는(Open Source Software) 1984년 자유소프트웨어 (Free Software)운동으로부터 분화하여 현재에 이르렀으며1), 2000년 이후 전 세계의 정부기관과 민간단체에서는 공개소프트웨어의 효율성 과 발전성에 대하여 확고한 의지를 가지고 정책추진과 사업화를 시도 하고 있다. 국내에서도 2002년부터 공개소프트웨어 정책추진을 위한 본격적인 사업을 착수하여 현재 그 성과를 보이고 있다. 자유소프트웨어 운동(Free Software Movement)은 1984년 리차드 스톨만(Richard Stallman)이 GNU2)라는 공개프로젝트를 시작하면서 부터 시작되었으며 리눅스와 함께 자유소프트웨어 운동도 발전하였는 데, 이 과정에서 "자유(Free)"라는 용어에 대한 실용주의적 관점에서 의 비판이 이루어지고 공개소프트웨어 운동(Open Source Software Movement)이 시작되었다. 자유소프트웨어 운동 진영은 소프트웨어 자체는 항상 윤리적, 도덕 적, 사회적으로 타당해야함을 강조하면서 소프트웨어 사용자들에게 이를 바탕으로 한 사용상의 여러 가지 자유3)가 주어져 있음을 또한 강조하고 있다4). 1) 자유소프트웨어와 공개소프트웨어는 그 역사를 함께 해오고 있으며 같은 개념으로 보는 견해도 있다. (http://www.debian.org/intro/free 참조) 2) GNU는 "Gnu is not Unix"의 재귀적 표현임 3) 여기서 자유는 첫째, 어떤 목적으로도 프로그램을 가동시킬 수 있는 자유 둘째, 필요에 맞 게 소프트웨어를 수정할 자유, 셋째, 무료 또는 유로로 복사본을 재배포할 수 있는 자유 넷째, 전체 공동체가 혜택을 볼 수 있도록 프로그램의 수정본을 배포할 수 있는 자유를 의미한다. - 3 - 공개소프트웨어 가이드 그리고 공개소프트웨어 운동 진영은 이념적 측면보다는 개발방식에 초점을 맞춘 접근을 취하고 공개소프트웨어 개발자에게도 경제적인 보상을 제공할 수 있어야 한다는 실용적 측면을 강조한다. 자유소프트웨어는 원칙에 입각한 소스코드의 자유로운 사용이라는 측면을 공개소프트웨어는 사회적 실용성과 경제성에 중심을 두고 소 스코드의 공개라는 측면을 강조한다고 할 수 있다. 공개소프트웨어가 정부의 정책에 반영되기 시작하고 일반인들에게 알려지기 시작한 것은 불과 몇 년 전 부터이다. 공개소프트웨어가 현 재에 이르기까지 어떻게 진화해 왔는가를 살펴보려면 먼저 그 역사를 살펴보아야한다. 공개소프트웨어에 관련된 주요한 사건들을 년대별로 간략하게 정리하였다. o 1950년대 1950년대는 컴퓨터 프로그램의 초기 사용시기로써 모든 프로그램은 공개적으로 개발되고 또한 소스코드도 공개되었다. 즉, 여기서 중요 한 것은 컴퓨터 프로그램의 역사는 공개적으로 개발되기 시작하였고 또한 개발된 소스코드는 공개되었다는 점이다. 이러한 초기 인식이 약 10년 정도 계속되었으나 1950년대 후반부터는 컴퓨터 프로그램이 일부이기는 하지만 판매되기 시작하였다.