2004-12-07

오픈 소스의 이해와 활용

1. 개요

소프트웨어 비즈니스에서 오픈 소스가 갖는 시사점을 밝히고 그 활용 영역을 제시한다.


2. 오픈 소스의 이해

오픈 소스는 어떤 것의 개발/배포/사용에 있어서 특정한 내용을 포함한 라이센스 규정을 충족시키는 것을 의미한다. 대부분의 오픈 소스가 소프트웨어를 대상으로 하지만, 문서나 방법론 등과 같이 많은 사람들이 공동 작업을 통해서 이루어 낼 수 있는 것들에 포괄적으로 적용될 수 있다.

오픈 소스가 최소한으로 지켜야 하는 주요한 라이센스 요소들은 아래와 같다. 이는 OSI(Open Source Initiative)의 The Open Source Definition 문서에서 발췌한 것이다.

  • 소프트웨어의 사용이 무료여야 하며, 이를 토대로 개발한 다른 소프트웨어를 판매하거나 배포하는데 제약이 없어야 한다.
  • 소프트웨어의 원본 소스 코드에 무료로 쉽게 접근할 수 있어야 한다.
  • 누구나 소프트웨어를 수정하여 이를 원본 소프트웨어와 동일한 라이센스 하에서 배포할 수 있어야 한다.
  • 소프트웨어 사용 목적이나 사용자 그룹에 차별이 없어야 한다.
  • 오픈 소프트웨어는 특정한 기술에 중립적이어야 하며, 다른 소프트웨어의 사용을 강제하지 말아야 한다.

오픈 소스로 간주되는 다수의 라이센스가 존재하며, 이들의 대부분은 위의 조건을 충족한다. 따라서 소스를 공개하지 않는 프리웨어(Freeware)나 쉐어웨어(Shareware) 등은 오픈 소스가 아니고, 정부 등 제한적인 사용자 그룹에게만 소스를 공개하고 그 소스 이용에 제한을 가하는 몇몇 기업들의 행위 역시 오픈 소스에 해당할 수 없다. 다양한 오픈 소스 라이센스의 종류와 각각의 라이센스 상세 내용은 다음 문서를 참조 한다.


3. 오픈 소스의 현황

오픈 소스 소프트웨어는 여러 분야에서 큰 성공을 거두고 있다. 예를 들어, 대표적인 오픈 소스인 리눅스 운영 체제를  미국 대기업의 40%가 사용하고 있고, 아파치 웹 서버는 전 세계 웹 서버의 65%를 차지한다. 그리고 SendMail은 전 세계 이메일의 80%를 처리하고 있다.

오픈 소스는 OSI라는 자발적/비영리 단체의 캠페인 활동으로 꾸준히 확산되고 있으며, 세계적인 오픈 소스 개발자 지원 사이트인 GNU, SourceForge.net, OSTG(Open Source Technology Group), 아파치 등 크고 작은 커뮤니티들이 활성화되어 전 세계 오픈 소스 소프트웨어의 확산 및 개발자 간의 응집을 주도하고 있다.

또한 최근 몇 년 간은 새로운 비즈니스로서의 오픈 소스에 대한 관심이 증대되면서 이를 이용한 신규 비즈니스를 창출하고자 하는 기업들의 참여가 늘어나고 있다. Eclipse에 소스 코드를 기증한 IBM을 비롯하여, Sun, 애플, Novell 등의 업체들이 오픈 소스를 적극적으로 지원하고 활용하고 있다.


4. 오픈 소스의 일반적인 이슈

오픈 소스와 관련해서 언급되는 일반적인 이슈에 대해서 간단하게 정리한다.


오픈 소스와 프리 소프트웨어(Free Software)의 차이는 무엇인가?

오픈 소스에 참여하는 개발자들은 오픈 소스를 이용한 소프트웨어 개발이 더 좋은 소프트웨어를 생산한다고 믿는 경제적 동기를 중시하고, 프리 소프트웨어를 지지하는 개발자들은 프리 소프트웨어는 도덕적으로 옳으며 그렇지 않은 상용 제품은 도덕적으로 옳지 않다고 보는 윤리적 동기를 중시한다. 결국 오픈 소스와 달리 프리 소프트웨어를 기반으로 개발한 소프트웨어는 판매할 수 없다.

현재 오픈 소스는 OSI를 중심으로, 프리 소프트웨어는 FSF(Free Software Foundation)를 중심으로 발전하고 있는데 경제적 동기를 인정하는 쪽으로 이 둘의 차이가 좁혀지고 있다.


