2008년 1월 31일 목요일

오픈소스란 어떤 것인가?

GPL 라이선스를 갖는 코드가 한 줄이라도 들어가면 GPL 라이선스를 따라야 한다고 하네요. 다른 오픈소스 라이선스는 오픈소스 코드를 이용한 사용 소프트웨어에 대해 강제하는 조항은 없는 것 같은데요... GPL 라이선스로 배포된 소스코드를 사용하게 될 경우 꼭 이 점을 염두에 두고 있어야 겠군요.

비영리 기구인 Open Source Initiative 가 오픈소스 소프트웨어를 촉진시키고, 이를 관리하기 위해 Open Source Definition라는 것을 만들었다. 오픈소스 역시 상용 프로그램과 마찬가지로 라이선스하에 배포가 된다. 이미 30개 이상의 오픈소스 라이선스가 난무해 오픈소스 사용자들 입장에서는 골치가 아닐 수 없다. 이를 돕기 위해 정의된 Open Source Definition는 오픈소스 라이선스가 되기 위해선 어떤 내용이 포함되어야 하고, 어떤 내용은 포함되지 않아야 하는지를 명시한 것이다.


Open Source Definition
에 부합하기 위해서 오픈소스 라이선스는 다음의 항목들을 제공해야 한다:

  • 소스 코드 제공(Source Code Access): 오픈소스가 되기 위해서는 어떠한 형태더라도 소스 코드를 제공해야 한다.
  • 수정 허용(Derivative Works): 오픈소스 코드를 수정해서 동일한 조건하에 다시 배포가 될 수 있어야 하고, 이를 칭하는 법률 용어가 " Derivative Works"이다. 이를 통해 오픈소스 소프트웨어가 빠르게 진화하는 것이 가능해진다.
  • 차별 배제(No discrimination): 오픈소스 코드를 이용하는데 어떠한 차별도 두어서는 안된다. 멋진 규약이다. ^^; 라이선스를 준수하는한 누구에게도. 이는 상업적인 목적의 사용자가 오픈소스 커뮤니티에 합류하는 것을 허용한다.
  • 다른 소프트웨어에 대한 무제약(No restrictions on other software): GPL을 제외한 대부분의 오픈소스 라이선스는 오픈소스 소프트웨어가 사용 소프트웨어에 포함될 경우 해당 상용 소프트웨어가 오픈소스일 필요는 없다. 즉, 해당 소프트웨어가 아닌 다른 소프트웨어에 대해 어떠한 강제도 하지 않다. 다만, GPL의 경우 GPL이 포함된 소프트웨어는 무조건 GPL이다. ^^;

OSI의 인증을 받은 모든 라이선스의 목록은 아래 사이트에서 찾아볼 수 있다.

: http://www.opensource.org/licenses/

오픈소스의 라이선스는 대체로 "COPYLEFT" 성향의 정도에 따라 분류할 수 있다. COPYLEFT라 함음 저작권(COPYRIGHT)에 대한 반감 혹은 조롱을 나타내는 표현이다.

Copyleft 성향이 가장 강한 것은 GPL (General Public License) 이다. GPL은 쉽게 말해서, GPL 하에 배포된 코드를 수정한 경우, 즉 자신이 만들 소프트웨어에 GPL 라이선스를 갖는 코드가 할줄이라도 들어가면, 소유권을 포기하란 얘기다. 완전한 평등. 완전한 공유 정신이다.

오픈소스 소프트웨어의 대명사격인 리눅스가 바로 GPL을 대표한다고 할 수 있다. GNU GPL은 최초의 오픈소스 라이선스이면서, 여전히 가장 많이 사용되는 오픈소스 라이선스이기도 하다. 오픈소스의 대부격인 리차드 스톨먼(Richard Stallman)과 에벤 모글렌(Eben Moglen)은 GPL을 만들고, GPL을 촉진시키고 이를 관리하기 위해 Free Software Foundation을 설립했다.

Copyleft 성향이 약한 오픈소스 라이선스들이 몇 가지 있다. 그 중 유명한 것이 Mozilla Public License (MPL) 이다. 네스케이프 브라우저의 오픈소스 버전인 Mozilla가 채용한 라이선스이다. MPL의 경우 MPL 하에 배포된 코드를 포함하는 파일이나, MPL 하에 배포된 파일 자체를 수정한 경우에만 소스코드 배포를 요구하며, MPL 하에 배포되었던 파일이 아닌 새로운 파일은 MPL의 제약을 받지 않는다. 코드 공개 기간에 있어서도 최소 일년 내지 6개월 정도의 기간동안 공개해야 하는 제약을 갖는다. 그래도, 완전 공개의 GPL에 비하면 상당히 사적 소유권을 인정하는 것이다.

다음으로 Copyleft 성향이 없는 오픈소스 라에선스들이 있는데, 가장 유명한 것은 Berkeley Software Distribution License (BSD)이며, 이와 유사한 것으로 Apache Software Licensethe MIT license 가 있다. 이것은 구워먹든 삶아먹든 신경을 안쓰는 것이다. 코드를 수정해서 상용화해도 전혀 무방하다는 것이다. 맘대로 하란 것이다. 다만, 원조 개발자들의 이름을 명기하는 정도의 예우를 요구하고 있다. 이 정도야 최소한의 양심 문제 아닌가. ^^;

그러나 주의할 점은 GPL 라이선스도 인터넷이나 CD 등의 미디어를 통해 공개적으로 배포가 되었을 때의 이야기다. GPL 하의 코드를 포함하여 제작한 프로그램을 개인적으로 사용하거나, 조직내에서 사용할 경우는 어떠한 제약도 받지 않게 된다. 또한, GPL 오픈소스 코드를 활용하여 서버의 코드를 수정하고, 공개적으로 서비스를 수행하는 경우도 배포가 이루어지지 않았기 때문에 소스코드를 배포할 필요가 없다.

이상은 ONLamp.com의 "What is Open Source"의 일부를 발췌하여 의역한 것입니다.

원문: http://www.onjava.com/lpt/a/5330
2008년 1월 9일 추가:
간단한 요약표를 오픈소스 라이선스 가이드라인에서 찾을 수 있어 추가한다.

댓글 없음: