An Open Project, An Open Source 그리고 Open a Source

김정태의 이미지

최근에 방준영님이 제안하신 오픈프로젝트를 보고, 오픈프로젝트란 무엇일까, 생각을 해보게 되었습니다. 그 생각에서 시작한 저의 생각들을 남기고자 합니다.

프로젝트를 진행할 때, 혼자서도 할 수 있고 큰 프로젝트의 경우 사람을 모아서 공동작업을 하기도 합니다. 후자의 경우를 보았을 때, 사람이 모이는 경우는 외부 압력에 의한 강제적인 팀 구성이 (회사내 같은) 있을 수 있겠고, 아니면 홍보를 통해 사람을 끌어모을 수도 있습니다. 여기서 후자의 경우 사람을 끌어들일 때, 대중을 상대로 모으느냐 아니면 특정 인물을 불러들이느냐에 따라 An Open Project이냐 그렇지 않느냐가 결정되어 진다고 생각합니다. 다시 정리를 하면 An Open Project는 다수의 사람, 스스로의 참여의지, 대중에 대한 열린 기회제공이라는 3가지를 특징을 가지고 있다고 생각합니다.

1. 지금부터는 컴퓨터 프로그램에 관련한 An Open Project에 대해서만 얘기하도록 하겠습니다.
2. 영어 표현에서 관사 an/a을 넣는 것은 하나라는 의미보다는 품사를 밝히기 위해서 구분해서 썼습니다.
3. 대중이라는 의미는 논란의 소지가 있지만, 특정인이 아닌 그리고 때론 익명성을 가질 수 있는 일반 사람들을 지칭하는 것으로 간단히 생각하겠습니다.

An Open Project를 할 때, 다수의 사람이 프로젝트에 참여하기 위해 프로그램 소스를 공유하게 됩니다. 그리고 그 대상이 대중이기 때문에 대부분의 경우 공유(A Shared Source)에서 공개(An Open Source)로 바꾸어 하게됩니다. 참여하겠다는 사람들에게만 소스를 주어도 An Open Project라고 생각할 수 있지만, 대개는 관리의 어려움과 보다 많은 참여자를 끌어들이기 위해 맛배기식으로 공개를 한다고 생각합니다. 따라서 An Open Project라고 해서 반드시 An Open Source이어야 하는 것은 아니라는 점을 말하고 싶습니다.

An Open Project의 범위면에서, 전체 Project를 공개할 수도 있고 그 가운데 일부분만을 공개해도 위의 3가지만 만족하면 가능하리라 생각합니다. 잘 아시다시피 apache나 netscape, mysql, perl 등 많은 프로젝트들이 전체를 공개하고 있습니다. 최근에 MS에서 windows의 일부 코드를 공개해서 개발/개선을 유도한다고 하는데 이것도 제 생각에는 위의 3가지를 만족한다고 생각합니다. 소프트웨어 기업의 입장에서 프로그램이 지적 재산인 만큼, 전체를 공개하는 것은 상당한 모험이 아닐 수 없을 것입니다. 그런 면에서 MS의 일부분 공개와 같이 점진적으로 확장해 나가면서 자신들의 이익과 공동의 이익이 상호이익이 가능한 선으로 맞쳐가는 것이 저는 옳은 모습이라고 생각합니다. 우리나라 기업에서도 조건이 된다면, 완전 공개보다는 일부 코드에 대한 공개에서 시작해 자신들이 An Open Project에 대한 경험을 충분히 쌓은 다음에 점차 공개 범위를 넓혀가는 것이 좋지 않을까 생각합니다.

여기서 화제를 약간 돌리도록 하겠습니다. 지금부터는, 민감한 부분이 될 수 있는데 GNU 얘기를 꺼낼까 합니다. 제가 어디서 본 일화에, (아마 R.H.Stallman일 겁니다.) 대학에 다닐 때 프린터 드라이브에 자주 고장이 났는데, 매번 공급업체에 A/S를 부탁해야 하고 옛 모델에 대한 기능의 개선도 없고 제 기능을 다 못 쓰는 것 같아 안타까웠다고 합니다. 그래서 생각한 것이, 만약 프린터 드라이브의 소스가 공개되어 있다면 자신들이 직접 고쳐서 쓰면 좋겠다고 생각했었답니다. 지금 정확히 제가 어디서 이 일화를 들었는지가 잘 생각이 안나지만, 대략 GNU가 탄생했을 당시에 그런 생각에 공감한 사람들이 많지 않았을까 생각합니다. 그리고 그런 생각이 저는 GNU의 탄생에 밑바탕이 아니었을까 생각합니다.

GNU는 An Open Project의 대명사이자, 오픈 소스의 대명사이기도 합니다. 여기서 말한 오픈 소스는 위에서 언급한 An Open Source의 의미 이외에 Open a Source의 의미가 강하게 포함되어 생각합니다. 말 그대로 소스를 공개하라는 말이죠. 이 점에서 BSD쪽의 라이센스와 GNU 라이센스가 가장 차이가 난다고 봅니다. 그리고 이런 GNU의 특징은 위의 일화와 매우 관계가 있다고 여겨집니다. (어떤 면에서는 Open a Soruce는 An Open Project에 속하지만, 그 성격면에서 이단아 혹은 심하게는 정반대의 것이라 생각됩니다. 물론 현실에서 이 둘을 완전히 구분하기는 애매한 면이 없지 않습니다.)

같은 An Open Project이지만, BSD쪽으로 대표되는 An Open Source와 GNU쪽으로 대표되는 Open a Source(An Open Source도 포함되어 있지만, 구분을 좀 더 뚜렷하게 하기 위해 여기서는 이 부분의 의미를 줄이도록 하겠습니다.)는 약간 성격면에서 차이가 납니다. An Open Source쪽이 일반 대중에게 먼저 자신을 공개하고 참여를 바라는 수동적성격이 있다고 보면, Open a Source는 능동적 혹은 강제적 성격을 뛰고 있습니다. 그리고 An Open Source쪽은 자신들의 시스템(프로젝트가 잘 진행되도록 하는 어떤 제도,규칙)을 개발하고 이에 의지해서 꾸준히 진행되고 진보되려고 하는 반면, Open a Source는 GNU 라이센스를 통해 강력하게 법적으로 그 세력을 유지,확장해 나가고 있다고 봅니다.

어쩌면 이 둘을 비교하는 것 자체가 무리인지 모르겠습니다. An Open Project나 An Open Source가 한정적인 프로젝트나 소규모 단위를 두고 대상으로 하는 반면, Open a Source는 전반적인 체제 변화를 꾀하는 매우 혁명적인 그리고 매우 정치적, 철학적인 의미를 강하게 내포하고 있기 때문입니다. 구체적으로 알아 보지는 않았지만, Open a Source가 미국의 히피문화 또는 그 계열에서 발생되었거나 또는 영향을 받았고, 거슬러 올라가 미국의 히피문화가 자유라는 모토를 멀게는 프랑스 혁명, 가깝게는 미국의 독립정신 혹은 20세기에 강하게 검증받은 마르크스 주의쪽의 흐름이 알게 모르게 스며든 그런 운동(?)이 아닌가 생각합니다.

좀 무거운 얘기를 했는데, 다시 알기 쉬운 가까운 얘기를 하도록 하겠습니다. 위에서도 잠깐 언급했듯이, An Open Source인 An Open Project가 계속 이어나가기 위해서 시스템(위에서 설명한 개념의)에 대한 의존이 강하다고 생각합니다. 한 사람이 하다가 지치면 그 프로젝트에 대한 개발을 그만 두고 source를 인터넷상에 공개하는 것으로 충분합니다. 그러면 다른 사람이 그것을 보고 흥미가 생기면 자신이 그 다음부터 개선해 나가고 다시 다른 사람에게 넘겨주고 하는 식으로 계속 이어나가면 됩니다. 한 프로젝트가 잠시 중단되었다가 몇달 혹은 몇년 후에 다시 재기되더라도 큰 문제는 없습니다. 다만 프로젝트에 참여하고 있는 사람의 입장에서는 보다 지속적으로 이루어졌으면 하는 바램이고 그러기 위해 (인간적인 완충 작용으로) 참여자의 인력에 따른 일배분이나 방법등을 상황에 따라 프로젝트에 따라 조금씩 조정해 나갑니다.

두 번째인 Open a Source의 경우에는 앞서와 같은 전술(시스템 의존)이 아닌 전략을 사용합니다. 아무런 행동도 없이 기업 혹은 단체에 소스를 공개하라고 주장한다면, 그건 그 배경 사상,철학이 무엇이든지간에 전혀 설득력이 없습니다. 이건 GNU에서도 잘 알겁니다. 그렇지 않기 위해 그들은 소프트웨어의 핵심,기반 부분부터 차례로 GNU 라이센스로 만들어갔습니다. 여기에 충분한 실력을 가진 이들이 참여했기 때문에 그들의 프로그램이 서서히 다른 사용자들에게 인정을 받기 시작하고 채택되기 시작했습니다. 여기에서 저는 다른 사람들이 그들의 프로그램을 받아들인 이유로 그 배경 철학이 주 목적이 되어서가 아니라 그들의 괜찮은 프로그램 때문이었다는 점을 분명히 하고 싶습니다. 나쁜 비유를 쓰면, 사냥을 위해 놓은 먹기 좋은 덫을 사냥감이 관심을 가지고 접근하여 물은 것입니다. GNU 라이센스에 바탕을 둔 프로그램을 사용하고 때로는 그들이 만든 소스를 자신들의 프로그램에 이식하면서, 마치 바이러스처럼 GNU 라이센스를 가진 프로그램이 전파되었다고 봅니다. 이것이 가능했던 것은 주위에 퍼트릴 수 있는 아주 강력한 원동력, 핵심이 존재했기 때문에 가능했다고 생각합니다. (용어나 비유가 약간의 불쾌감을 주었다면, 양해해 주시면 감사하겠습니다.)

정리하겠습니다. 제 글이 논설문이 아니기에 이런 이런 것이 필요하다는 식의 주장은 하지 않겠습니다. 다만 제가 5년 가까이 눈동냥, 귀동냥으로 보고 들은 것이 이렇고 저의 생각은 이렇다는 것을 알리고자 했습니다. 왜냐하면, 많은 분들이 오픈 프로젝트, 오픈 소스를 외치고 참여하시고 계시지만, 그 밑바탕에 있는 왜? 라는 질문을 던지는 분들을 많이 보지 못했기 때문입니다. 분명히 오픈 프로젝트니 오픈 소스니하는 말과 정신은 외국에서 생겨났고, 우리는 그것을 수입해서 이리저리 우리 생활에 적용하려고 노력해왔습니다. 하지만 왜 이런 것들이 생겨났는지, 이게 무엇을 뜻하는지 생각해 보지 않고 마냥 따라한다면, 또 다른 새로운 것이 들어올 때 금방 잊어버릴 것이라 생각하기 때문입니다. 잠시라도 이게 뭔가 진지하게 얘기를 해 보고 생각을 해 보면 우리에게 남는 무언가가 생기지 않을까 해서 이 글을 올립니다.

minsu의 이미지

open a source 와 an open source 라...

사실 그렇게 따지는건 말 장난같습니다. -_-

전 서구에서 먼저 시작되엇지만 그거야 산업화와 자연과학의 발달이 그쪽이 더 빨랏으니 컴퓨터 먼저 만들어 그런거고 원래 시작을 따지자면 유교와 불교의 동양적 사상이 그 시초라 봅니다.

즉, 바탕이 되는 것은 불교에서의 자비라던가 그런것이 아닐까 하네요.

자신이 갖고 잇는걸 남에게 베풀고 남을 위해 희생하고 금전적 욕심은 버리며 아무것도 소유안하고 속세를 등지며 오로지 도(해킹) :?: 를 딱으며 살아가는것이 컴퓨터 해커나 스님이나 사실 똑같지 않습니까?

그러니 뭐 사실 오픈 소스로 사업을 한다느니 돈번다는 자체가 말이 안되는거엿고.. 결국 지금도 많은 업체가 실패로 끝나서 망했고 힘들어하고 있지요.

역시나 오픈소스는 스님들이 수행하듯 오로지 그자체에 목적을 둬야지 다른건 바라면 안되는것 같습니다. 그래서 좀 황당한 생각같지만 스님들이 컴퓨터 배우면 오픈 소스 프로젝을 이끌 해커하기 딱 좋다는 의견입니다. 산속 절에서 컴퓨터 키보드만 두드리며 코딩을.. :P

그리고 뭐 실제로도 스톨만씨가 동양적 사상을 많이 갖고 있지요

스톨만씨의 원래 종교(지금은 항상 얘기하듯 GNU교주라지만)는 불교가 아닐까 하는데 정확히 아시는분 계시는지?

leanblue의 이미지

http://www.hanbitbook.co.kr/u4-04.htm?num=60

한 번 읽어봄직한 글입니다.

그리고 스톨만 아저씨 ^^; 얘기는 잘못알고 계시네요.

제록스의 프린터였고,

원래는 소스를 가져다가 고쳤지만, 나중에 제록스에서 제재를 가해서

더이상의 기능개선을 할 수 없게 된겁니다.

거기서 문제의식을 가지게 된 것이구요.

비싼돈 주고 사서 몇페이지 읽다만 Free as in Freedom 에서 본거니 맞을껍니다.

제가 해석을 재대로 한거라면 ㅡ.ㅡ

그냥 자기가 하고 싶은 것, 필요한 것을 하면 되는거 아닐까요?

그러기 위해선 실력을 길러야겠지만..

BSD인지 GNU인지는 그리 중요치 않은것 같습니다.

즐거움을 위해 하던지, 아니면 목마른 사람이 우물 파는거죠.

LeanBlue in CyberWorld!!!

김정태의 이미지

우선, 관심을 가져주시고 읽어 주신 분들(100여분)과 답글을 올려주신 minsu님 leanblue님께 감사 드립니다.

제가 처음에 글을 올릴 때, 약간 두서없이 본 내용만 달랑 올려놓아서 (그것도 저의 생각이 대부분인) 많은 분들이 조금 당황(?) 했을 거라고 생각합니다. 게중에는 제 글 내용에 대해 공감하시거나 반발심을 느끼시는 분들도 계실꺼구요. 본래 제가 글을 쓸 때의 취지중에 하나는, GNU에서는 Open a Source을 주장하고 있는 것이며, 이를 일반 사람들이 An Open Source로 잘못 혹은 혼돈하고 있는 가능성은 없지를 않나 생각해서 이 차이에 대한 분명한 인식이 필요하다는 것을 설명/주장하고자 했던 것입니다.

약간 라이센스쪽과 관련이 있는 문제라고 여겨지는데, 오픈 프로젝트/오픈 소스라고 해서 단순히 GNU쪽의 라이센스만 있는 것이 아니라 다양한 라이센스가 존재한다는 것과 왜 이렇게 다른 라이센스가 같은 오픈 프로젝트에 존재하는가 생각해 보는 것도 괜찮을 것 같아서 얘기를 꺼냈습니다. (그렇다고 GNU쪽의 라이센스가 나쁘다, 그러니 쓰지 말라라는 주장하는 것은 아닙니다. 그런 주장은 전혀 근거도 설득도 없는 주장이며, 개개인에 대해 그런 강요를 하는 것 자체가 잘못임을 잘 알고 있습니다. ) 어떤 동기(개인적 흥미 등)로 오픈 프로젝트에 참가하거나 시작할 때에, 자유로운 참가와 자유로운 상호 교류, 그리고 누구에게나 자신이 만들고 싶은 것을 마음대로 쓰고자 하는 순수한 의도라면 구지 강한 제한을 가진 GNU 라이센스 말고도 더 자유롭게 사람들에게 호응받는 라이센스(Apache나 BSD 라이센스)도 있다는 것을 알리고 싶었습니다.

좀 더 넓은 의미에서 얘기를 나눌 수 있기를 바랬는데, 오히려 본 의도와는 달리 제 얘기가 An Open Source와 Open a Source에 대한 얘기로만 흘러가는 것 같아 조금 안타깝습니다.

ps. 제 글에 답글을 달아 주신 두 분의 글에 간다하게 저의 답글을 달고자 합니다. 우선 minsu님께서 말씀하신 말 장난이라는 표현을 듣고 나니 안타깝습니다. 개인적으로 이 둘의 차이가 있다고 생각하고 그걸 열심히 글로 표현하려고 했는데 minsu님과 여러 다른분들에게 제대로 전달이 되지 않은 것 같아, 저의 부족한 글 솜씨가 미워지네요. 그리고 minsu님께서 오픈 프로젝트/오픈 소스의 운동이 길게는 동양의 사상에서 왔다고 그러시는데, 글쎄요, 저로서는 그렇게까지 연관이 있을까 잘 납득이 가질 않습니다. 단순이 이타주의나 이상적인 공동체를 뜻하시는 거라면 그건 고대의 동서양 어디서나 존재했던 보편적인 사상으로 알고 있는데요. 가능하시다면 좀 더 자세히 왜 그런 생각을 하셨는지 듣고 싶군요.

