공개소프트웨어

  • 공개소프트웨어
HOME > 공개소프트웨어
공개소프트웨어| 오픈소스 소프트웨어에 대한 기본 지식들을 제공합니다.
 
공개소프트웨어의 완성도 및 수명
조회 : 1,427  


 

 

글쓴이 : 리눅스포탈(www.superuser.co.kr) 박성수(papa@superuser.co.kr)

  대부분의 공개소프트웨어 프로젝트에 사용되는 공동제작 모델은 사용이 증가함에 따라서 완성도와 신뢰도가 향상되는 피드백 기반의 개발 모델과 관련이 있다. 제품의 수명주기의 초기 단계에서, 공개소프트웨어 어플리케이션은 독점소프트웨어의 배포 버전보다 강력하지 못하며 신뢰도가 떨어질 수 있다. 다수의 공개소프트웨어 개발 공동체는‘조기 배포, 빈번한 배포(release early, release often)'라는 배포 철학을 따르고 있다. 이러한 제품의 초기 버전들은 일반적으로 제한적인 채택을 의도한 것이므로, 기관들은 중요한 기능을 위해 그러한 제품을 고려할 때에는 주의해야 한다.

  하지만 적절하게 설계되고 관리된다면, 공개소프트웨어 어플리케이션은 눈에 띄게 급속도로 발전될 수 있다. 시장 요구를 충족시키는 공개소프트웨어 프로젝트는 추가적인 개발자, 개발업체, 초기 채택 기술자들을 발생시키는 경향이 있다. 그러나, 부적절하게 설계되거나 관리된 프로젝트는 시간이 지남에 따라 활기를 잃으며 진행 속도도 더딜 수 있다. 강력한 개발자 공동체의 지원을 받지 못하는 어플리케이션은 최우선적으로 피해야 한다.

  보다 성공적인 프로젝트는 개발자 및 사용자 공동체의 지원이 증대된다. 다시 말해, 소프트웨어 코드베이스, 문서, 웹사이트, 메일링 리스트 지원 및 토론 포럼이 전개된다. 그리고 프로젝트에 대한 추가적인 주의, 자원, 개발자 및 사용자를 이끌어내는 경향이 있다.

  많은 공개소프트웨어 프로젝트들은 ‘조기 배포, 빈번한 배포’의 반복이 이루어지는 동안, 소프트웨어는 계속해서 제조되어 판매되기에는 지나치게 미완성적일 수 있다. 그러나, 이 단계에서, 기관들이 심층적인 조사를 정당화할 수 있을 정도의 이익을 찾아낼 수 있는 단계에 도달할 수 있다. 적절하게 발전된다면, 이러한 성장 단계로 소프트웨어를 주류로 수용되기에 충분히 성숙될 수 있게 만들 수 있다.

  몇가지 방법으로, 다른 제품에 대해 하나의 공개소프트웨어 제품이 이룩한 성공은 자연스럽게 발전하는 선택 과정과 유사하다. 가장 강력하고, 추진력 있는 프로젝트는 개발의 성숙도를 가속화시킬 수 있는 진귀한 자원들(초기 채택자, 개발자, 테스터)을 구비하고 있다. 다시 말해, 이는 추가적인 사용자들의 관심을 자극하여 소프트웨어의 성숙 과정을 가속화시킨다.

  사용자와 개발자는 일반적으로 강력한 경쟁자를 선택하여 이점을 얻는다. 그 이유는 이것이 대규모 사용자 공동체를 보유한 생존력 있는 플랫폼이 될 수 있는 가능성이 가장 크기 때문이다. 이는 제품의 수명의 가능성을 상당 수준 증가시킨다.

  이 요인은 정부 기관에 특히 중요하다. 완성도 있게 발전하고자 노력하는 제품을 선택하는 것은 심각한 위험을 초래할 수 있다. 그러므로, 오픈 소스 제품의 분석을 통해 완성도와 성공의 현재 수준을 판정하는 것이 중요하다. 모든 공개소프트웨어 제품이 선택할 수 있을 정도로 생존력 있는 발전 단계의 정점에 있을 필요는 없다. 그러나, 개발자와 사용자의 강력한 지원을 받는 제품을 선택하는 것은 위험을 줄일 수 있는 현명한 방법이다.

  대부분의 공개소프트웨어 개별분야마다 일반적으로 하나 이상의 경쟁업체들이 존재한다. 이는 특히, 다른 생태계 또는 영역으로 구분이 가능한 분야에서 나타날 수 있다. 컴퓨터 운영체제가 가장 적절한 예이다. 이러한 운영 체제의 사용은 다른 공개소프트웨어 프로젝트가 특정 용도(이동 장치, 데스크탑 시스템, 서버) 또는 특정 기술 모델(분산 컴퓨팅, 그리드 컴퓨팅, 단일 서버)을 목표로 하여 동시에 성공을 거둘 수 있을 정도로 다양하다.

  또 다른 예로는 SQL데이터베이스 엔진이 있다. 여기에는 최소한 12개의 생존력 있는 공개소프트웨어 프로젝트들이 있다. 이러한 프로젝트의 대부분은 내장형 장치 또는 기업형 백엔드 서버와 같은 특수한 영역을 목표로 하고 있다. 이러한 시장은 다수의 SQL 데이터베이스 엔진을 지원할 수 있을 정도의 규모와 범위를 갖추고 있으며 특정 영역에서 각각의 제품은 다른 강점과 취약점을 나타낼 수 있으므로, 기관들은 잠재적인 제품들을 주의하여 평가해야 한다.

  공개소프트웨어는 상용소프트웨어의 안정성을 따라올 수 있을까라는 의문을 제기하는 분들이 있다. 실제 예를 들어 보자. 포스코, 현대기아자동차등의 굵직한 리눅스 도입 기업들은 모두 리눅스의 '안정성'을 주요 도입 배경으로 꼽고있다. 리눅스는 특히 OS수준에서 제공하는 안정성이 뛰어난 것으로 평가받고 있다. 기업이나 공공기관에서 시스템의 안정성은 곧 서비스의 신뢰성과 직결되는 문제이다. 리눅스의 경우 유닉스에 버금갈 뿐만아니라 윈도우에 비해서는 탁월한 안정성을 자랑한다.

  그리고 공개소프트웨어의 또다른 안정성에 대한 의문은 "공개소프트웨어를 도입하면 기존의 소프트웨어와 시스템을 모두 바꿔야하는가?"이다.

  주요 소프트웨어 개발업체들은 새로운 소프트웨어 개발시 가장 먼저 포팅해야 할 대상으로 유닉스가 아닌 리눅스를 선택하고 있다.  주요 유닉스 벤더들의 최근 유닉스 버전들은 리눅스에서 운용되는 소프트웨어를 운용하는데있어 포팅 이슈가 거의 없어졌다. 오히려 리눅스용으로 포팅된 것이 역으로 최신 유닉스 플랫폼으로 이식되기도 한다. 이는 지난 3~4년간 기존 SW업체들이 제품 개발시 목표 플랫폼으로 유닉스를 지원했던 경향이 이제는 리눅스가 최우선 포팅대상으로 변화하고 있기 때문이다.


  그리고 만약 "소프트웨어의 종류로서 오직 공개소프트웨어들만이 남게 된다면 경쟁자들은 완전히 제거될 것인가?"에 대한 의문이 있다.

  이는 공개소프트웨어 프로그램은 때로 주어진 가능성의 영역에서 제각각 경쟁을 한다. 문서 편집기인 emacs와 vi는 십여년간 경쟁하고 있다. sendmail은 메일 전송부문에서 가장 인기있는 프로그램이지만, 이는 다른  공개소프트웨어인 postfix와 Exim이라는 경쟁자를 가지고 있다. 데스크탑 환경인 GNOME와 KDE는 Linux와 BSDs의 운영체제 커널로 서로 제각각 경쟁하고 있다. 일반적으로, 경쟁을 하고 있는 공개소프트웨어 프로젝트는 그들 스스로와 성공을 하기 위한 서로 상호간이 구별되어야만 한다.

  그러나 이는 소프트웨어들 뿐만아니라, 경쟁중인 독점소프트웨어들 역시 그러하다. 또한 경쟁중인 소프트웨어들은 일반적으로 서로 상호간에 조화를 이루기 위해 노력한다. 왜냐하면 그들의 고객이 그것을 요구하기 때문이다.

  그리고 공개소프트웨어로는 도저히 상업적인 성공을 이루기가 어렵다라고 주장하는 분들이 있다.

 공개소프트웨어는 그 특성상 소스코드를 공개해야 한다. 따라서 소스코드를 컴파일한 제품을 시장에 내다 팔려고 하면, 팔수가 없다. 왜냐하면 그 코드를 컴파일만 하면 동일한 제품을 얻을 수 있기 때문이다. 그러나 기존의 비즈니스 모델이 아닌 다양한 비즈니스 모델(기술지원, 서비스등과 같은)이 존재하기 때문에, 기존 방식대로 성공하기 어렵다고하여 공개소프트웨어가 성공하지 못할 것이라고 판단할 수는 없다.  다양한 비즈니스 모델이 가능하며, 또한 현실 세계에서 리눅스, 아파치 등은 매우 큰 성공을 거두었으며, 이를 이용한 많은 기업들이 수익을 내고 있다. 공개소프트웨어를 이용하여 상업적으로 성공한다는 것이 결코 쉬운일이 아니지만 상용소프트웨어도 상업적으로 성공하기 어려운 것은 마찬가지이다. 하지만, 앞의 설명을 읽어 본다면 공개소프트웨어를 이용하여 수익을 창출 할 수 있는 다양한 방법들이 존재하며 지금도 새로운 공개소프트웨어 기업체가 탄생되고 있다는 점을 기억하기 바란다.

 

***  본 기사의 인용과 이용은 글쓴이 또는 "리눅스포털(www.superuser.co.kr)"에 문의하시기 바랍니다. ***

 


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1002


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수