Skip to content
Jacob's second brain 탐색
어느 개발자의 인문학 · 8 / 8화

open source - 잠그는 대신, 오히려 활짝 열어두는 것

7 min read

값진 것일수록 숨기는 것이 세상의 상식입니다. 코카콜라는 그 제조법을 백 년 넘게 비밀에 부쳐왔고, 어느 맛집의 비법 양념은 며느리에게도 알려주지 않는다고들 합니다. 기업의 핵심 기술은 ‘영업 비밀’이라는 이름으로 금고에 보관되고, 경쟁사가 엿볼세라 겹겹의 보안으로 둘러싸입니다. 무언가가 귀할수록 꽁꽁 감추는 것. 우리는 그것을 당연하게 여깁니다.

그런데 소프트웨어의 세계에는, 이 상식을 정면으로 거스르는 거대한 흐름이 있습니다.

세계 최대 기업도 코드를 공개하는 문화

여러분의 손 안에 있는 스마트폰을 떠올려보십시오. 만약 그것이 안드로이드 폰이라면, 그 운영체제의 속살을 만든 핵심 코드는 사실 누구나 들여다볼 수 있도록 인터넷에 공개되어 있습니다. 구글이 만든 것인데도 그렇습니다. 구글은 아예 안드로이드에 기여하는 방법을 안내하는 공식 페이지를 한국어로도 올려두었습니다. 누구든 들어와 코드를 고치고 보태는 길을, 만든 회사가 직접 닦아둔 셈입니다. 그뿐이 아닙니다. 우리가 매일 접속하는 웹사이트들을 떠받치는 기반 기술, 인공지능을 학습시키는 핵심 도구들, 심지어 마이크로소프트나 메타 같은 거대 기업의 적지 않은 기술이, 이렇게 통째로 열려 있습니다. 누구나 그 안을 읽고, 베끼고, 고칠 수 있도록 말입니다. 개발자들은 이렇게 공개된 소프트웨어를 ‘오픈소스(open source)‘라 부릅니다1.

더 놀라운 지점은 따로 있습니다. 그저 구경만 시켜주는 것이 아니라는 점입니다. 한국에 사는 평범한 개발자가, 구글이 공개한 안드로이드 코드에서 어떤 문제를 발견하고는 직접 고쳐 “이렇게 바꾸면 어떨까요?” 하고 제안할 수 있습니다. 그리고 그 제안이 타당하다면, 구글은 그것을 실제로 받아들여 전 세계 수십억 대의 기기에 반영합니다. 그 사람은 구글의 직원이 아닙니다. 면접을 본 적도, 월급을 받은 적도 없습니다. 그저 열려 있는 문으로 걸어 들어가, 모두의 것을 함께 고친 것입니다. 우리는 이런 사람을 그 프로젝트의 ‘기여자(contributor)‘라 부릅니다.2

상식대로라면 이것은 기이한 일입니다. 세계에서 가장 값진 기술을 가진 기업들이, 그것을 금고에 넣어 잠그는 대신 활짝 열어 “마음껏 보고 고치라”고 내놓는 것이니까요. 대체 왜 그러는 걸까요.

나누면 줄지 않고 오히려 불어난다

답은 의외로 단순합니다. 숨겨서 혼자 갖는 것보다, 열어서 모두가 함께 고칠 때 더 좋아지기 때문입니다.

아무리 뛰어난 기업이라도, 그 안의 개발자는 수천 명입니다. 그러나 그 코드를 세상에 열어두면, 전 세계 수십만 명의 개발자가 그것을 들여다보게 됩니다. 누군가는 미처 발견하지 못한 허점을 찾아내고, 또 누군가는 더 나은 방법을 들고 옵니다. 자기 나라의 환경에 맞게 다듬어 내놓는 사람도 있습니다. 닫아두었다면 결코 모이지 않았을 무수한 눈과 손이, 열어둔 덕분에 그 위로 모여듭니다. 그렇게 오픈소스는 닫힌 소프트웨어가 결코 따라올 수 없는 속도로 단단해지고 풍부해집니다.

이것은 직관에 어긋나는 이야기입니다. 우리는 무언가를 내주면 그만큼 잃는다고 여깁니다. 그러나 지식과 기술의 세계에서는 종종 그 반대가 참입니다. 움켜쥐고 있으면 그것은 딱 내가 가진 크기에 머물지만, 열어서 내놓으면 모두의 손을 거치며 내가 혼자서는 결코 이르지 못했을 크기로 자라납니다. 돈은 나눠주면 내 몫이 줄지만, 기술은 나눠줄수록 오히려 배가 됩니다.

대가 없이 내주는데도 굴러가는 경제

여기서 한 가지 의문이 남습니다. 그 수십만 명의 개발자들은, 대체 무슨 대가를 받고 남의 프로젝트를 고쳐주는 걸까요. 대부분은 한 푼도 받지 않습니다.

시장은 보통 “주면 받는다”는 교환으로 돌아갑니다. 값을 치러야 물건을 얻고, 일을 해야 돈을 받습니다. 그런데 오픈소스는 이 원리로 설명되지 않습니다. 사람들은 대가 없이 먼저 내놓습니다. 자기 시간을 들여 고친 것을, 얼굴도 모르는 이들이 거저 쓰라고 공개합니다. 경제학자들은 이런 방식을 ‘선물의 경제’라 부르기도 합니다. 받기 위해 주는 것이 아니라, 그냥 주는데도 거대한 협력이 지탱되는 세계 말입니다.

다만 이것을 순수한 이타심이나 숭고한 헌신으로만 그리면, 진실의 절반을 놓치게 됩니다. 이 선물의 경제에도 분명한 보상이 돌고 있기 때문입니다. 다만 그 보상이 돈이 아닐 뿐입니다.

흥미로운 것은, 이 흐름의 뿌리에서 강조된 말이 ‘공짜’가 아니라 ‘자유’였다는 점입니다. 1980년대에 리처드 스톨먼이라는 개발자가 ‘자유 소프트웨어(free software)‘를 주창했는데, 영어 ‘free’에는 ‘공짜’와 ‘자유’라는 두 뜻이 함께 담겨 있습니다. 그는 누누이 강조했습니다. 자신이 말하는 free는 ‘공짜 맥주(free beer)‘의 free가 아니라 ‘언론의 자유(free speech)‘의 free라고요.3 값을 매기지 않는다는 뜻이 아니라, 사용자가 그 코드를 들여다보고 고치고 나눌 자유를 가진다는 뜻이었습니다. 무언가를 연다는 것의 핵심은 공짜로 준다는 데 있지 않았습니다. 그것을 받은 사람이 다시 자유롭게 다룰 수 있게 한다는 데 있었습니다.

오픈소스에 기여하면, 그 흔적은 또렷이 기록으로 남습니다. 누가 무엇을 고쳤는지가 모두에게 공개되고 영원히 남습니다. 그래서 이름난 프로젝트의 기여자가 된다는 것은 결코 익명의 봉사가 아니라, 오히려 자랑스러운 훈장입니다. 개발자들은 자신의 기여 이력을 이력서에 당당히 적고, 그것으로 실력을 증명합니다. 금전적 보상은 없을지언정, 평판과 자부심, 그리고 동료들의 인정이라는 또 다른 화폐가 이 세계를 돌립니다. 대가 없이 내주지만 이름은 남는 것. 그것이 이 너그러운 경제가 실제로 지탱되는 방식입니다.

내가 불편해서 고친 것이, 모두의 것이 되다

그렇다면 그 기여는 어떻게 시작될까요. 흔히 상상하는 것처럼 “인류를 위해 헌신하겠다”는 거창한 결심에서 출발하는 경우는 드뭅니다. 시작은 훨씬 소박합니다.

대개는 이렇습니다. 어떤 개발자가 오픈소스 도구를 쓰다가, 불편한 점이나 작은 오류를 발견합니다. 처음엔 자기가 쓰려고 그 부분을 슬쩍 고칩니다. 그러다 문득 생각합니다. “이거, 나만 불편했을 리 없잖아? 기왕 고친 거, 다른 사람들도 쓰게 내놓을까.” 동기가 꼭 그것만은 아닙니다. 수많은 사람이 쓰는 프로젝트에 내 손길 하나를 보탠다는 뿌듯함에 끌리는 사람도 있고, 까다로운 문제를 끝내 풀어낸 솜씨를 슬쩍 내보이고 싶은 마음도 있습니다. 이유가 무엇이든, 자기 가려움을 긁으려던—혹은 자기 솜씨를 시험해보려던—작은 손길이, 어느새 모두의 가려움을 긁어주는 공동의 자산이 됩니다. 이타심과 이기심의 경계가 흐려지는 지점입니다.

이 대목이야말로 오픈소스의 가장 정직하고 아름다운 지점입니다. 거대한 선의가 아니라 작은 불편에서 출발한다는 것, 그런데 그 사소한 시작이 열린 문을 통해 내놓아지는 순간 누군가에게는 꼭 필요했던 선물이 된다는 것. 그리고 그 선물을 주고받음에 세속적인 대가는 없다는 것. 그렇게 수많은 사람의 작은 가려움들이, 각자의 이름표를 단 채로 차곡차곡 쌓여, 우리가 매일 딛고 서는 거대한 디지털 세계의 바닥을 이룹니다.

