2. 어떻게 오픈소스는 주류가 되었을까?
2.1 오픈소스의 특징
오픈소스는 '오픈'이라는 말 그대로 누구나 자유로운 이용과 배포가 가능하도록 오픈되어 있는 소스이다. 이는 자유, 공개, 비차별이라는 특성을 이끌어내며 더 나아가, SW 생태계의 새로운 혁신을 이끌어내고 있다. 오픈소스가 갖는 철학적 의미는 SW의 상업화가 아니라 누구나 자유로운 이용과 배포가 가능한 SW를 공유한다는 것이다. 오픈소스의 이러한 특성은 SW생태계에 어떠한 영향을 주었을까?
품질
- 블랙 덕이 2014년 발표한 '오픈소스의 미래(Future of Open Source)'라는 조사 결과에 따르면, 조사 대상자들이 오픈소스를 선택하는 첫 번째 이유는 품질이었다. 오픈소스 프로젝트가 지지를 받으면서 더 많은 사람들이 안정성을 개선하고, 버그를 찾아 수정하며, 인터페이스를 효율화 하는데 도움을 주고 있다.
보안
소스코드가 공개되어 있는 경우라면 투명하게 누구나 코드를 보고 문제가 되는 부분을 찾고 공유할 수가 있다. 하지만, 상용 프로그램의 경우 사용자에게 전달되는 것은 단지 바이너리로 된 파일이다. 누군가에 의해 발견된 취약점이 있다고 하더라도 이것이 공유되지 않는다면 잠재적인 위협으로 남게 된다. 즉, 더 큰 위협이 될 수가 있다는 것이다. 오픈소스는 이와 반대로 소스코드가 공유되어 있으므로 취약점이 보고되면 취약점이 빠르게 해결되는 편이다.
오픈소스 SW는 소스코드가 공개되어 다수의 전문가들이 보안취약성을 검토해 오히려 보안이 강화되는 효과가 있다. 클로즈드 소스 SW와는 달리 커뮤니티에서 신속한 패치가 이루어진다.
빠른 혁신
- 개발자들이 바로바로 혁신에 참여해 기존 소프트웨어 업체들은 내부에서 제품을 개발한다. 그러나 오픈소스 업체들은 '무에서 유를' 창조하지 않는다. 공통의 인프라를 혁신하는 방법을 쓴다. 애널리스트인 존 올트시크는 "오픈소스는 처음부터 소프트웨어를 개발하는 프로젝트의 필요성을 없애주는 '소프트웨어 토대'를 제공한다. 특정 목적에 맞게 맞춤화가 가능해 개발 프로세스에 박차를 가할 수 있다"고 강조했다. 클라우드 서비스의 경우, 아마존이나 마이크로소프트 방식이 있다. 다양성이 강조된 서비스, 전문화된 서비스, 맞춤형 서비스 수준을 제공한다는 점에서 차별성이 있다.
호환성
- 유료, 특히 MS의 경우 독자적인 파일 포맷을 고집해서 일부러 호환성을 떨어뜨려서 시장을 독점하려는 경향이 있다. 오픈소스는 파일 포맷도 오픈되어 있으며, 다양한 개발자들이 자신의 개발 환경에 맞는 오픈소스 프로그램을 개발하기 때문에 뛰어난 호환성을 자랑한다.
맞춤화
- 오픈소스 소프트웨어에 정통한 사용자들은 소스 코드를 찾아 수정할 수 있다. 체스터 카운티 캣 호스피탈(Chester County Cat Hospital)의 폴 스태들러(사진) 기술 매니저는 "다른 사람의 도움 없이, 사용하고 있는 오픈소스 소프트웨어를 우리의 요구사항에 맞춰 확장할 수 있다"고 말했다. 이 회사는 핵심 소프트웨어로 오픈소스 기반의 수의학 관리 소프트웨어를 사용하고 있다. 리눅스 서버에서 실행되며, 직원들의 데스크톱과 모바일 기기로 전달되는 웹 기반 인터페이스다. 블랙 덕의 올해 조사 결과에 따르면, 기업들이 상용 소프트웨어 대신 오픈소스를 선택하는 네 번째 이유가 이와 관련된 '적응성과 유연성(Adaptability and Flexibility)'이었다. 지난 해에는 8위에 선정된 장점이었다.
협업
- 과거에는 몇몇 기업들이 동일한 기능성을 필요로 하는 경우, 처음부터 개발을 하거나, 외부 업체의 제품을 이용하거나, 콘소시움을 구성해 제품을 개발 및 유지관리 해야 했다. 그러나 오픈소스 소프트웨어는 서로 경쟁하는 기업들이 협력을 하도록 만들어, 이런 프로세스를 간소화 시키고 있다. 이렇게 하면 스스로를 차별화하는 프로젝트에 돈과 시간을 투자할 필요가 없다. 블랙 덕의 조사에 따르면, 50%의 기업들이 오픈소스에 기여를 하고 있으며, 56%는 올해 이런 기여의 폭을 넓힐 계획이라고 밝혔다. 기업은 개발 단계에 참여하면서 소프트웨어의 발전 방향에 영향을 주고, 다른 개발자와 관계를 구축할 수 있다.
표준
- 클로즈드 소스 SW라면, 해당 SW를 무조건 써야하며 이와 관련된 프로그램 또한, 해당 SW에서 제공하는 프로그램만을 사용하여야 한다. 예를들면, 마이크로소프 워드의 '.doc' 형식 등 인기 제품을 바탕으로 '사실상의 표준(de factor standard)'이 개발된다. 또한 관련 프로그램도 호환이 되는 특정 기업의 프로그램만 사용가능 하여, 특정 OS나 애플리케이션에 종속되기 쉽다. 하지만, 오픈소스라면 다른 OS로 다른 애플리케이션으로 자유롭게 갈아타기가 가능하다.
최첨단
- 많은 분야에서 오픈소스 소프트웨어가 상용 플랫폼을 뒤쫓아 가는 것이 아니라 선도를 하고 있다. 클라우드와 모바일, 빅 데이터, 사물의 인터넷(IoT) 분야에서 이들 플랫폼의 진화를 견인하는 중요한 오픈소스 프로젝트가 추진되고 있다. 웹 자체는 두 말할 것도 없다. 많은 웹들이 리눅스 오픈스택, 아파치, 마이SQL, PHP에 기반을 두고 있다. 더 나아가 최근 가장 '핫'한 기술인 가상 현실에도 오픈소스가 중요한 역할을 하고 있다. 현재 서로 경쟁을 하고 있는 오픈심(OpenSim), 오픈 원더랜드(Open Wonderland), 오픈 콰크(Open Qwaq) 등 오픈소스 기반 가상 환경 플랫폼을 예로 들 수 있다.
비용
- 가격은 언제나 중요한 요소다. 2014년 블랙 덕의 조사 결과에 따르면, 조사 대상의 68%는 오픈소스가 효율성 향상과 비용 절감에 도움을 줬다고 대답했다. 물론 오픈소스가 '공짜'는 아니다. 업체들은 특정 소프트웨어 버전을 중심으로 소프트웨어와 지원, 맞춤화 개발에 가격을 책정해 요구하고 있다.
많은 사람들이 이용하고 자유롭게 수정할 수 있기 때문에 버그 수정이 빠르게 진행된다. 여러 사람의 의견을 수렴하면서 저렴한 서비스를 제공할 수 있다. 뿐만 아니라, 소스코드 및 라이브러리의 재사용으로 개발시간이 단축되어 생산성이 향상된다.
뛰어난 외부개발자들의 참여가 가능해지면서, 세계적 수준의 소프트웨어를 빠른 속도로 개발이 가능해진다.
이러한 오픈소스의 장점들은 현재 IT업계에서 오픈소스 SW의 위상을 만들어낸 주요한 원인이 되었다. 적게는 몇 명에서, 많게는 수백·수천 명의 개발자가 협업하는 오픈소스는 소스코드를 공개하여 해당 프로젝트에 관심있는 누구나 끌어들일 수 있다. 이러한 자율성은 오픈소스에 대한 관심이 날로 높아지게 만드는 주요한 특징이기도 하다.