티스토리 뷰

우리가 알고 있는 선에서는 오픈소스는 단순히 소스 코드에 대한 접근만을 의미하는 것은 아니라고 알고 있습니다. 오픈소스로서의 조건을 만족시키기 위해서는 오픈소스 라이센스를 만족 시켜야 하는데, 오픈소스라 붙여진 대부분의 소프트웨어는 단일 소스코드로 구성되거나 오픈 라이센스 규정을 가진 범용 소스들이 통합되 새로운 저작물의 형태로 만들어지는 경우등 다양한 형태로 존재합니다. 

현재까지 일반적으로 우리가 알고 있는 정보에 따르면 오픈소스는 소스코드가 공개되어 있는 소프트웨어를 통칭합니다. 이 오픈소스로 규정 된 소프트웨어를 사용 할 경우 일반적으로는 제약 없이 수정/복제/배포가 가능하다고 소개되고 있는 것이지요. 

이러한 규정에 따라 만들어지고 배포되어지는 대표적인 소프트웨어가 Linux 이며, Linux의 경우 GNU 기반의 소프트웨어나 아파치, 파이어폭스, MySQL, Python.. 등 수많은 오픈 소스 소프트웨어를 리누즈 토발즈가 최초로 만들어 공개한 리눅스의 근간이 되는 커널을 기반으로 만든 Linux OS에 탑제되 배포됩니다. 

오늘은 이 이야기를 좀 해볼까 합니다. 우리가 너무나 익숙한 상황에서 다양한 오픈소스 소프트웨어에 도움을 받고 있지만, 정작 그 오픈소스를 어떻게 활용해야 하고, 어떤 규정에 의해 이용해야 하는지 아직 가이드라인을 못잡고 있는 경우가 많은 것 같습니다. 

그래서 부족한 지식이지만 오늘은 이 이야기를 살짝 꺼내보려고 합니다. 








오픈소스를 지원하는 "오픈 소스 이니셔티브"
오픈소스 사용을 장려하기 위해 만들어진 오픈 소스 이니셔티브(Open Source Initiative, 줄여서 OSI)라는 단체가 있습니다. 
 
이 단체는 1998년 2월에 브루스 페렌스(Bruce Perens)와 에릭 레이먼드가 네스케이프 커뮤니케이션스 코퍼레이션이 대표 제품인 네스케이프 커뮤니케이터에 대한 소스 코드를 출시한 데 자극을 받아 설립되었다고 위키백과에 소개되어 있는데요.

이 단체는 오픈소스 활용과 규정등에 대한 정보를 제공하는 것은 물론 오픈소스 소프트웨어 인증을 지원하면서 본격적인 오픈소스 소프트웨어 운동이 시작되게 됩니다. 중요한 전환점을 맞은 것이고 이 시점을 계기로 상당히 오픈소스 운동이 활성화 되고, 좋은 성과물들을 많이 만들어내게 됬습니다. 

 
오픈소스의 기원은?
 
오픈소스 소프트웨어의 시작은 일반적으로 알려진바에 따르면 1980년대에 시작된 것으로 알려져 있습니다. 하드웨어 부속물로 인식되던 소프트웨어가 점차 하드웨어 산업과 함께 IT 산업을 이끄는 중요한 한 축으로 자리잡게 되면서 지적 재산권과 라이선스 계약에 의해 소프트웨어를 제약하는 움직임이 일어나게 됩니다. 

이런 체제는 소프트웨어와 제조사의 독점 체계에 의해 높은 가격등으로 사용에 제약이 생기고, 소프트웨어 확산에도 어려움을 발생시킵니다. 또, 지식의 부유물인 소프트웨어를 이런 재산권 기준으로 가두어 두는 것은 지식과 산업의 발전을 저해한다는 인식을 가진 사람들이 생기게 되고 이들에 의해 소프트웨어 공유를 주장하는 오픈소스 운동의 시초가 일어나게되는 것이지요. 

이런 운동을 일으킨 것으로 알려진 사람이 바로 리차드 스톨만인데, FSF라는 단체를 설립하고 Free Software 운동을 전개한 것이 오픈소스의 첫 시작이라고 알려져 있습니다. 


