소프트웨어 개발을 하다보면 이래저래 오픈된 외부 라이브러리 들을 무의식적으로 가져다 쓰는 경우가 많습니다.
무엇보다도 수월하게 개발할 수 있는 장점이 있기 때문에 저 역시 외부 라이브러리들을 사용하곤 합니다.
하지만 사용을 함에 있어 그 범위와 책임 부분에 있어 대부분의 개발자들이 간과하는 경우가 비일비재 합니다.
정말 아무 생각없이 외부 라이브러리를 가져다가 소트프웨어를 개발하고 이를 제품으로 출시할 경우 라이센스 제약에 걸려 제품 자체의 판매가 중지되거나 막대한 라이센스 비용을 지불해야 하는 상황이 발생할 수도 있습니다.
-SONY 의PS2 명작 게임ICO ->GPL 라이브러리인 libarc 사용이 발각되어 게임 전체 소스코드 오픈
-일본 아쿠아플러스의 비주얼노벨 오프닝에 XVID 코덱을 사용한 사실이 발각되어 게임 전체 소스코드 오픈)
따라서 개발자들 스스로가 오픈 소스사용에 있어 주의를 기울일 필요가 있습니다.
기본적인 개념으로 GPL과 LGPL 의 개념에 대해 정리를 한 자료가 있어 공유합니다.
1. GPL(General Public License)
□ 배경
- 1980년대초 PC 의 보급 등으로 소프트웨어의 상업성강조 : 소프트웨어의 자유로운 사용 통제,
AT&T 의 UNIX 에 대한 권리 주장
- GNU 프로젝트 시작,Free Software Foundation(FSF) 설립-Richard Stallman :GCC 등 주요 개발툴을 GPL 로 배포
- 소프트웨어의 자유로운 사용, 복제, 수정, 배포를 보장하기 위해 의해 만들어짐
□ 의무사항
- 소스코드 배포 시 : copyright(저작권), 보증책임이 없음(No Warranty), GPL로
배포된다라는 것을 표시
- 실행파일 배포 시 : 위의 의무사항을 표시, 소스코드 공개
- 수정파일 배포 시 : 위의 의무사항을 표시, 수정된 소스를 공개, 누가, 언제,
무엇을 수정 했다라는 것을 표시
□ 소스코드 제공범위
- 공개 : 원본 GPL 프로그램, Work based on the Program
(수정된 프로그램, Linking 관계의 프로그램)
- 비공개 : Independent and Seperate Works, Mere Aggregation, 저작권자의
예외규정, GPL-Only Symbols을 access하지 않는 Loadable Kernel Module
□ 소스코드 공개방식
- Object 또는 실행 file 배포 시 소스 코드를 함께 제공하는 방법 (예: CD-ROM)
- 최소 3년 동안 이용자가 요청할 경우 소스 코드를 제공하겠다는 문서 제공 후,
이용자가 실제 요청 시 소스코드를 제공하는 방법 (예: E-mail)
- 특정 웹사이트에 소스코드를 올려 놓고 사용자가 download 받을 수 있도록 하는
방법 (예: 웹사이트)
□ 특허권과의 관계
- GPL SW에 포함된 특허는 누구나 자유롭게 사용할 수 있도록
Royalty-Free(무상)로 라이선스 해야 함.
2. LGPL(Lesser General Public License)
□ 배경
- GPL을 적용하게 되면 문제가 되는 라이브러리들에 적용할 수 있도록 만든
라이선스임.
- 널리 사용되고 있는 상용 라이브러리와 비슷한 기능을 제공하는 라이브러리를
LGPL로 배포하여 그 사용을 장려하고 사실상의 표준으로 유도하는 한편 관련된
다른 오픈 소스 SW를 보다 더 많이 사용할 수 있도록 하겠다는 전략적인
차원에서 만들어짐.
□ 의무사항
- GPL과 동일함
□ 소스코드 제공범위
- GPL에 비해 소스코드의 제공범위가 축소됨.
(Linking관계의 프로그램은 비공개 가능)
- 공개 : 원본 LGPL Library, Work based on the Library(수정된 라이브러리)
- 비공개 : Independent and Seperate Works, Mere Aggregation,
Work that used the Library(Library를 Linking하는 프로그램)
□ 소스코드 공개방식 & 특허권과의 관계
- GPL과 동일함
[출처] [서른두번째]GPL,LGPL 의 비교|작성자 모노
'프로그래밍 > Etc' 카테고리의 다른 글
[Etc] 프로그래밍 입문자들을 위한 장난감 c-jump (0) | 2010.07.19 |
---|---|
[Etc] 알고리즘 연습 사이트 더블릿 (0) | 2010.07.19 |
[Etc] VSGesture라는 프로그램을 아시나요? (2) | 2010.06.02 |
[Etc] VC++ 개발자와 함께하는 Visual Studio 2010 세미나 후기 (0) | 2010.05.30 |
[Etc] 비주얼 2005 디버그 모드 브레이크 포인트 안걸리는 문제 (2) | 2010.03.08 |