-
오픈소스 라이센스대학/오픈소스소프트웨어 2022. 10. 13. 15:19
- 지적재산권 vs. 라이센스
지적재산권이 있는 소프트웨어는 저작권, 특허권, 상표권, 영업비밀 등 독점적으로 보호된다.
라이센스가 있는 소프트웨어는 개발자-사용자 간의 사용방법 및 조건의 범위를 명시하여 권리를 보호한다.
- 오픈소스 소프트웨어의 조건
다음은 OSI에서 정의한 오픈소스의 정의이다.
1. 자유로운 재배포
2. 소스코드 공개 (난독화 금지)
3. 동일한 규정에 따라 2차 저작물의 배포 허용
4. 작성자 소스코드 보전 (원 저작자의 정보 삭제 금지)
5. 개인이나 단체에 대한 차별 금지
6. 사용 분야에 대한 제한 금지
7. 라이센스 전문을 배포
8. 라이센스 적용상의 동일성 유지 (특정 제품 의존 금지)
9. 다른 라이센스의 포괄적 수용 (특정 라이센스 제한 금지)
10. 라이센스의 기술적 중립성
- 오픈소스의 발달 과정
~ 1960 자유 소프트웨어의 태동기: 소스코드, 바이너리 코드를 함께 배포
~ 1970 자유 소프트웨어의 암흑기: Unix의 배포/변경 권한이 무료버전에서 삭제, 상용 소프트웨어 증가
~ 1980 OSS 반격의 서막: GNU 프로젝트의 시작
~ 1990 Linux의 탄생
~ 2000 Ubuntu, Git 등 OSS의 완전 부활
- 오픈소스 라이센스의 종류와 권한 수준
1. Permissive: 가져다 쓰고나서 수정/추가한 내용은 공유 안해도 된다!
Public Domain, MIT/X11, BSD, Apache 2.0
2. Weakly Protective: 이 라이센스가 있는 라이브러리를 동적링크(.dll) 하는 경우에는 소스코드 공개 의무가 없다!
(단, 정적링크 하는 경우에는 본인이 개발한 프로그램의 소스코드를 공개해야 한다.)
LGPLv2.1, LGPLv.2.1+, LGPLv3, LGPLv3+, MPL 1.1
3. Strongly Protective: 이 라이센스가 있는 라이브러리를 링크 하는 경우에는 소스코드 공개 의무가 있다.
GPLv2, GPLv2+, GPLv3, GPLv3+
4. Network Protective: 네트워크로 서비스를 하는 경우에도 소스코드 공개 의무가 있다.
Affero GPLv3 (AGPLv3)
주요 라이센스
- BSD (Berkeley Software Distribution)
Copyright (c) <year>, <copyright holder> All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:
1. 소스코드 배포시 위의 문구가 있어야 한다.
2. 바이너리 형태로 배포시 어떻게든 위의 문구가 있어야 한다.
3. 광고시 원작자의 정보를 포함해야 한다.
4. 원작자, 기여자의 이름을 홍보하는데 사용해서는 안된다.1. 4-clause license (BSD License)
1~4의 내용이 들어가 있는 라이센스
2. 3-clause license (New BSD License)
1~3의 내용이 들어가 있는 라이센스
3. 2-clause license (FreeBSD License)
1, 2의 내용이 들어가 있는 라이센스 (MIT와 가장 유사하다)
4. 0-clause license (BSD Zero Clause License)
모든 조건이 없다 (거의 Free software)
- GPL (General Public License)
GNU (GNU is Not Unix) 라이센스로 아래의 특징이 있다.
1. 소스코드 공개의 의무가 있다.
2. 전염성 조항이다. (이 라이센스가 포함된 소프트웨어를 사용했을 경우 새로운 창작 소프트웨어도 GNU 라이센스를 따라야 한다.)
GPL 라이센스 사용시 기술적 우위를 지킬 수 있다.
(내 소스코드를 써도 그들 역시 소스코드를 공개해야 한다는 부담감을 줄 수 있다.)
그러나, 배포만 하지 않는다면 소스코드를 공개하지 않아도 된다.
또한, 내가 돈을 받고 팔아도 나에게서 산 사람이 무료로 배포하겠다고 하면 그걸 말리거나, 제 3자 에게서 돈을 받아낼 수 없다.
또한, 배포시 소스코드를 같이 주라는 뜻이지, 만인에게 모두 배포해야 한다는 뜻은 아니다.
- LGPL (Lesser General Public License)
GPL보다 약한 버전의 라이센스로 아래의 특징이 있다.
1. 이 라이센스를 사용한 소프트웨어를 동적링크* 사용시 내 소스코드의 공개 의무는 없다.
2. 단, 이 라이센스를 사용한 소프트웨어를 수정하여 사용시 내 소스코드를 공개해야 한다.
3. 단, 이 라이센스를 사용한 소프트웨어를 정적링크 사용시 내 소스코드를 공개해야 한다.
*동적링크: .so (shared object), .dll (dynamic-link library) 같은 형태로 사용하는 방법
- MIT
완전 자유로운 라이센스.
소프트웨어를 뭘 어떻게 해도 내 소스코드 공개 의무와 원작자 표시 의무는 없다.
단, 같은 버전의 소프트웨어인데 원작자의 정보를 지우고 내가 만들었다고 하면 안된다.
(버전 업을 하면 가능)
- Apache License 2.0
MIT 라이센스와 거의 유사하다.
차이점은 이 라이센스가 사용된 소프트웨어를 사용한 프로그램을 배포시 Apache License 2.0을 사용해 배포해야 한다는 점이다.
(전염성이 있음)