그리고 leanblue께서 가르쳐 주신 URL에 가서 글 잘 읽었습니다. 그런 분이 있다는 것이 조금 뿌듯한 감정이 들기도 하는군요. 저도 이런 모습이 나쁘게는 보지 않습니다. 박응주님과의 대화에서 재미라는 부분이 참 쉬운 의미이면서도 때론 알 수 없는 의미로 다가왔습니다. 하여튼, 좀 더 차근히 이 대화를 생각해 보도로고 하겠습니다. 그리고 오늘 영풍문고에 가서 free as in freedom 책을 찾아보려고 했는데, 결국 원서랑 번역본 어는 것도 찾질 못했습니다. 따라서 그 부분에 대해 눈으로 확인을 못했지만, 아마 저의 희미한 기역보다는 leanblue님이 기역하시는 일화가 더 정확할 것이라 생각합니다. ^^. 가르쳐 주셔서 감사합니다. 저의 윗글을 수정할 수 있다면 그 부분을 고치고 싶군요.

zzaratra의 이미지

참 재밌는 주제이고 생각해 볼 문제라고 생각 하네요...

제가 리눅스를 첨 접할때.. 제일 먼저 읽은 것이 GNU 선언문이 었습니다.. 그 사상이니 생각이 너무나 멋있기 때문에... 이렇게 리눅스를 배우게 되었구요...

꼭 종교의 원리주의와 세속주의의 차이를 보는 느낌이 드는군요...
GNU의 자유 정신이냐... just for fun 이냐....

open a source 는 약간 세속적인 느낌이 강하고.. 그 바탕에는 순수한 just for fun 이 깔려 있는것 같구요... An Open Source 는 소프트웨어에서의 자유라는 정신을 많이 강조하구 있는것 같구요....

전 스톨먼 아저씨에 매료 되어 이쪽에 관심을 가지게 되었고.. 지금도 이 정신에는 변함이 없구요... 그러나 배우면 배울수록 fun 이 증가하게 되어 이것이 이생활을 이끌어 주는 역활을 하는것 같네요...

------------------------

세상은 움직이는 것은 단순히 재미나..관심에 의해 바뀌기도 하지만.. 그것의 뼈대를 이루고.. 유지 시킬수 있는 것은 철학이라고 생각 합니다...

그리고 GNU 철학을 유지 시키는 힘은 GPL 라이 센스라고 생각하구요...

gang의 이미지

open source라는 명칭에서는 그러한 표현이 사용된 배경으로 인하여 상업적인 냄새가 다소 느껴지기도 합니다. 그러나, open과 free의 가장 큰 차이점은 free software 제작자의 동기이겠죠.
open의 경우 'just for fun'이건 상업적인 이유에서이건 제작자의 동기는 중요하지 않습니다. 하지만 free의 경우 제작자의 사회적인 동기가 들어있습니다.

저는 재미로 open 소스하겠다는 분들에게 뭐라 딴지 걸 이유는 없습니다만, 자신이 만든 코드를 다른 누군가가 사용하게 된다면 그것은 이미 사회적인 행위이며, 따라서 자신의 행위와 사회의 관계에 대하여 한번 더 생각해보라고 권고해드리고 싶기는 합니다.

저는 open source보다 free software가 공공의 이익에 부합된다고 생각하며, 정부와 같은 공공기관의 개입도 필요하다고 생각합니다. (그런데, 정부가 워낙 공공의 이익에 반하는 정책들을 많이 수행하여 온 터라, 많은 이들이 정부의 개입을 껄꺼러워하기도 하는 듯..)

그리고, 교통신호를 지키듯이 자기 나름대로의 생각을 가지고 행동한다면, free software를 하기 위하여 굳이 스님들처럼 수양을 닦을 필요까지는 없어 보입니다.