Opensource License

오픈소스SW는 소스코드가 공개되어 있는 SW를 말하며, 일반적으로 자유롭게 사용/복제/배포/수정할 수 있다. 오픈소스SW의 대표적인 예로는 Linux 커널 및 아파치 웹서버, FireFox 웹브라우저, MySQL 등이 있다.

전 세계적으로 오픈소스SW는 FSF(Free Software Foundation)의 자유SW(Free Software)를 포함한 넓은 의미로 사용되고 있다. 하지만 자유SW와 오픈소스SW는 역사 및 추구하는 이념 등에서 미묘한 차이가 있다.

1980년대부터 소프트웨어가 거대 부가가치 산업으로 발전하자, 지적재산권 및 라이선스 계약을 통하여 소프트웨어의 사용, 복제, 배포, 수정에 제한을 가하려는 움직임이 나타났다. 이런 움직임에 반대하여 리처드 스톨만은 FSF를 설립하고 자유SW(Free Software) 운동을 전개하였다.

그러나 자유SW의 ‘자유(Free)’라는 단어가 일반인들에게 ‘무료’로 인식되고, 엄격한 GPL조항 때문에 상용SW개발에 이용할 수 없어 대다수 기업들이 자유SW운동에 참여를 꺼려하자 소스코드 공개에 보다 많은 참여를 이끌어내기 위하여 에릭 레이먼드, 브루스 페런스 등은 '오픈소스 (Open Source)' 라는 새로운 용어를 제안했다.

그리고 이러한 ‘오픈소스’는 1998년 오픈소스SW 활성화 및 오픈소스SW에 대한 인증을 담당하는 OSI (Open Source Initiative)가 결성되면서 널리 사용되기 시작했다. OSI는 오픈소스에 해당하는 라이선스의 최소한의 기준을 정의 (Open Source Definition, OSD)해놓고 이 정의에 따라 인증, 관리 및 촉진시키는 일을 한다.

오픈소스라 하더라도 라이센스 종류에 따라 제약이 있다. 따라서 잘 보고 사용해야 한다.

GNU General Public License (GPLv2)

자유 소프트웨어 재단(OSF)에서 만든 자유 소프트웨어 라이선스다. 미국의 리처드 스톨만(Richard Stallman)이 GNU-프로젝트로 배포된 프로그램의 라이선스로 사용하기 위해 작성했다.

  1. 컴퓨터 프로그램을 어떤 목적으로든지 사용할 수 있다
  2. 컴퓨터 프로그램의 복사를 언제나 프로그램의 코드와 함께 판매 또는 무료로 배포할 수 있다
  3. 컴퓨터 프로그램의 코드를 용도에 따라 결정할 수 있다
  4. 변경된 컴퓨터 프로그램 역시 프로그램의 코드와 함께 자유로이 배포할 수 있다'

라는 네 가지 조항을 명시하고 있다. 대부분의 소프트웨어에 대한 라이선스는 소프트웨어를 공유하거나 수정할 수 있는 자유를 금지하기 위 고안되었다. 반면에 GNU 일반 공중 라이선스는 자유 소프트웨어를 공유하고 수정할 수 있는 자유를 보장하기 위해 의도되었다. 즉, 소프트웨어가 사용자 모두에게 자유롭게 이용될 수 있도록 하는 것이다. 이 일반 공중 라이선스는 자유 소프트웨어 재단의 소프트웨어 대부분을 비롯하여, 저작자가 이 라이선스의 사용을 지정한 기타 모든 프로그램에 적용된다. (자유 소프트웨어 재단의 소프트웨어 중 일부는 이 라이선스 대신 GNU 라이브러리 일반 공중 라이선스가 적용된다.) 누구나 자신의 프로그램에 이 라이선스를 적용시킬 수 있다.

  • 버전 :2.0
  • 관리기관 :Free Software Foundation, Inc

이 허가서가 사용된 소스를 쓰면 프로그램 전체를 GPL로 공개해야한다.

LGPL

수정/배포 가능하다. 상용/독점 사용 가능하다. 수정한 부분이 있다면 공개해야 한다. (그래서 저도 코어를 수정해서 사용하는 경우 이곳에 모두 알리고 있다. 물론, 일반적으론 원저작자의 요청이 있을 때에만 공개해도 된다.) 수정한 부분을 공개해야 하는 규정이 있기 때문에 왠만하면 수정해서 사용하지 않는게 좋다. 그래서 소스 자체를 인클루드 해 놓고 소스 바깥에서 코드 오버라이딩 기법으로 보완수정해 사용하곤 한다. 수정하셨다 하더라도 라이센스를 변경할 수 없다. 수정한 것들도 모두 LGPL 이어야 한다.

MIT

대부분의 jQuery 플러그인이 이 라이센스이다. 수정/배포 가능하다. 상용/독점 사용 가능하다. 수정하셨다해도 소스 공개 안해도 된다. 완소 라이센스 이다.

Apache

미묘하게 차이가 있지만 위에 MIT 와 거의 동일하다.

MPL

미묘하게 차이가 있지만 위에 LGPL 과 거의 동일하다. 마찬가지로 수정한 부분은 공개해야 하기 때문에 수정하지 마시고 인클루드 해서 사용하시는게 안전한다.

BSD

미묘하게 차이가 있지만 위에 MIT 와 거의 동일하다.

Public Domain 또는 Free

또는 라이센스표시없는 상태 이건 뭐 맘대로 사용하라는 뜻이다.

요약

MIT, Apache, BSD, Public Domain, Free, 표시없음 라이센스 소프트웨어는 편하게 사용해도 된다.

LGPL, MPL 라이센스는 수정부분을 공개해야 하기 때문에 다른 코드와 결합해 하나의 파일에 두지 말고 수정없이 인클루드 해서 사용하면 된다.

이것 이외의 라이센스는 확실히 확인하고 알아보든가 그냥 안 쓰는게 상책이고요. 상용 라이센스는 뭐 어차피 돈 내고 약관에 의해 움직이다.

오픈소스 라이센스라 하더라도 위에서 6번 Public Domain 또는 Free 를 제외하고 소스코드 내에 저작권자정보 및 라이센스정보 관련 주석은 절대 지우면 안된다. 일부 사람들은 MIT 라든가 BSD 라이센스가 사용상에 제약이 없기 때문에 라이센스 없는거 처럼 취급하고 라이센스 관련 주석을 지우고 쓰는데 그러면 큰일난다.

모두 저작권은 보호 받기 때문이다. MIT, Apache, BSD 등 제약없는 오픈소스라도 라이센스표시 주석 지우면 안됨!!!

http://kimsq.cweb.co.kr/b/tinylogs/16 (CC BY-SA 3.0)