전문가칼럼

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

오픈소스 라이선스와 기업환경 기업에서의 오픈소스 편견과 활용

전문가칼럼
DBMS별 분류
Etc
작성자
dataonair
작성일
2007-07-06 00:00
조회
14564





오픈소스 라이선스와 기업환경
기업에서의 오픈소스 편견과 그 활용

서광열|노매드커넥션 CTO 근무| http://skyul.tistory.com

소프트웨어 산업에서 오픈소스의 등장은 다른 산업에서 발견하기 어려운 특이한 현상이다. 최종제품 뿐만 아니라 제품 설계도까지 공개하고, 누구나 이용할 수 있게 만든 사례는 어떤 산업에서도 찾을 수 없기 때문이다. 오픈소스의 등장은 지금까지 수많은 논쟁을 촉발시켰지만, 기업 환경에서 오픈소스 도입은 여전히 멀기만 하다. 이번 호에서는 오픈소스 라이센스에 대한 편견과 기업에서의 오픈소스 활용에 대해 이야기해보려 한다.

오픈소스의 정의

오픈소스는 역사상 유례가 없는 특이한 현상이다. 소프트웨어 제품에 있어서 소스 코드는 설계도와 마찬가지이며, 기존의 어떤 산업도 이런 설계도를 기꺼이 공개한 경우가 없기 때문이다. 일반적인 상식으로 이해하기 힘든 오픈소스 현상은 당연히 많은 사람들에게 오해를 불러 일으켰다. 공짜로 이용할 수 있는 소프트웨어는 모두 오픈소스라고 생각하는 사람도 있고, 어떤 방법으로든 소스코드만 얻을 수 있으면 ‘오픈’된 소스라고 생각하는 경우도 있다.

오픈소스의 활성화를 위해 조직된 비영리 기구인 OSI(Open Source Initiative)는 이런 혼란스러운 상황을 정리하기 위해 오픈소스 정의(Open Source Definition)이라는 것을 만들었다. 오픈소스 정의는 오픈소스 라이선스가 되기 위해서 어떤 조건이 포함되어야 하고, 어떤 조건이 포함되지 않아야 하는지를 구체적으로 명시하고 있다. OSI 정의에 따른 오픈소스가 되기 위해서는 몇 가지 조건 (http://www.opens-ource.org/docs/definition.php)을 충족시켜야 하는데, 가장 중요한 요소를 살펴보면 다음과 같다.

1)소스 코드 제공(Source Code Access)
소스 코드 공개는 가장 기본적인 오픈소스의 정의라고 보면 된다. 여기서 소스코드는 프로그램 작성에 필요한 프로그래밍 언어의 소스 파일(C, C++, 자바 등)과 빌드를 위한 파일, 프로그램 데이터 등을 모두 포함한다. 따라서 소스 코드 공개 없이 단순히 소프트웨어를 자유롭게 사용할 수 있도록 배포한 프리웨어(Freeware)는 오픈소스의 범주에 포함되지 않는다.

2)수정 허용(Derivative Works) 및 자유로운 재배포(Free-Redistribution)
앞에서 언급한 조건만으로는 오픈소스의 정의가 성립되지 않는다. 오픈소스가 되려면 공개된 오픈소스를 수정하고 다시 배포할 권리 또한 함께 인정해야 한다. 원 저작물을 가공한 2차 저작물을 작성 및 배포할 권리를 인정하는 것이 오픈소스이다. 오픈소스의 철학은 소프트웨어의 발전을 진흥시키는 데 있으므로, 이러한 수정 및 재배포 권리는 필수적이다.

3)차별 배제(No Discrimination)
차별 배제는 오픈 소스를 이용함에 있어서 어떤 제약 조건도 두어서는 안 된다는 뜻이다. 대표적인 예가 상업적인 이용을 막는 것이다. 앞의 두 가지 조건을 모두 충족시키지만, 상업적인 용도의 이용을 막고 있다면 이는 오픈소스라고 볼 수 없다.

4)다른 소프트웨어에 대한 무제약(No Restrictions On Other Software)
대부분의 오픈소스 라이선스는 오픈소스 소프트웨어가 다른 상용 프로그램 내에 포함되었을 때 해당 상용 프로그램 역시 오픈소스가 될 것을 강제하지 않는다. 즉, 오픈소스 소프트웨어는 자신에 대한 라이선스만을 명시할 뿐, 이를 이용하는 다른 소프트웨어에는 어떤한 의무 사항도 부과하지 않는다. 이 조건에 대한 명시적인 예외는 GPL(GNU Public License)인데, GPL 소프트웨어를 포함한 소프트웨어는 모두 GPL이 되어야 한다. 이런 GPL을 다른 오픈소스 라이선스와 구분해 자유 소프트웨어(Free Software)라고 부른다. 오픈소스 소프트웨어는 GPL로 대변되는 자유 소프트웨어와 달리 기업 친화적인 요소가 많다. 특히, 오픈소스 정의 3, 4번 요소인 차별 배제와 다른 소프트웨어에 대한 무제약은 오픈소스 제품을 상업 제품에 적극 이용하도록 유도하고 있다. 이 정의에 따르면, 오픈소스 제품은 얼마든지 상업적 용도로 이용될 수 있으며, 기업이 오픈소스 제품을 사용하더라도 어떤 제약도 받지 않음을 의미한다.OSI는 오픈소스 라이선스에 대한 인증도 하고 있다. 해당 사이트(http://www.opensource.org/licenses/)에 가보면, 현재 OSI 정의에 부합되는 오픈소스 라이선스를 정리해두고 있다. 대표적인 라이선스로는 아파치(Apache), New BSD, GPL, LGPL, MIT, MPL, CPL 등이 있다.

기업과 GPL

기업이 오픈소스를 도입함에 있어서 가장 걸림돌이 되는 것은 오픈소스 관련 라이선스이다. 오픈소스 라이선스는 카피레프트(Copyleft)의 성향에 따라 종류가 나뉜다. 여기서 카피레프트는 저작권(Copyright)의 반대말로, 저작권을 어느 정도 인정하느냐를 의미한다. 기업은 저작권이 민감한 문제이므로, 이런 오픈소스 라이선스의 성향은 기업과 오픈소스의 친화도를 결정한다.

가장 급진적인 라이선스는 단연 GPL이다. 리차드 스톨먼(Richard Stallman)이 주축이 되어 설립된 자유 소프트웨어 재단(FSF, Free Software Foundation)은 GPL의 본산으로 소프트웨어의 자유로운 이용을 가장 중요한 철학으로 한다. 따라서 자신이 만든 소프트웨어에 GPL 소프트웨어의 코드가 한 줄이라도 포함되면 해당 소프트웨어는 반드시 GPL을 따를 것을 명시하고 있다. 즉, 기업이 GPL 소프트웨어를 사용한 제품을 내놓으면 해당 제품도 반드시 GPL이 되어야 하고, 결과적으로 소스 코드를 공개해야만 한다.

GPL은 라이선스의 엄격함과 급진성에도 불구하고, 오늘날 오픈소스 사회에서 가장 보편적인 라이선스로 성공적으로 자리매김했다. 특히 GPL 라이선스를 채용한 리눅스 운영체제의 세계적인 성공으로, GPL은 단순한 철학적인 운동에서 실제 비즈니스에 큰 영향을 미치는 대표적인 소프트웨어 라이선스가 되었다. 하지만 GPL 소프트웨어는 GPL의 포함한 다른 소프트웨어까지 라이선스를 강제하는 조항 때문에 비즈니스 세계에서 오픈소스에 대한 반감을 불러일으킨 장본인이기도 하다.

하지만 GPL도 라이선스의 엄격함이 미치지 못한 곳이 있었다. GPL이란 인터넷이나 CD를 통해 소프트웨어를 배포했을 때 따라야 할 조항이다. 즉 내가 배포하는 소프트웨어가 GPL 소프트웨어를 포함하고 있을 때는 반드시 GPL을 따라야 하지만, 해당 소프트웨어를 개인적인 용도로 사용하거나 조직 내에서만 사용한다면 해당 소프트웨어가 GPL을 따라야할 필요가 없는 것이다.

이런 GPL의 허점을 이용해 최대의 이익을 본 곳은 구글이다. 구글의 서비스(검색, GMail 등)는 모두 구글의 서버를 통해 이루어지기 때문에 공개된 서비스임에도 불구하고 소프트웨어 자체는 조직 내 사용으로 볼 수 있다. 소프트웨어를 배포한 적이 없기 때문에 내부적으로 GPL 소프트웨어를 사용했더라도, 소스 코드를 공개하거나 배포할 의무가 없다. 구글은 오픈소스의 최대 수혜자임에도, 이를 오픈소스 공동체에 환원할 의무는 면제받고 있는 셈이다.

구글의 바가 크다. 제품을 웹서비스 형태로 제공할 경우, 오픈소스의 라이선스가 문제가 되는 경우는 거의 없다는 사실이다. 따라서 경쟁력 있는 오픈소스의 제품이라면, 라이선스 걱정 없이 기업 내 도입을 적극적으로 검토해 볼 필요가 있다.

기업 친화적 라이선스

GPL은 강력한 라이선스 조항으로 오픈소스의 발전을 선도했지만, 너무 강경한 원칙 때문에 오픈 소스에 큰 발전을 가져올 수 있는 기업 참여를 가로 막는 역할도 했다. 이에 반발해 GPL이 아닌 다른 오픈소스 라이선스들도 많은 주목을 받았는데, 그 중 대표적인 라이선스가 MPL(Mozilla Public License)이다.

MPL은 M의 Mozilla가 의미하듯이 대표적인 오픈소스 재단인 모질라(Mozilla)가 채용한 라이선스이다. 모질라 재단은 과거 넷스케이프 브라우저의 오픈소스 버전인 파이어폭스(FireFox)를 개발하고 있는데, MPL은 파이어폭스, 썬더버드(ThunderBird)를 비롯한 모질라 재단의 모든 제품군에 적용되고 있다. 좀 더 정확히 말하자면 이들 제품은 MPL/GPL/LGPL이라는 삼중 라이선스로 공개되었는데, 사용자는 입맛에 따라 이들 세 라이선스 중에 하나를 선택할 수 있다. 이중 가장 기업 친화적인 라이선스가 MPL이다.

MPL의 가장 큰 특징은 MPL 하에 배포된 코드를 수정하거나 포함한 파일만 MPL을 적용 받는다는 점이다. 즉, MPL을 이용해 소프트웨어를 만들었더라도 기존 MPL을 수정한 파일이 아닌 새로운 파일은 MPL에서 자유롭고, 소스 코드를 공개할 의무가 없다. 또한 소스 코드 공개도 6개월에서 1년 정도 기간만 하면 되기 때문에 영구적인 공개를 의무화한 GPL에 비해서는 사적 소유권을 훨씬 많이 인정하는 편이다.

MPL도 MPL 코드를 수정한 경우에 대해서는 최소한의 제약 사항은 있는 반면에, 거의 제약 사항이 없는 매우 자유로운 라이선스도 있다. 대표적인 것은 BSD(Berkeley Software Distribution), 아파치, MIT 라이선스이다. BSD와 MIT은 학계에서 나온 라이선스고, 아파치는 아파치 서버로 유명한 오픈 소스 재단인 아파치 재단의 모든 소프트웨어에 적용되는 자유로운 라이선스다.

BSD, 아파치, MIT 라이선스는 사실상 아무런 제약이 없는 라이선스이다. 이들 라이선스로 작성된 소프트웨어는 수정 및 배포, 상용화가 자유롭다. 단지 원 개발자의 이름을 명시해주기만 하면 된다. 더불어 오픈소스 파생물에 대해 별도의 상업 라이선스를 붙일 수도 있다. 즉, 이들 라이선스로 된 제품을 가져와 수정한 후에 상업적인 라이선스를 붙여서 자신의 저작물인 것처럼 판매할 수 있다는 이야기이다.(라이선스의 성향 참조)

기업의 오픈소스 환원

지금까지는 기업의 오픈소스 제품 활용과 라이선스에 대한 이야기를 했다. 반대로 오픈소스를 활용해서 성과를 낸 기업은 이제 그 성과의 일부를 오픈소스 커뮤니티에 환원하는 작업을 해야 한다. 이런 환원 작업은 GPL 라이선스 등에 의해서 강제되는 경우도 있고, 더 큰 목표를 위해 기업이 스스로 결정하는 경우도 있다.

기업이 오픈소스에 기여함으로써 얻을 수 있는 이익은 많다. 제품의 오픈소스화는 많은 수의 사용자와 테스터를 확보해주며, 제품의 품질과 기능을 끌어올릴 수 있는 좋은 기회이다. 현재 오픈소스의 이런 이점에 대해서는 대부분의 사람들이 인정하고 있지만, 국내의 경우 아직 소스코드 공개에 따른 경쟁 업체의 추격을 매우 큰 위험으로 생각하고 있기 때문에 기업의 오픈소스 참여는 아직 활발히 이루어지지 않고 있다.

이런 인식이 나온 이유는 소스 코드=설계도면이라고 생각하는 데 있다. 즉, 소스 코드만 있으면 누구나 같은 품질의 소프트웨어를 만들 수 있는 것이라는 생각인데, 이는 사실이 아니다. 소프트웨어는 요구사항 분석, 디자인, 설계, 코딩, 테스트라는 일련의 단계로 이루어지며 소스 코드만으로 할 수 있는 일은 많지 않다. 특히, 문서가 부족한 소스 코드는 거대한 암호에 가깝다고 보는 것이 옳을 것이다.

또한 기업이 제품을 오픈소스화 했을 때 경쟁 업체가 그 소스를 훔쳐다가 사용한 사례는 거의 전무하다. 오히려 오픈소스화를 계기로 많은 사용자를 확보하고, 기업 이미지를 개선함으로써 경쟁자의 추격을 따돌린 사례가 더 많을 것이다. 기업 제품의 오픈소스화는 득과 실을 잘 따져본 이후 전략적으로 이루어져야 하며, GPL, LGPL을 비롯한 다양한 라이선스를 잘 활용하여 부작용을 최소화하며 장점을 이끌어내는 전문성이 필요하다.