오픈 소스 소프트웨어의 품질을 신뢰할 수 있는가?

오픈 소스 소프트웨어에 따라서 다르다. 전 세계적으로 약 8만 5천 건의 오픈 소스 프로젝트가 존재하며 이 중 아파치 웹 서버와 같이 높은 품질 수준을 달성한 소프트웨어도 있고, 그렇지 않은 이름도 모를 소프트웨어도 존재한다.

그런데 일차적인 관심은 오픈 소스 방식을 통한 소프트웨어 개발이 아닌 오픈 소스 방식으로 개발된 양질의 소프트웨어 활용에 있다.


오픈 소스 소프트웨어를 상업적으로 이용할 수 있는가? 그리고 오픈 소스 소프트웨어를 이용해서 개발한 소프트웨어의 소스를 공개해야 하는가?

오픈 소스 소프트웨어를 상업적으로 사용하는데 제한은 없다. 단, 오픈 소스 소프트웨어 자체를 변경한 경우에 한해서 변경한 내용에 대해서 공개해야 하는 경우가 있다. 그리고 오픈 소스 소프트웨어를 이용하여 개발한 소프트웨어에 대해서는 독자적인 새로운 라이센스를 가져갈 수 있다.


라이센스와 관련한 법적 문제 발생 시 이를 해결할 수 있는가?

오픈 소스 소프트웨어가 저작권 침해 등으로 소송을 당하는 경우, 상용 소프트웨어를 사용한 경우와는 다르게 이를 사용한 업체도 함께 고소를 당할 수 있다. 아직까지 이에 대한 뚜렷한 대처 방안은 없지만 오픈 소스 커뮤니티 전체가 부담을 나누어 짐으로써 위험을 분산시킬 수는 있다.


오픈 소스 소프트웨어는 문서를 포함한 참고 자료가 부족하고 기술 지원이 부실하지 않은가?

오픈 소스 소프트웨어는 상용 소프트웨어에 비해서 공식 문서가 부족한 것이 사실이다. 그러나 웹의 발전과 개발자 및 사용자 커뮤니티의 활성화로 인해서 필요한 자료를 쉽게 획득할 수 있다.

그리고 기술 지원의 부족을 새로운 사업 기회로 인식할 수 있다. 오픈 소스 소프트웨어에 대한 지원을 주 업무로 하는 SpikeSource와 같은 회사가 그 예가 된다.


오픈 소스에 대한 시장의 실패에 대해서 정부가 개입해야 하는가?

오픈 소스 소프트웨어가 상용 제품과 비교해서 품질이 높거나 양질의 품질에 가격경쟁력을 가지고 있음에도 불구하고 시장에서 배척 받을 수 있다. 이는 상용 소프트웨어가 가지고 있는 네트워크 효과에 근간한 규모의 경제 때문에 발생하는 시장의 실패이다. 따라서 이런 경우에 정부가 시장에 개입할 필요가 있다는 의견이 있다.

급속한 경제 발전으로 인해서 소프트웨어에 대한 수요가 높아지고 있는 브릭스(BRICs, 브라질, 러시아, 인도, 중국) 국가에서는 상용 소프트웨어의 사용에 따른 비용 부담의 축소와 자국의 소프트웨어 산업을 보호하기 위한 수단으로 오픈 소스의 사용을 정부 차원에서 적극 장려하고 있다.


모든 소프트웨어는 오픈 소스로 개발되어야 하는가?

현재로서는 알 수 없다. 하지만 오픈 소스가 독점적 소프트웨어 업체의 영향력을 축소시켜 새로운 사업 기회를 창출하고, 의사 결정에 있어서의 선택의 폭을 늘려줄 것이라고는 짐작할 수 있다.


5. 오픈 소스의 기대 효과

오픈 소스 활용을 통해서 소프트웨어 구매 비용 절감, 취약한 분야의 기술력 확보, 신규 서비스 시장 개척 등의 효과를 얻을 수 있다.


비용 절감

COTS(Commercial Off-The Shelf Software) 방식의 개발에서는 컴포넌트 조달이 주요한 이슈이다. 여기서 컴포넌트는 CBD(Component Based Development)에서 지칭하는 것보다는 큰 개념으로 웹 브라우저, 웹 서버, 웹 어플리케이션 서버, 데이터베이스 관리 시스템 등을 지칭한다. COTS에서 오픈 소스를 하나의 조달 창구로 사용할 수 있으며 이를 통해서 비용 절감을 이루어 낼 수 있다.

오픈 소스 소프트웨어만으로 가능한 부분에 상용 소프트웨어를 사용하는 것은 낭비이다.

단, 어떤 상황에서 오픈 소스 소프트웨어로 상용 소프트웨어를 대체 할 수 있는지에 대한 기준을 자체적으로 보유하고 있어야 한다. 오픈 소스인 아파치 톰켓으로 몇 명까지의 동시 사용자를 감당할 수 있는지에 대한 정확한 자료가 준비되어 있어야 오픈 소스 소프트웨어의 사용을 고객에게 제안하고 설득할 수 있을 것이다.


취약한 분야의 기술력 확보

기술력 부족으로 특정 영역의 어플리케이션 개발에 참여하지 못하거나 참여하더라도 기술력을 지닌 협력 업체에 대한 의존도가 높아 수익을 기대할 수 없는 경우에 오픈 소스를 활용할 수 있다.

부족한 기술력을 보충해 줄 오픈 소스를 찾아 이를 적극적으로 활용하는 것이 하나의 안이 될 수 있다.


신규 서비스 시장 개척

상용 소프트웨어는 개발 업체가 그 소프트웨어에 대한 서비스 시장을 장악하고 있기 때문에 참여할 수 있는 부분에 큰 제약이 존재한다. 그러나 오픈 소스 소프트웨어에 대해서는 기술지원/교육/컨설팅 등의 서비스 시장에 제약 조건 없이 참여할 수 있다. 특히 여러 오픈 소스 소프트웨어를 통합하여 패키지 형태로 제공하는 서비스 분야에 주목해야 한다.


6. 오픈 소스의 활용 영역

기업이 오픈 소스 사용에서 라이센스를 준수하고, 기타 저작권과 관련한 사항을 침해 하지 않는다면 이를 활용하는데 별다른 제약은 없다.

오픈 소스의 활용은 3 단계로 이루어진다. 1 단계는 다양한 오픈 소스를 하나의 제품으로 패키징하여 배포하는 것이다. 리눅스 배포판을 만들어 파는 것이 여기에 해당한다. 2 단계는 오픈 소스를 기반으로 새로운 상용 소프트웨어를 만들어 판매하는 것이다. ACE(Adaptive Communication Environment)를 이용해서 범용적인 게임서버를 구축하는 것이 여기에 해당한다. 마지막 3 단계는 1 단계와 2 단계에서 만들어낸 산출물에 대한 서비스를 제공하는 것이다.

오픈 소스를 활용할 수 있는 일반적인 영역은 아래와 같다.


데스크 탑 사무 자동화 환경 구축

리눅스 운영 체계를 기반으로 오픈 오피스, 모질라 웹 브라우저 등의 다양한 오픈 소스 소프트웨어를 이용하여 MS 윈도우 패키지에 대응되는 데스크 탑 환경을 구축하는 것으로 정부 정책 방향에 따라서 시장이 확대될 수 있다.

노벨 리눅스 데스크 탑이 대표적인 사례이다. 향후 BRICs 국가들과 국내 공공 시장 및 중소규모 업체에서 수요가 발생할 수 있다. 국내외 업체와의 협력을 통해서 이 시장에 진출하거나 독자적인 사업을 할 수도 있다.

몇 년 전에 비해서 리눅스 기반의 오픈 소스 데스크 탑 환경이 상용 제품에 견줄 수 있는 품질 경쟁력을 확보했다는 사실을 주시해야 한다.


웹 어플리케이션 구축

현재 많은 웹 어플리케이션들이 LAMP(J), Ruby, 파이선 등의 오픈 소스에 기반하여 구축되고 있으나, 기업용 어플리케이션 시장에서의 비중이 상대적으로 낮다. 이런 기업용 어플리케이션 시장에까지 오픈 소스 플랫폼을 적용 시킬 수 있다. 오픈 소스 플랫폼을 기업용 웹 어플리케이션 시장에 적용하여 비용 절감 효과와 오픈 소스 플랫폼에 대한 서비스 시장에 진출할 수 있다.


서버 어플리케이션 구축

도메인에 독립적인 서버 어플리케이션의 근간을 이루는 오픈 소스 플랫폼이 존재한다. 각각 C와 C++, 파이선 언어로 구현된 APR(Apache Portable Runtime)이나 ACE(Adaptive Communication Environment), Twisted가 대표적이다.

APR과 ACE, Twisted 등을 활용하여 웹 혹은 C/S 기반이 아닌 특화된 서버 어플리케이션 구축 사업에 진출할 수 있다.

단, APR과 ACE, Twisted 등의 플랫폼에 대한 내재화 작업이 필요하다.


개발 도구로의 활용

소프트웨어 개발에 필요한 개발 도구 소프트웨어 분야에도 많은 오픈 소스가 존재한다. 주로 프로그래밍 도구와 형상 관리 도구에 집중되어 있다. 오픈 소스 개발 도구를 중심으로 사내 개발 도구 표준을 재정립함으로써 도구 사용에 따른 비용 부담을 줄이고, 불법 소프트웨어 사용에 따른 부가적인 위험을 회피할 수 있다.


라이브러리로의 활용

소프트웨어를 구성하는 특정 기능을 오픈 소스 라이브러리를 사용하여 구현하는 것이다.
현재 오픈 소스의 활용이 가장 활성화된 영역이다. 오픈 소스 라이브러리를 사용함으로써 추가적인 비용 부담 없이 개발 시간을 줄일 수 있다.

단, 어떤 기능을 어떤 오픈 소스 라이브러리를 이용해서 구현할 수 있는지에 대한 전사 차원의 표준 카탈로그를 마련/공유함으로써 라이브러리 조달과 관련한 부대비용을 줄이려고 노력해야 한다.


개발 방법론 및 아키텍처

XP, Crystal Clear 등의 Agile 방법론의 다수가 오픈 소스 방법론이며, TOGAF(The Open Group Architecture Framework)라는 지명도 있는 아키텍처 개발 프레임워크도 존재한다. 방법론과 표준 아키텍처 수립 및 개정에 오픈 소스 방법론 및 아키텍처 프레임워크를 라이센스 비용을 지불하지 않고 활용할 수 있다.

그러나 상용 방법론에 대한 라이센스 보호 장치가 상대적으로 취약함으로 큰 비용 절감 효과를 기대할 수는 없을 것이다.


7. 결론

LAMP와 LAMJ는 웹 어플리케이션 구축을 위한 플랫폼이다. 이는 리눅스(Linux) 운영 체계, 아파치(Apache) 웹 서버, MySQL 데이터베이스 관리 시스템, PHP 혹은 톰켓(Tomcat) 웹 어플리케이션 서버 등의 오픈 소스로 구성된 플랫폼을 지칭한다. 논리적으로 이 플랫폼을 사용하게 되면 소프트웨어 구매 비용은 0이 된다. 그렇다면 기업은 이 플랫폼 하에서 프로젝트를 수행할 수 있는가? 혹은 그 수행에서 어떤 결과를 이끌어 낼 수 있는가?

LAMP(J)로 고객의 요구사항을 부합할 수 있는가? 이 플랫폼이 특정 하드웨어에서 1,000 명의 동시 접속자에게 원활하게 서비스를 제공할 수 있는가? 상용 플랫폼과 비교해서 충분한 개발 생산성을 보장할 수 있는가? 메인 프레임, ERP, SCM 등의 기존 어플리케이션과 연동할 수 있는가? 개발자 교육 비용은 적절한가? 상용 플랫폼의 경우, 이에 대한 답변은 플랫폼 제공 업체의 책임이다. 하지만 LAMP(J)에서는 기업의 책임이 된다. 하지만 이 책임은 기업에게 새로운 시장 기회를 제공한다. LAMP(J)에 대한 신뢰할 수 있는 검증 자료를 확보하여 높은 수준의 서비스를 제공할 역량을 갖출 수 있다면 고객에게 비용 절감이라는 효과를 제공하면서 이 오픈 소스 플랫폼 서비스로부터 신규 매출을 창출할 수 있게 된다.

경쟁력 강화와 가치 창출을 위해서 고객에게 최적화된 시스템을 구축하여 공급해야 한다. 최적화란 효율과 효과라는 두 측면을 아우른다. 독점 상용 소프트웨어에 대한 과도한 의존은 효율이라는 측면의 약화를 야기한다. 불필요한 기능을 포함한 소프트웨어를 그 기능에 대한 비용과 소프트웨어에 대한 업체의 막대한 광고 비용까지 포함하여 높은 가격에 구매해야 하며, 업체에 의해서 주도되는 잦은 업그레이드 비용까지 부담해야 한다. 오픈 소스에서 이런 시장의 구조에 변화를 줄 수 있는 전략적 도구를 찾을 수 있을 것이다.


8. 참고 자료


No comments: