프로그래밍⚡️/기타 등등

오픈소스는 과연 혁명일까? 오픈소스의 역사와 평가

Kwangkki 2023. 4. 26. 19:00

성당과 시장

우연히 "성당과 시장"이라는 책을 접했다. 오픈소스의 선구자인 에릭 레이먼드가 지은 책인데, 당시 이 책에 감명받은 해커가 한둘이 아니란다(참고로 해커는 옛날에 개발자를 지칭하던 단어다). 일단 나도 책 가격에 감명을 받긴 했다. 오픈소스를 지향하기 때문에 무료로 배포한다고 한다. 동일한 작가가 만든 또 다른 책 "오픈 소스 혁명의 목소리"까지 읽고 나니 영화 한 편을 본 듯했다. 과거의 해커들에게 동화되어 컴퓨터 프로그래밍 역사를 함께 한 기분이었다.

 

대해커 시대의 저자

그도 그럴 것이 저자인 에릭 레이먼드는 리눅스를 만든 리누스 토르발즈, 자유 소프트웨어 혁명가 리처드 스톨만, C언어와 유닉스를 만든 켄 톰슨과 데니스 리치 등 컴퓨터 역사서에 등장할 만한 업적을 세운 사람들과 동시대 해커다. 그의 경험은 책에 고스란히 담겨 당시 상황을 생생하게 말해준다. 다만, 책이 좀 어렵다. 1999년에 쓰인 책이다 보니 그때 기준의 단어와 기술이 아무 설명 없이 쓰여있다 보니 위키백과를 들락날락하며 책을 읽어야 해서 정말 오래 걸렸다. PDP-10, CSRG, VAX..등등

 

옛날옛적의 코딩이란

오픈소스에 대해 설명하려면 코딩의 역사를 대강이나마 알아야 한다.

1960년대의 초기 컴퓨터는 정말 무시무시하게 생겼다. 도대체 어떻게 코딩을 한 걸까..

출처: 위키백과, 왼 PDP-1, 오 PDP-10

 

천공판이라는 곳에 구멍을 뚫어 프로그래밍을 했다고 한다.

 

왼) 코드를 짠 천공판 카드 모음. 순서가 뒤섞이면 큰일 난다고 함  오) 자신의 코드를 쌓아둔 마거릿 해밀턴 - 출처:위키백과

이 때는 소프트웨어보다 하드웨어가 더 각광받던 시기다. 

1970년대 중반까지 컴퓨터 코드는 컴퓨터 하드웨어 운영에 포함되는 것으로 여겨졌으며, 저작권법의 보호 대상인 고유한 지적 재산이 아니라고 간주되었습니다. 조직들은 자체 소프트웨어를 프로그래밍했으며, 코드 공유는 일반적인 관행이었습니다. 

- IBM 공식홈페이지

 

당시에는 소스 코드를 빌리고 알려주는 것이 당연한 일이었다고 한다.

 

C언어와 유닉스의 등장

소프트웨어가 중요해진 시점은 1970년 C언어와 유닉스가 등장하고 난 이후부터다. 당시 벨 연구소에 있던 켄 톰슨과 데니스 리치시분할처리 시스템용 운영체제인 유닉스를 만들고 이를 개발하기 위해 C언어를 만들었다. C언어는 켄 톰슨이 만든 B언어를 데니스 리치가 개선한 것이라고 하는데, 아마 B언어를 디벨롭했기 때문에 C언어라고 작명한 것 같다. 참고로 B언어는 벨 연구소의 B를 따온 것이라고 한다.

 

AT&T의 유닉스 라이선스 판매

유닉스와 함께 VAX와 같은 유닉스 운영체제를 사용하는 컴퓨터가 등장했고 소프트웨어가 점점 중요해지게 된다. 그러다 1974년, 소프트웨어 코드는 저작권법에 보호를 받을 있는 창작물로 인정되기까지 한다. 이때부터 벨 연구소의 전신인 AT&T는 유닉스에 라이선스를 붙여 판매하기 시작했다. 처음엔 저렴한 가격으로 유닉스와 소스코드를 모두 제공했다. 이유는 IBM과 맺은 협약 때문인데, 당시 두 회사 간에 IBM은 전화 사업에 AT&T는 컴퓨터 사업에 진출할 수 없다는 협약이 있었다. 그러다가 AT&T가 여러 회사로 분열되는 일이 발생한다. 미국은 AT&T의 독점권을 막기 위해 여러 제재를 가했는데 요리조리 잘 피하던 AT&T가 결국 분리되고 만 것이다. 이때를 기점으로 AT&T는 유닉스 가격을 엄청나게 올리게 된다.

 

유닉스의 대안 BSD

유닉스의 가격이 오르자 대안으로 떠오른 것은 BSD였다. BSD는 버클리 대학교의 CSRG(Computer Science Research Group)에서 만든 유닉스 기반의 운영체제다. 교육용으로 사용하던 유닉스를 개선한 것이 BSD인데 유닉스의 가격이 오른 시점에 여러 기관 회사에서 BSD 배포를 요청하기 시작했다. 그리고 CSRG는 저렴한 가격으로 BSD를 배포했다. 지금의 맥 OS도 BSD를 기반으로 만든 것이라고 한다. 하지만 AT&T이 저작권 침해로 소송을 걸며 소송 기간 동안 BSD 배포가 막히게 된다. 

 

참고로 BSD를 배포한다는 것은 아래 만화와 같이 테이프를 우편으로 배포하는 것이라고 한다. 아래 만화는 자유 소프트웨어에 관심 있다면 정주행 하는 것을 추천하다. 컴퓨터 역사를 알 수 있다. 지금 보니 "여럿이 함께 작업하니 한결 편하더군요" 대사는 오픈소스의 철학을 빗댄 것이 아닐까 싶기도 하다.

출처: 만화로 나누는 자유/오픈소스 소프트웨어 이야기 (https://joone.net/2018/01/14)

 

GNU 프로젝트

대안으로 BSD 말고 또 다른 운영체제가 있었는데 바로 GNU 운영체제다. 자유 소프트웨어 운동가인 리처드 스톨만이 시작한 프로젝트로 무료 운영체제를 만들기 시작한 것이다. GNU의 뜻은 "Gnu's Not Unix!"로 재귀적 표현이라고 하는데 개발자들만의 조크 같은 느낌으로 지은 게 아닐까. 이 리처드 스톨만은 오픈 소스/자유 소프트웨어의 아버지라고 할 수 있는데 옷차림을 보면 히피 문화에 영향을 많이 받은 듯하다. 실제로 1960~70년대에 히피 문화가 성행했다고 하니 틀린 말은 아닐 거다. 원로 해커(옛날에는 개발자를 해커라도 불렀다고 함)인 리처드 스톨만은 소스코드를 공유 받는 것에 제약을 받자 자유 소프트웨어 운동과 프로젝트를 시작했다고 한다. 리누스 토르발즈의 자서전에 따르면 그도 리처드 스톨만의 자유 소프트웨어 연설에 감명을 받았다고 한다.

 

리처드 스톨만 출처: 위키백과

 

리눅스 커널

GNU 운영체제에는 중요한 기술이 빠져있었는데 바로 커널이었다. 커널은 소프트웨어와 하드웨어를 이어주는 역할을 하는데 운영체제 기술에 있어 가장 중요한 것이라고 볼 수 있다. GNU 운영체제를 사용하던 개발자들은 호환되는 커널을 찾던 중 리눅스 커널을 알게 되었고 무료에다 자유롭게 수정 배포할 수 있었기 때문에 리눅스 커널을 채용하기 시작한다. 그리고 시기를 잘 탔던 리눅스는 금세 가장 인기 있는 운영체제로 부상하게 된다. 

 

리눅스, GNL 라이선스 적용

리누스 토르발즈는 리눅스에 GNL 라이선스를 붙였다. GNL은 GNU에서 만든 라이선스로 소프트웨어를 수정하고 배포할 경우 소스 코드를 공개해야 하는 의무가 있다. 일부 국가에서는 이 GNL 라이선스를 어길 경우 법적 조치도 가능하다고 한다. 리누스 토르발즈는 자유 소프트웨어를 지향했고 자신의 소프트웨어로 누군가 이익을 취하는 것을 막고 싶었기 때문에 GNL 라이선스를 적용했다. 

 

오픈소스 시대의 시작

리처드 스톨만과 같은 자유 소프트웨어 운동가와 리눅스의 무료 배포 덕분에 자유 소프트웨어 철학과 개발 방식은 널리 널리 퍼지게 된다. 그러다 자유 소프트웨어에 대한 철학이 담긴 "성당과 시장"이라는 책이 발표되고 많은 개발자와 기업이 큰 영감을 받으며 자유 소프트웨어에 동참하기 시작한다. 가장 먼저 행동을 보인 기업은 넷스케이프다. 넷스케이프 개발자들은 소스 코드를 공개하고 누구나 개발에 참여할 수 있는 프로젝트를 진행했다. 이렇게 누구나 참여할 수 있는 개발 방식을 시장에 빗대어 표현하는데, 이는 완공하기 전까지 공개하지 않고 폐쇄적으로 지어지는 성당 건축 방식과 대비된다. 시장은 왁자지껄하고 누구나 발을 디딜 수 있고 공개적이기 때문이다. 

 

 

보는 눈이 충분하게 많으면, 찾지 못할 버그는 없다.
-리누스의 법칙-

 

이 방식의 요점은 한 명의 천재 개발자보다 다수의 개발자가 버그를 찾고 해결하는 것이 훨씬 빠르고 효율적이라는 것이다. 이후 많은 기업에서 이런 개발 방식을 채용했고 빠른 성장을 이루었다. 그리고 이 시기에는 자유 소프트웨어를 오픈 소스라고 부르기 시작했는데 자유 소프트웨어의 아버지인 리처드 스톨만은 이를 거부했다고 한다. 오픈 소스라는 단어가 마음에 안 들었던 모양이다. 이에 대한 이야기는 길어지니 생략하겠다.

 

안티 오픈소스

마이크로소프(MS)는 대표적인 안티 오픈 소스 기업이다. MS 창업자 빌 게이츠"소프트웨어를 만드느라 애쓴 사람들에게 보상을 주지 않으면 도둑질이다"라고 표현했으며, 2대 CEO 스티브 발버"리눅스는 암과 같다"라고 독설을 날리기도 했다. 실제로 MS는 리눅스를 매장시킬 프로젝트를 진행하기도 했다. 이는 성당과 시장의 저자 에릭 레이먼드에 의해 공개된 MS사 기밀 문서인 "할로윈 문서"에서 드러났다. 특정 운영체제가 window를 망가뜨린다는 가짜 뉴스를 퍼뜨려 사용자에게 Fear(공포), Uncertainty(불확실성), doubt(의혹) 심는다는 FUD 전략 외에도 다양한 계획이 담겨있었다. (할로윈 문서 내용이 담긴 사이트가 있었는데 도저히 못 찾겠다 ㅠ)

 

하지만 현재의 마이크로소프트 CEO는 리눅스를 사랑한다고까지 말하며 리눅스를 여러 프로젝트에 많이 사용한다고 한다. 이는 MS의 매출 구조가 과거와는 달라졌기 때문이라는 평가가 있다. 더 이상 MS는 window 운영체제로 돈을 버는 기업이 아니기 때문인데, 현재 가장 큰 매출을 올리는 분야는 azure와 office라고 한다. 그리고 현재는 오픈 소스에 많은 기여를 하고 있다.

 

현대의 오픈소스

구글, 페이스북, 레드햇, 넷플릭스, 에어비앤비 등 오픈소스를 지향하는 기업들은 빠른 성장을 이뤘다. 특히 구글 오픈소스에 꾸준히 기여하고 있다. 오픈소스 기여도는 opensourceindex.io 해당 사이트에서 확인할 수 있다. 

 

오픈소스는 혁명일까? 개인적인 생각

여러 책과 블로그, 논문, 만화, 백과를 찾아보며 오픈소스에 대해 찾아봤다. 내가 생각하기에 오픈소스는 단순히 소스코드와 기술을 공유는 것에 그치지 않는 것 같다. 오픈소스는 스타트업 황금 시기에 실리콘 밸리에 수많은 스타트업을 생산했고 덕분에 구글과 페이스북 같은 공룡기업이 탄생했다. 이런 성공한 스타트업에서 채용하는 방법론이나 프로세스는 오픈소스의 철학과 매우 닮아있다. 팀원들 간 지식수준이 피라미드처럼 계층구조가 되지 않도록 누구에게나 회사의 비전과 프로젝트를 공유하며, 다수가 협력하여 빠른 실험과 빠른 실패 빠른 도전의 순환을 반복한다. 오픈소스의 철학도 이와 같다. 오픈소스를 통해 공개적이며 수평 된 구조를 만들며, 여러 명이 참여하여 다방면으로 실험하고 수정과 디벨롭을 반복하며 프로젝트를 완수한다. 결론적으로 현대 IT 업계의 발전은 오픈소스가 근간이 되지 않나 싶은 생각이다. 

 

그 외에도 오픈소스를 지향하는 기업이 돈을 버는 방법이나 형태에 대한 이야기, 오픈소스에 기여하는 사람들의 심리, 리누스 토르발즈 이야기 등 못다 푼 이야기가 많다.

 

얼마 전 직장인 대상으로 오픈소스 주제로 발표할 기회가 있었는데, 그때 받은 질문이 기억에 남는다.

 

"오픈소스에 기여할 의향이 있으신지, 있다면 어떤 프로젝트로 기여하고 싶은지?"

 

질문을 받았을 때 "감히 내가 오픈소스에 기여를?"라는 생각을 속으로 했다. 오픈소스를 공유하는 것은 뛰어난 개발자만 한다는 생각이 은연중에 깔려 오픈소스에 기여할 생각을 안 해봤다. 곰곰이 생각하다 MUI나 AntDesign과 같은 곳에서 무료 UI나 이모티콘을 사용할 수 있는데, 나도 이런 UI 소스를 만들어 오픈소스로 제공해 보고 싶다는 생각이 들었다. 그리고 "해야 할 프로젝트" 리스트에만 담아뒀다.

 

 

참고 자료

1. 성당과 시장 - 1999, 에릭 레이먼드 

2. 오픈 소스 혁명의 목소리 vol 1 - 2013, 에릭 레이먼드 외 다수

3. 만화로 나누는 자유/오픈소스 소프트웨어 이야기 - joone.net/2018/01/14

4. 4차 산업혁명의 숨은 원동력, 오픈소스 현황과 시사점 - 최성호

5. 오픈소스 개발 커뮤니티 참여자들의 지속적 지식기여 의도에 관한 연구 - 주진오, 황경태