열어둘 때 더 커지는 것들

오픈소스가 우리에게 건네는 이야기는, 코드의 세계를 넘어섭니다.

우리는 본능적으로 움켜쥡니다. 어렵게 얻은 지식이나 좋은 방법을 나만 알고 싶어 합니다. 내놓으면 손해 볼 것 같고, 내 우위가 사라질 것 같기 때문입니다. 그러나 오픈소스가 보여주는 것은 다릅니다. 어떤 것들은 움켜쥘수록 그 작은 크기에 갇히고, 열어 내놓을수록 모두의 손을 거치며 자라납니다. 그리고 내놓는다고 내 몫이 사라지는 것도 아닙니다. 빵과 달리, 내가 연 지식과 선의에는 내 이름이 남고, 그 이름은 평판이 되어 돌아옵니다.

오픈소스가 슬며시 흔들어놓는 것은, 가치가 소유에서 나온다는 우리의 오랜 믿음입니다. 우리는 무언가의 가치를 얼마나 움켜쥐었는가로 재곤 합니다. 그러나 잠가둔 지식은 그 금고 안에서 자라지 않습니다. 어떤 것들의 가치는 가진 양이 아니라, 얼마나 흐르고 쓰이느냐에서 나옵니다. 흐르지 않는 지식은 고이고, 흐르는 지식은 불어납니다.

그리고 그 흐름은, 우리가 흔히 믿는 것만큼 거창한 마음을 요구하지 않습니다. 우리는 ‘남을 돕는 일’과 ‘나를 위하는 일’을 곧잘 반대편에 세워두지만, 오픈소스의 세계에서 그 둘의 경계는 흐릿합니다. 내 불편을 긁으려다 누군가를 돕고, 내 솜씨를 내보이려다 모두의 것을 짓습니다. 성인 같은 이타심이 아니어도, 사람들은 자기를 위하는 바로 그 손길로 서로에게 좋은 것을 남깁니다. 우리가 매일 딛고 선 디지털 세계의 적지 않은 부분이, 실은 그런 평범한 마음들이 모여 이루어진 것입니다.

물론 오픈소스가 늘 정답인 것은 아닙니다. 세상에는 그 속을 굳게 닫아둔 프로젝트도 많고, 어느 쪽이 더 나은지는 사람마다 생각이 갈립니다. 다만 한 가지는 짚어둘 만합니다. 다른 분야였다면 ‘내 것을 공개한다’는 선택지가 아예 고려조차 되지 않았을 텐데, 개발의 세계에서는 그것이 하나의 자연스러운 길로 자리 잡았다는 것입니다. 어떤 프로젝트가 그 속을 활짝 열어두어도 아무도 그것을 이상하게 여기지 않는, 그런 세계인 것입니다.

다만 우리가 무언가를 본능적으로 움켜쥐려 할 때, 한 번쯤 물어볼 만은 합니다. 이것은 움켜쥐어야 더 커지는 것인가, 아니면 흐르게 둘 때 더 커지는 것인가. 세계에서 가장 값진 기술을 가진 이들이 그것을 금고에 잠그는 대신 열어두기를 택했다는 사실은, 그 물음이 한 번쯤 마주할 만한 것임을 말해줍니다.

Footnotes

  1. ‘source(소스)‘는 소프트웨어의 설계도에 해당하는 원본 코드를 말합니다. 보통은 기업의 핵심 자산이라 비밀에 부치는데, 이 원본을 누구나 볼 수 있게 ‘열어둔다(open)‘고 해서 오픈소스라 부릅니다.

  2. 흥미롭게도 구글의 그 공식 기여 안내 페이지는, 버그를 신고하는 법과 코드를 직접 고쳐 보태는 법을 차근차근 설명한 끝에 이렇게 말합니다. 뭐니 뭐니 해도 안드로이드에 기여하는 가장 좋은 방법은, “사용자들이 사랑하는 멋진 앱을 만드는 것(write cool apps that users love)“이라고요. 세계적인 대기업의 딱딱한 문서가 아니라, 누구나 즐겁게 끼어들어 노는 놀이터의 말투에 가깝습니다.

  3. 사실 ‘오픈소스(open source)‘라는 말은 이보다 나중인 1998년에, ‘free’의 ‘공짜’라는 오해를 피하려고 다른 이들이 따로 만든 용어입니다. 스톨먼 자신은 ‘자유 소프트웨어’와 ‘오픈소스’가 추구하는 철학이 다르다며 둘을 구별합니다. 다만 이 글에서는 일반에 더 익숙한 ‘오픈소스’로 통칭했습니다.

See Also

Graph View

댓글 (0)

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요.