Skip to content

Latest commit

 

History

History
88 lines (45 loc) · 11.6 KB

2-2_Develope.md

File metadata and controls

88 lines (45 loc) · 11.6 KB

오픈소스의 발전

맨 처음 소프트웨어는 해커와 연구자들을 중심으로 발전했다. 그러나 소프트웨어 산업이 발전하면서 점점 더 영리적인 성격을 띠게 되었고, IT기업들이 주축이 되어 소프트웨어를 개발하게 되었다. 그런데 소프트웨어로 돈을 벌려고 할 떄 큰 문제점이 있었다. 복제가 아주아주 쉽다는 것이었다.

그래서 초기의 상업적 소프트웨어 기업들은 절대 소스 코드를 공개하지 않았다. 당연했다. 소프트웨어는 누구나 설계도인 소스코드를 가져가면 자기 마음대로 쓸 수 있기 때문이다.

기업들은 소스 코드를 철저하게 숨겼다. 법적으로는 특허와 지적재산권을 사용해서 보호했다. 소스 코드에는 권한을 가진 소수의 사람만 접근할 수 있었다. 그러다 보니 개발 조직은 자연스럽게 더 놓은 권한의 관리자로부터 가장 낮은 프로그래머로 내려가는 Top-dowm 형태가 되었다.

이 과정에서 소프트웨어의 저작권에 관한 치열한 논쟁이 벌어졌다. 해커와 연구자들로 이루어진 그룹은 소프트웨어는 무료로 배포되어야 한다고 주장했고, 소프트웨어 기업들은 소유권이 보호되어야 한다고 주장했다. 대표적인 기업 측 인물이었더 빌 게이츠는 1976년 <취미 생활자들에게 쓰는 공개편지>라는 글에서 이렇게 말했다. "소프트웨어를 만드느라 애쓴 사람들에게 보상을 주지 않으면 도둑질이다." 하지만 이에 반대하던 해커들 중 한명인 리처드 스톨먼은 소프트웨어는 자유로워야 한다고 주장하며 자유 소프트웨어 재단(FSF)을 설립했다. 그는 소프트웨어를 자유롭게 수정 배포할 수 있게 하는 GPL이라는 라이선스를 만들었다.

이 상황에서 오픈 소스 역사의 획을 긋는 사건이 일어난다. 라이너스 토발즈라는 프로그래머가 나타나서 자신이 개발한 소프트웨어 커널(운영체제에서 핵심적인 역할을 하는 제어 모듈)을 GPL 라이선스로 공개한 것이다. 이것이 리눅스다.

linux

< 출처:https://brunch.co.kr/@bumgeunsong/15 >

리눅스에 흥미를 느낀 많은 사람들이 개발에 참여했고, 리눅스를 점점 더 정교하게 발전시켜나갔다. 그리고 몇십 년이 지난 지금 현재 리눅스는 전 세계에서 가장 많이 쓰이는 운영체제다. 안드로이드 운영체제가 리눅스를 기반으로 하기 때문이다. 전 세계 수억 대의 안드로이드 폰에 리눅스가 탑재되어있다. 그리고 세계에서 가장 빠른 슈퍼컴퓨터의 500대의 90%가 리눅스 기반이다.

리눅스의 성공은 오픈 소스의 협업 모델이 상업적 기업보다 뛰어날 수 있다는 걸 증명했다. 코드만 100만 줄이 넘는, 이 엄청나게 복잡한 컴퓨터 프로그램을 전 세계의 자원봉사자들이 만들어냈다. 그리고 심지어 기업이 개발한 프로그램을 능가했다. 이는 그전까지 소프트웨어 역사에서 전례가 없는 일이었다.

그 이후로도 계속해서 중요한 소프트웨어들이 오픈 소스로 개발되고 있다. 특히 최근 소프트웨어 업계에서 오픈 소스는 완전히 대세가 되었다. 앞서 말했던 안드로이드(모바일 운영체제)뿐만 아리나 클라우드(Axzure), 데이터베이스(MySQL), 웹서버(Apache), 웹브라우저(Firefox), 콘텐츠 관리 시스템(Wordpress), 빅데이터 관리(Hadoop) 등 거의 모든 분야에서 높은 점유율을 가지고 있다. 현재 사용되는 소프트웨어 중 오픈 소스 기술을 사용하지 않는 것은 거의 없다고 한다.

