오픈소스 영향
OSS가 소프트웨어 산업에 미치는 영향
개인과 기업 모두에게 진입 장벽을 낮추어 주고, 시장의 독점 가능성을 줄임으로써, 건전한 경쟁시장의 형성을 가능하게 한다. 또한, 세계적 규모로 분산된 소프트웨어 개발 공동체를 형성함으로써 소프트웨어 산업을 '확대'시키고 있다. OSS의 특징인 "무료 및 공개 라이선스"는 이러한 변화를 주는데 매우 큰 역할을 했다.
공개적이고 분산된 OSS프로젝트들의 출현은 개발자들과 IT전문가들을 혁신적인 소프트웨어 개발의 세계로 끌어들이고 있다. 그 속에서 그들은 기술을 개발하며, 아이디어를 교환하고, 능력을 뽐내면서 역동적인 소프트웨어 산업의 일부가 되고 있다. 이러한 현상은 소스코드, 과거 버전, 이슈와 커뮤니케이션 기록, 문서, 개발 로드맵과 도구 등을 포함하는 거의 모든 소프트웨어 산출물에 대한 정보의 투명성과 높은 접근성으로 인해 더욱 확대되고 있다.
동시에 OSS는 작은 규모의 기업들에게 OSS에서 발견한 응용 프로그램, 운영 체제 및 유틸리티를 이용하거나 빌드함으로써 보다 적은 비용, 낮은 장벽과 저위험으로 시장에 진출할 수 있는 기회를 제공하고 있다. 이러한 기업들은 다시 OSS제품을 지원하는 개발 커뮤니티에서 일했던 개발자들에게 고용을 제안함으로써, IT 전문가들에게 새로운 기회를 제공하는 순환관계를 형성한다.
OSS방식에서 출현한 새로운 소프트웨어 개발 모델, 협업을 위한 기술과 인프라, 설계 패턴과 모듈화 패턴, 동시 개발 프로세스와 디버깅 프로세스 등이 상용 소프트웨어 개발 현장까지도 변화시키고 있다. OSS에서 얻은 아이디어들도 사유 소프트웨어 영역에까지 영향을 미치면서 급속히 확산되고 있다. 소프트웨어 벤더들도 실용적인 이유에서 또는 전략적인 이유로 이들의 개발 방식을 조심스럽게 따라가고 있으며, OSS도메인과 방법론 등 많은 부분에서 긴밀한 관계를 유지하려고 노력하고 있다.
어플리케이션, 운영체제, 인프라 및 미들웨어 소프트웨어를 포함하여 대부분의 소프트웨어 영역에서 탁월한 다수의 OSS 제품들이 출시되고 있다. 이 OSS제품들은 아주 적은 비용으로도 사용할 수 있고, 수정과 개작이 가능하기 때문에, 이제 IT전문가들에게 필요한 것은 단지 OSS 제품을 발굴하고, 결합하며, OSS 저장소를 모니터하고 검색할 수 있는 능력뿐이다.
소프트웨어 산업의 글로벌 경쟁력도 OSS에 의해 크게 영향받고 있다. 시장에서 OSS 제품의 패키징(OSS 제품의 배포와 지원)에 초점을 맞춘 새로운 유형의 회사들이 생겨난 것도 그 예라 할 수 있다. 또한, OSS는 반독점적인 방어수단을 효과적으로 제공하고 있다. 그리고 소프트웨어 산업이 사유 기업들이 주로 사용하던 소프트웨어 종속 기반의 비즈니스 모델로부터 벗어날 수 있게 한다.
라이센싱 특성과 낮은 비용으로 인해, 많은 하드웨어 벤더들도 점점 OSS를 내장하여 자신들의 제품을 만드는 것을 선호하게 되었다. 예를 들어, 각종 가전 제품 및 통신 제품 기업들이 그들의 제품에 리눅스 운영체제나 다른 OSS의 사용을 점점 확대시키고 있다.
OSS 방식에서 채택하고 있는 분산된 디지컬 보존소(DigitalArchives)의 완벽한 투명성(Transparency)은 향후에도 소프트웨어 산출물을 보존하는데 도움이 될 수 있다. 이 방식은 디지털 보존 시스템(Digital Preservation Systems)의 기본적인 요구사항을 충족시키는 측면에서 뿐만 아니라, 미래의 연구를 위해 소프트웨어 공학 기술의 현재 상태를 보존할 수 있도록 한다. 실제로 현재의 연구자들이 1980년대 중반 시점의 OSS 아카이브를 공개적으로 이용하여 파헤칠 수 있는 반면, 동 시대의 바이너리 코드는 현재의 컴퓨터에서 거의 실행되지 않는다.
마지막으로, 각기 다른 유형으로 OSS 주위에 형성된 회사들의 전체적인 생태계와 각기 다른 비즈니스 기회, 새롭게 떠오르는 비즈니스 모델들도 OSS가 소프트웨어 산업에 미치는 긍정적인 영향들이다.
OSS가 사회에 미치는 영향
1.청소년과 교육
오늘날 현대 사회에서의 기술과 지식 개발의 관점에서, 특히 청소년들에게 무료로 쉽게 정보에 접근할 수 있게 해주는 것은 매우 중요하다. OSS가 웹서버,브라우저 및 메시징과 같은 기술들로 인터넷의 확산을 뒷받침했다는 사실은 부정할 수 없다. 이러한 기술들은 청소년들이 일상 생활에서 정보를 검색하고, 다른 사람과 연결되며, 커뮤니티에 가입할 수 있도록 하였다. 이러한 협력 활동에 참여함으로써 문화 격차는 허물어지고, 편견은 버려지며, 현실세계의 동질감을 달성할 수 있었다.
저렴하고 유용한 많은 무료 OSS 교육 프로그램들이 별도의 큰 비용이나 자원을 요구하지 않고 학교와 교육현장에서 사용되고 있다. 또한, 모두가 공개적으로 접근할 수 있도록 학습자료에 대한 온라인 저장소를 제공하기도 한다.(이것의 대표적인 예가 MIT의 오픈 코스웨어 이니셔티브이다.)
지리적 위치와 관계없이 OSS는 소프트웨어에 관심이 있거나, 소프트웨어 업계에 취업을 목표로 하는 젊은이들과 개발자들, 기업인들에게 좋은 기회를 제공한다. 자신들의 프로젝트에 대한 기여 실적과 OSS 커뮤니티에의 참여를 통해 축적되는 지식,정보,능력은 OSS 프로젝트 커뮤니티를 '완벽한 새로운 종류의 학습 플랫폼(Learning Platform)'으로 바라볼 수 있게 한다.
OSS 프로젝트의 문화와 그들의 커뮤니티에 새로운 기여자들을 수용하는 것은 학습을 더욱더 촉진시킨다. OSS의 소스코드에 대한 자유로운 접근은 소프트웨어가 기술 지향적 교육에 활용될 수 있게 만든다. 학생들이 프로젝트에 기여할 수 있을 만큼 숙련되지 않은 경우라 할지라도, 학생들은 OSS의 소스코드를 조사하고 연구하면서 배울 수 있게 된다. ㄸ한, 관찰을 통해 OSS 프로젝트를 실행하는 조직과 프로젝트 관리 모델을 공부할 수 있게 한다.
마지막으로, OSS 방식의 배포 메커니즘과 OSS 정신은 혁신적이고 성공적인 교육 활동을 뒷받침하고 있다. 아이들을 위한 스크래치 및 이토이즈 프로그래밍 환경 창조적인 개발자들을 위한 프로세싱 플랫폼,OLPC 운동 등이 그 예이다.
2. 과학,공학, 그리고 연구
OSS 프로젝트와 이니셔티브(Initiative)의 핵심 요소는 공유의 철학과 개방 협력만이 아니다. 과학, 연구 및 공학은 크고 복잡한 프로젝트와 작업에 대한 광범위한 협력이 불가피한 영역이다. 혁신적인 오픈 소스 모델은 사회과학, 생명과학 및 생물의학 분야 등의 소프트웨어 개발을 넘어 다양한 분야에서도 널리 적용될 수 있다.
사실, OSS 접근법은 과학 및 학계의 커뮤니티에서 수행되고 있는 방법과 비교될 수 있다. OSS 커뮤니티와 학계의 커뮤니티들에서는 모두 강한 규범의 적용, 기여의 인정, 공학 및 과학적 결과에 대한 공개 검증, 지식의 중요성 등이 존중된다. 또, 양쪽 모두에서 유사하게 적용되는 지적 재산권 보장은 금전적 인센테브 보다는 자신의 작업에 따른 성취, 명성, 학습 경험, 흥미 등을 통해 동기부여하기 위한 제도이다. 이 두 영역에서 이루어지는 대규모 분산 팀에서의 가상 협업(Virtual Collaboration)도 기반 요소로 작용한다.
또 다른 흥미로운 점은, OSS 개발과 과학연구작업 둘 다, 유사한 과정을 통해 재정적 지원을 받는다는 것이다. 많은 과학자들의 경우, 주요 프로젝트로부터 직접적인 재정 지원을 받지 못하고 있는 특정 주제와 작업들에 대해서도 개인적 관심을 가지고 있다. 앞에서 논의된 바와 같이, 많은 OSS 개발자들이 회사에 고용되어 다른 프로젝트 작업도 함께 수행하고 있다.
OSS의 특성에 대한 문헌연구들에서 설명하고 있는 바와 같이, 이러한 유사성은 두 커뮤니티 구성원 간의 대화 기회를 제공해 준다. 기본적인 목표와 문제는 다를 수 있지만 창의적인 프로세스와 룰은 비슷하게 공유될 수 있기 때문에, OSS 개발 방식의 연구를 통해 프로세스의 강점과 약점을 보다 명확하게 파악함으로써, 이를 개선하는 데 도움이 될 수 있다.
연구 및 학술 커뮤니티에 대한 OSS의 또 다른 중요한 효과는 대규모 데이터 저장소의 가용성이다. 이러한 데이터에는 소스 코드, 메일링 리스트, 버그 리포트, 기술적 의사소통, 사용자 피드백, 버전 관리 저장소 등 다양한 종류들이 있다. 이 데이터들은 연구자들이 기술, 조직, 또는 행위 등에 관한 문제를 연구하는데 매우 유용한 정보들이다. 최근 정보의 양적 또는 질적 분석을 가능하게 하는 데이터 마이닝(Data Minging)기술이 발전함에 따라, 이러한 저장소에서 많은 데이터들이 추출되고 검색되고 있는데, 이는 공학, 사회학, 경제학 등 많은 분야에서 새롭고 유용한 정보로써 활용되고 있다.
마지막으로, 연구기관이나 학계에서는 OSS 도구를 활용함으로써 자금 부족에도 불구하고 빠른 연구결과를 생산해낼 수 있었다. 이처럼 연구활동에 적용된 최근 OSS 프로젝트의 몇가지 사례로는 통계적 기계 번역을 위한 OSS인 모세(MOSES) 툴킷, 데이터 베이스 및 모델링, 분자(Molecular) 상호작용 데이터의 저장 및 분석을 위한 OSS인 인액트(InAct) 제품군, 그리고 OSS 클라우드 컴퓨팅(Cloud Computing) 시스템인 오픈스택(OpenStack), 통계 컴퓨팅 플랫폼인 R-프로젝트 등이 있다.
3. 개발도상국
개발도상국들은 많은 브레인 파워(Brain Power)를 가지고 있음에도 불구하고, 전 세계의 기술 혁신 성과에 따른 혜택을 아직은 많이 받지 못하고 있다. OSS는 경제적, 사회적, 인프라적 문제들에 심각하게 직면하고 있는 개발도상국들과 선진국들 사이의 정보격차(Digital Divide)를 해소하기 위한 솔루션이다. 자금과 자원이 부족한 상황에서 일반 사용자, 학교, 기업, 정부에 이르기까지 모든 유형의 사용자들에게 무료로 쉽게 접근 가능한 OSS는 특히 매력적이다. 게다가 많은 OSS의 제품들은 상용제품보다 적은컴퓨팅 자원을 필요로 하기 때문에, 저렴하고 오래된 하드웨어에서도 실행시킬 수 있다.
이러한 경제적 여건 속에서 OSS는 사용 중인 사유 소프트웨어가 청구하는 비용과 미래에 발생될 라이선스 비용 청구에 대한 부담을 낮출 수 있다. 또, OSS는 소스 코드의 개방성과 가용성으로 인해 전문적인 업무뿐만 아니라, 교육과 일상적 업무들의 수행을 위한 소프트웨어를 사용, 수정, 유지보수할 수 있는 전문가의 양성을 가능하게 한다.
일반적으로 개발도상국의 개발자들이 큰 소프트웨어 개발 회사에서 일하기 위해서는 다른 나라로 재배치되어야 하지만, OSS의 분산 개발 모델은 개발도사국 사람들이 자국에서 쉽게 참여하고, 배울 수 있게 해준다.
개발도상국들이 발전하고 기술 진보의 혜택을 누리게 하기 위해서는 훈련된 지역 전문가의 커뮤니티가 형성되고 지원되어야 한다. 개발도상국에 아웃소싱하는 것도 물론 상당한 고용 효과를 창출하고 있지만, 이것만으로는 충분하지 않다. OSS방식은 개발도상국들의 소프트웨어 개발과 연구 커뮤니티를 강화시키기에 가장 적합한 방법이다.
개발도상국의 요구에 부응하는 OSS 애플리케이션에 관한 특히 흥미로운 사례는 페도라 리눅스(Fedora LINUX)운영체제와 슈가 GUI(Sugar GUI)를 갖춘 매우 낮은 비용의 휴대용 컴퓨터 XO의 개발을 통해 가능하게된 OLPC이다. XO는 학습, 개방 및 협력이라는 핵심개념으로 개발되었다. 리눅스/슈가 OSS 솔루션의 사용은 생산 비용을 최소한으로 유지할 수 있다는 오픈 소스의 이념을 지지했다. 사실, 이프로젝트의 기술은 신흥 시장의 PC업계에 잠재적인 위협이 되고 있다.
우려사항
1. 사용성 이슈(Usability Issues)
OSS 프로젝트들은 사용성 문제에 대해 충분한 주의를 기울이지 않는 것으로 알려져 있다. 아마도 그 이유는 OSS 개발자들이 사용자 인터페이스와 사용성 보다는 코드의 기능적 특성에 더욱 집중하기 때문일 것이다. 또, 그들이 대체로 사용성과 HCL(Human-Computer Interaction)를 다루는 교육과 훈련을 받지 않았기 때문일 것이다.
실제로 가장 성공적인 OSS 프로젝트는 사용성 등에 대한 교육보다는 IT의 경험을 가진 사람들에 의해 사용되는 운영 체제,라이브러리, 컴파일러와 쉘 애플리케이션과 같은 소프트웨어들이다.
종종 OSS 프로젝트 개발 팀은 사용성 전문가나 사용성 연구소의 컨설팅을 받지 못하기 때문에, 최소한의 또흔 세련되지 않은 사용자 인터페이스를 가진 형태로 실행되는 방식을 취한다. 사용성 디자인은 개발 초기부터 고려되어야 하며, 그것은 배포 이후에 적용하기는 어려운 작업이다.
이러한 상황은 최근 몇 년동안 개선되어 왔으며, OSS프로젝트 중 특히, 데스크탑 응용 프로그램에서 작업하는 사람들의 사용 패턴을 수집한 사용자 프로파일의 수집결과를 반영하여 워드 프로세스들과 웹 브라우저들에서 사용자 중심의 프로젝트가 진행되었다. 두 가지 모두의 현재 버전은 OSS 데스크탑 환경 중심의 인간-컴퓨터 상호작용 지침을 준수하고 있다. 이 지침은 재사용 가능한 인터페이스 요소가 더 일관된 사용자경험을 제공한다는 점을 고려하여, 전문 그래픽 아티스트에 의해 설계되었다.
잠재적인 해결책에는 사용성 전문가의 참여, 사용성 이슈에 대해 교육받은 개발자,학문적 참여, 그래고 사용자들의 보다 적극적인 참여 등이 포함된다. 사용자와 개발자 사이의 연결은, 유용성 문제의 설명과 추적이 가능하도록 더 나은 의사소토 도구로 강화되어야 한다.
2. 라이선싱 복잡도(Licensing Complexity)
많은 수의 OSS라이선싱 옵션들과 라이선스들의 결합에서 발생 가능한 위험들은 소프트웨어 응용 프로그램 개발자들이 해결해야 할 과제이다. 사유 응용프로그램 안에 OSS코드를 통합할 때, 이에 대한 법적인 의미를 이해하는 것은 점점 더 중요해지고 있으며, 소프트웨어 실무자는 이러한 사실을 인지하고 이를 해결하기 위한 방법을 찾고 있다. 또한, OSS 지지자들은 소프트웨어 라이선스의 조항에 이러한 해결방법을 보강하는 중이다.
3. 공유의 문제(The Problem of Commons)
OSS의 공개 특성과 사유 소프트웨어 기업의 경쟁 관행 사이에는 명확한 차이가 있다. 이와 비슷한 차이는 다양한 분야의 학술연구와 아이디어 및 혁신의 결과인 지적 자산을 보호받는 민간 기업 사이에서도 발견된다.
OSS의 개방주의와 민간기업의 보호주의(Protectionism) 사이의 올바른 균형이 필요하다. 그들의 작업 결과에 대한 배타적 권리를 통해 얻을 수 있는 소프트웨어 개발자들의 인센티브와, 혁신의 확산과 넓은 공유를 통해 얻을 수 있는 사회적 이익 사이의 최적의 균형을 찾기 위해서는 지적재산권 관리의 관행이 재검토 되어야 한다.
또 다른 논쟁의 주제는 소프트웨어 특허를 허용해야 하는지, 또는어디까지 이것을 인정해야 하는지에 대한 것이다. 소프트웨어 특허의 지지자는그것이 재산청구권(Property Claim)을 행사하고, 발명을 보호하는데 필요한 수단이며, 이를 통해 소유자는 경제적 이익을 추구할 수 있고, 따라서 혁신과 개발을 촉진할 수 있다고 주장한다.
반면에, 자유 소프트웨어 재단과 같은 단체는 특허가 자유 소프트웨어 운동을 저해하고 있다며, 이에 대해 강경한 입장을 가지고 반대운동을 하고 있다. 저작권과 대조적으로, 특허는 특정 구현의 세부사항을 다루는 대신, 아이디어와 그것의 사용을 보호하는데 그 목적이 있다. 그러나 다른 개발자가 특허를 도용하지 않고 독립적으로 발명한 것을 증명할 수 있는 경우에도, 특정 아이디어의 사용에 대한 특허권자의 절대적 독점을 허용하고 있다는 점은 논쟁의 대상이 되고 있다. 특허의 기간은 20년으로, 소프트웨어 분야에서 매우 길다는 것도 문제로 지적되고 있다. 게다가 그들은 특허의 품질과 범위가 명확하지 않고, 이로 인해 과거의 특허가 현재의 발명물에까지 영향을 미치고 있다는 점이 문제라고 주장한다. 마지막으로, 그들은 특허 획득, 특허 선행 기술조사, 또는 특허 분쟁 방어 등에 따르는 비용이 엄청나게 크다는 것도 문제라고 주장한다. 소프트웨어 특허와 싸우기 위해, FSF의 GPL은 GPL코드를 사용하고자 하는 기업들은 특허가 포함된 제품의 사용자들에게 특허 소송을 제기하지 말 것ㅇ르 강제하는 규정을 포함하였다. 그렇게 함으로써, 특허권 소유자가 GPL 소프트웨어 사용자로부터 로열티를 받으려는 시도를 방지하고자 하였다.
4. 동기부여 문제(Motivational Issus)
만약 동기 부여 요소가 충분히 강하지 않으면, 개발자들은 프로젝트 커뮤니티에서 표류하거나 기여를 중지할 수도 있다. 흥미롭게도 프로젝트의 성공과 강한 상관관계가 있으며, 그것은 프로젝트에 지속적으로 기여하고자 하는 개발자들에게 의용을 불러 일으킨다.
5. 분기 위험(Forking Danger)
분기로 인한 위험은 정체되고 더이상 지원되지 않는 코드 조각과 같은 결과를 초래한다. 그러나 이러한 위험은 시장 압력으로 인해 개발자들의 결정을 모니터하고 지시하는 강한 관리 방식을 취하는 사유 소프트웨어 프로젝트에서는 발생하기 힘든 유형의 위험이다.