리차드 스톨만은 어떤인물일까?
스톨만의 인생을 돌아보면 그가 이 오픈소스의 기여자가 되는데 결정적 계기가 되어준 일이 있는데 그건 바로 해커공동체였다. 1960년대 고등학교에서 처음 개인용 컴퓨터를 접하고 그걸 계기로 IBM 뉴욕 과학센터에서 일하게되고 그가 본격적인 개발자의 길을 들어선 계기가 된다. 

위키백과를 보면 1960년대 고등학교 저학년 시절에 이 IBM 센터 이야기가 맞물려 있고 1971년 하버드 입학했다고 되있는 것을 보면 근 10년간 고등학교 졸업 이후에도 IBM 센터에서 일을 한 것 같다. 

그리고 그의 인생에 중요한 영향일 끼친 해커 공동체는 대학 입학후 MIT 인공지능 실험실에서 해커의 길을 처음으로 밟는다고 되어 있다. 해커 공동체라는 것은 소속감을 가진 단체가 아니라 컴퓨터에 관심있고 해커문화를 사랑하는 사람들의 암묵적인 비자발적 커뮤니티 였던 것 같다. 

그리고 1980년대 상업화의 물결과 본격적인 IT 산업의 발전에 따라 해커 문화권의 수많은 젊은이들이 자유를 사랑하는 해커 정신을 버리고 자유 소프트웨어를 버리고 독점적 소프트웨어로 개발하기 시작하면서 와해되기 시작했다고 한다. 

이때, 같은 길을 걸었던 해커들이 차린 회사가 심볼릭스라는 회사였는데, 1983~1985년 2년간 이 심볼릭의 상업용 소프트웨어에 대항하기 위해 그들이 만든 수준의 프로그램을 혼자서 개발하게 된다. 그들의 독점을 막고 싶었던 것 같다. 

하지만, 당시 이런 해커 문화는 사라지기 시작했고 고유의 해커 정신을 계승한 해커는 그가 유일하다고 인식하고 있었던지 혼자서 계속 대항했고 1985년 GNU 선언문을 발표하게 된다. 

당시 메인프레임등 기업용 솔루션에는 상용 유닉스가 탑재되어 있었는데 그는 이에 대항하기 위해 자유로운 대안을 만들자는 취지의 자신의 의지와 동기를 부여하고 이를 고초로한 비영리 기관인 자유 소프트웨어 재단을 설립한게 오픈 소스의 시초가 된것이다.


 



자유 소프트웨어 운동과 오픈소스 운동의 차이
그의 생각이나 개념에는 동의하면서도 그의 옳곧은 성격 때문인지, 아니면 혼자서 성인 군자처럼 굴어서인지 지지층과 함께 그의 논리를 비판하는 층도 동시에 있었다고 한다. 

그가 주장한 프로그래밍 소스 코드의 공유는 지지하면서도 도덕주의자적 행동과 철학 때문에 반발이 생겨, 자유 소프트웨어 운동의 대안인 오픈 소스 운동이 생겨났다고 이야기를 들어보면 같은 뿌리를 두고 있는 운동이지만 리차드 스톨만과 다른 개발자들 사이의 묵시적 대립이 있었다고 볼 수 있을 것 같다.

리처드 스톨만은 소프트웨어로 돈벌어서는 안된다는 입장에 더 가까웠고 모든 것은 자유롭게 공유 되어야 한다는 주장에 가깝다면, 오픈 소스는 비슷한 입장이지만 공유하고 소스를 오픈하되 모든 것에 자유를 부여하는 것이 아닌 일정한 조건에 따른 자유를 허용하며 최소한의 저작권은 인정하는 형태의 주장을 펼치는 것을 보면 그 차이가 있다는 것을 알 수 있다.

리눅스는 그런면에서 자유 소프트웨어에 더 가깝게 발전한데 반해서 카피라이트 유지 같은 조건을 전제로 배포되는 저작물이나 라이스 형태는 오픈소스 소프트웨어에 가깝다고 볼 수 있는 것이다. 


오픈소스는 그럼 프리웨어 일까?
이에 대해서는 상당히 많은 논쟁이 있다. 개념적으로 보자면 프리웨어에 더 가깝다고 볼 수 있지만 실질적으론 라이센스 규정에 의해 배포되기 때문에 소스가 공개된 소프트웨어 정도로 정의하는게 맞지 않나 생각한다. 

또, 이것은 소스가 공개되었기 때문에 무료라고 생각한다거나, 개방형 소프트웨어라고 인식하는 문제등 올바르지 못한 인식들이 있는데, 이 부분에 대해서는 정의가 필요하다. 또, 오픈소스라고해서 무조건 무료라고 인식한다거나 상업화 해서 돈을 벌어도 저작권에 접촉되지 않는다는 인식은 큰 오해가 있다는 생각이다. 

분명 무료 소프트웨어에 근접한 라이센스 규정을 가지고 배포되고, 돈을 지급하지 않아도 되지만, 이는 엄연한 저작권이 인정되는 소프트웨어로 단순한 상용이냐 무료냐의 논쟁으로 오픈소스를 대입해서는 안된다는 것이다. 
 
또, 오픈소스는 자신이 가진 기술을 소개하고 나눌 목적으로 형성 된 일종의 해커 문화이자 해커 공동체적 관점에서 파생 된 하나의 저작물이라고 봐야한다. 한마디로 문화적 소산물이고 결과물인셈이다.


오픈소스 라이센스
오픈소스 라이센스는 리처드 스톨만이 GNU 프로젝트의 일환으로 배포한 라이센스에 기반한 GPL 라이센스를 기반으로 한다. 스톨만의 목표는 어떤 프로그램에서도 사용할 수 있는 하나의 라이선스를 만들어서 여러 프로젝트에서 코드를 공유 할 수 있게 하는 것이었는데 이 목적에 부합하는 라이센스 규정이 GPL이다.

이것이 1990년쯤에 몇몇 라이브러리에서 전략적으로 규제를 약화해야 할 필요성이 생겨났고, 이에 대한 조치로 라이브러리-GPL(LGPL, Library General Public License )이 생겨나게 되었고 1991년 6월에 배포된 GPL의 두 번째 판을 따라, LGPL도 두 번째 판으로 같은 번호를 붙여서 두 라이선스가 상호보완적임을 나타내게 되면서 라이센스가 발전하게 된다.
 
GPL 계열의 라이센스 규정의 대표적인 것은 GPL 기반 소스를 이용하되 이 소스로 만들어진 코드는 상용이든 무료이든 모두 공개해야 한다는 것입니다. 그리고 이 라이센스는 족보를 형성합니다. A라는 GPL 소프트웨어를 이용해 B로 만들면 당연히 B 소프트웨어도 GPL을 따라야하죠. 

그리고 이들 소프트웨어도 GPL로 소스 공개와 배포가 같이 되어야 합니다. 한마디로 소프트웨어를 무료 공개 한다는 개념이 아니라 소프트웨어에 대한 자유(이용하고 수정하고 새롭게 만들 수 있는 모든 것을)를 공개하는 개념인거죠. 


그리고 이는 민사에서 효력을 인정받고 있다고 알려져 있습니다. 물론 위에 잠시 언급한 GPL 라이센스에 대한 규정이 다는 아닙니다. 상당히 그 적용 범위가 넓고 이에 대해서 고민할 필요가 있는 라이센스 입니다. 제가 말한 몇가지로 오픈소스 라이센스를 오해하셔서는 안됩니다.

오늘글은 이런 잘못 알려진 오픈 소스와 그와 관련된 라이센스에 대한걸 알아보려고 했습니다. 도음이 되셨는지 모르겠고.. 제가 혹 틀린부분이 있으면 댓글로 알려주시면 수정하도록 하겠습니다.


해당글은 iamday.net의 IT칼럼 (
http://www.iamday.net/apps/article/talk/1430/view.iamday)송고 된 글입니다.


댓글