오픈 소스가 성공한 이유

상식적으로는 실패해야 할 것만 같은 오픈 소스 모델이 어떻게 성공할 수 있었을까? 누구나 예상할 수 있는 문제점. 즉, 인센티브의 부재와 커뮤니케이션의 어려움을 어떻게 극복했을까? 성공의 비결을 알려주는 흥미로운 사실 3가지를 뽑아보았다.

1. 의사결정 시스템

오픈 소스가 참여와 개방을 기본 원칙으로 하기 때문에 위계질서가 없는 것처럼 오해할 수 있다. 하지만 취미 생활을 위해 모인 동호회라도 회장, 부회장, 총무는 반드시 있듯이, 마찬가지로 오픈 소스도 모든 사람이 동등한 권한을 가지고 있는 것은 아니다. 체계적인 시스템과 관리가 없이는 아무리 혁신적인 사람들이 모여도 뛰어난 소프트웨어를 만들 수 없다.

그 이유는 프로그래밍을 직접 해보면 쉽게 알 수 있다. 컴퓨터는 아주아주 융통성이 없다. 점 하나만 잘못 찍혀도 전체 프로그램이 에러가 난다. 그래서 여러 사람이 함께 코드를 짜다보면 필연적으로 문제가 생긴다. 각자 코드를 짜는 과정에서 중복되거나 모순되는 부분이 생기기 때문이다.

이런 혼란을 막기 위해서 오픈소스 커뮤니티에는 기여자(Contributor)가 짠 코드를 검토하고 최종적으로 소스 코드에 추가(Merge)하는 관리자들이 있다.

위계질서의 형태는 오픈 소스 커뮤니티마다 모두 다르지만, BDFL(Benevolent Dictator For Life)과 Meritocracy, Liberal 이렇게 3가지 종류로 나눌 수 있다. 뒤로 갈수록 더 많은 사람들에게 권한이 주어지는 형태다.

BDFL:한 사람이 모든 중요한 의사결정권을 가진다.
ex) python

Meritocracy:소수의 메인 컨트리뷰터들이 안건과 선택지에 대해 우선적으로 결정하고 구성원의 의견은 투표를 통해 수렴한다.
ex) Apache의 오픈소스 프로젝트

Liberal contributor:다수의 컨트리뷰터들이 위원회를 구성한다. 투표를 지양하고 위원회 안에서 합의를 통해 최대한 많은 구성원의 의견을
반영해서 결정을 내린다.
ex) Node.js

2. 버전 컨트롤 시스템

처음 라이너스 토발즈가 리눅스를 오픈 소스로 공개했을 떄 그는 사람들이 메일로 보내온 수정된 코드를 일일이 검토해서 직접 소스 코드에 합쳤다고 한다. 그러나 오픈 소스 커뮤니티가 수천 명 수만 명의 규모가 되면, 하루에도 몇 천 번의 수정이 이루어지고 코드의 길이도 엄청나게 길어진다. 이쯤 되면 사람이 직접 하기가 불가능해진다.

그래서 라이너스가 리눅스 다음으로 만든 프로젝트가 바로 Git이라는 분산 버전 관리 시스템(Distributed version control system)이다. Git은 프로그래머들이 코드를 트래킹 하고, 수정한 코드들을 오류 없이 자동으로 합칠 수 있게 해준다. Git을 통해서 조정없는 협력(Cooperation with Coordination)이 가능해진 것이다.

Git과 같은 효과적인 협업 툴이 있기 때문에 수백 수천 명이 참여한는 오픈 소스라 하더라도 체계적으로 관리될 수 있다.

3. 오픈 소스의 경제학

오픈 소스는 무보수 프로그래머들이 발전시키고 있다고 말했는데, 사실 자세히 들여다보면 조금 다르다. 굉장히 흥미로운 부분인데, 오픈 소스가 완벽하게 비즈니스와 구별되는 것은 아니다. 프로그래머들도 오픈 소스 프로젝트에 참여함으로써 물질적인 보상을 얻기도 하고, 오픈 소스 커뮤니티들도 수익을 창출하기 때문이다.

첫 번째로 오픈 소스 기여는 개발자들에게 경험, 더 정확히 말하면 ' 포트폴이오'가 된다. 그래서 프로그래머들의 미래 수익 창출에 중요한 역할을 한다.

게다가 일단 오픈 소스에 자신의 코드가 들어갔다는 것 자체가 프로그래머의 실력을 증명하는 일이다. 물론 얼마나 유명한 오픈 소스 프로젝트인가도 실력을 가늠하는 척도가 된다. 그래서 IT 기업의 채용자들은 오픈 소스 기여 항목을 아주 중요하게 고려한다. 프로그래머의 실력과 스타일을 모두 볼 수 있는 완벽한 수단이기 때문이다.

또한 소프트웨어 업계는 하루가 다르게 트렌드와 기술이 바뀐다. 그래서 최신 기술에 대해 숙달하는 것(또는 그렇게 보이는 것)이 상당히 중요하다. 그렇기 떄문에 많은 프로그래머들이 새로운 기술에 대한 경험을 쌓고, 공개적으로 자신의 포트폴리오를 만드는 데 오픈 소스를 적극적으로 활용한다.

두 번쨰로, '기업용 오픈 소스 시장'을 통해서 오픈 소스도 돈을 번다.

기업용 오픈 소스 시장의 첫 번째 비즈니스 모델은 '교육'이다. 대부분의 소프트웨어는 잘 활용하기 위해서 학습이 필요하다. 따라서 오픈 소스 커뮤니티는 관련된 책, 강좌, 또는 전문가 인증 제도 등을 통해서 수익을 창출한다. 예를 들어 아파치 재단이 만드는 Hadoop은 무료지만, 사용하기가 복잡한 프로그램이다. 이런 경우 아파치 재단은 Hadoop을 설치, 활용하는 방법을 기업에게 교육하고 돈을 받거나 아니면 재단이 인정하는 Hadoop 전문가 인증 프로그램 등을 통해서 돈을 번다.

두 번째는 기술 지원이다. 기업 입장에서 오픈 소스 소프트웨어를 쓸 때는 몇 가지 문제점이 있다. 오픈 소스는 일반 소프트웨어보다 짧은 주기로 업데이트된다. 기업용으로 사용되는 소프트웨어의 경우 업데이트 주기가 너무 빠를 경우 다른 시스템과의 호환이나 적응 시간 등 문제가 발생할 수 있다. 따라서 매번 호환성이나 안정성 등에 대한 검증이 필요하다. 게다가 오픈 소스는 공짜이다 보니 유지보수를 위한 애프터서비스도 없다. 혹시나 문제가 발생해도 지원을 받을 수 없다. 영업 활동에 직결된 기업용 소프트웨어는 이런 안정성 이슈들이 굉장히 중요하다.

따라서 이런 기업 고객들의 니즈를 반영해서 오픈 소스 단체나 기업이 다양한 버전을 지원하거나 고객의 상황에 맞춰 소프트웨어를 Customization해주거나, 문제가 생겼을 떄 유지보수를 해주고 돈을 번다.

기업용 오픈 소스로 수익을 내는 대표적인 기업이 레드햇이다. 레드햇은 1993년 미국에서 설립된 기업용 오픈 소스 전문 기업이다. 대표 제품이 '레드햇 엔터프라이즈 리눅스'다. 즉, 오픈 소스인 리눅스에 다양한 기술지원과 추가 기능을 더해 기업에게 제공한다. 오픈 소스 교육 프로그램도 별도로 운영한다. 레드햇은 오픈 소스를 사용해서 돈을 벌었기 떄문에 이 수익을 다양한 방법으로 오픈 소스 커뮤니티에 다시 환원한다.

물론 모든 사람이 오픈 소스로 돈을 버는 것은 아니다. 그리고 상업적 소프트웨어 시장에 비하면 훨씬 작은 것도 사실이다.

하지만 오픈소스 생태계가 단순히 사명감이나 보람에 의한 기여에 의존했다면 아마 이렇게 성공하지는 못했을 것이다. 오픈 소스 생태계의 성장은 자발적 참여에 의한 협업 모델과 동시에, 수익을 얻을 수 있는 비즈니스 모델이 적절하게 조화를 이루었기 때문에 가능했다.


출처https://brunch.co.kr/@bumgeunsong/15