-
[공학] 오픈 소스 - 소프트웨어(OSS) 라이센스공학 2023. 8. 7. 19:22
글의 참고
- https://www.kc-ml2.com/posts/blog_OSSLicense
- https://helloblog.net/open-source-license/
- https://www.oss.kr/oss_guide/show/044d96fd-413d-4ab3-ad72-4776d2b7e002
- https://namu.wiki/w/%EC%B9%B4%ED%94%BC%EB%A0%88%ED%94%84%ED%8A%B8
- https://namu.wiki/w/2%EC%B0%A8%EC%A0%81%20%EC%A0%80%EC%9E%91%EB%AC%BC
글의 전제
- 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다.
- 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자.
글의 내용
- 카피레프트 vs 카피라이트
- 라이센스 관련 내용을 들어가기 전에 `카피레프트`와 `카피라이트`에 대한 내용을 알아야 한다.
- 카피라이프 - 저작권과 동일한 의미다. 즉, 창작물을 만든이(저작자)가 자기 저작물에 대해 가지는 배타적인 법적 권리.
- 카피레프트 - 카피라이트의 독점적인 의미에 반발하여 생격난, `모든 프로그램이나 정보는 소수에게 독점되어선 안 되며, 자유롭게 공유되어야 한다.` 라는 사상.
- 카피레프트
- Copyleft는 저작권을 기반으로 한 정보의 공유를 위한 개념입니다. 정보의 사용 제한에 반대한다는 의미에서 Copy-right가 아닌 Copy-left라고 명칭한 것입니다. Copyleft는 소수에게만 지식과 정보가 독점되지 않고, 모든 사람에게 열려 있는 것을 목표로 합니다.
- Copyleft의 등장은 1976년으로 거슬러 올라갑니다. Li-Chen Wang은 Tiny Basic의 한 버전인 Palo Alto Tiny BASIC 을 배포하면서 소스코드를 자유롭게 사용하고 공유할 수 있음을 설명하기 위해 "@COPYLEFT ALL WRONGS RESERVED"라는 용어를 만들었습니다.
이후 리처드 스톨만이 1988년 GPL라는 라이선스를 공식화하기 위해 Copyleft 개념을 차용하면서 널리 퍼지게 되었습니다. - Copyleft개념을 라이선스 조항에 포함시킨 것을 Copyleft 라이선스 또는 Copyleft 조항이라고 합니다. Copyleft 라이선스에는 다음과 같은 원칙들이 포함되어 있습니다.
- Freedom 작품을 연구하고 사용하는 자유, 다른 사람들과 같이 쓰고 복사하는 자유, 수정하는 자유, 2차 저작물을 배포할 자유를 보장합니다.
- Reciprocity = 배포에서의 상호주의 위에서 언급한 자유를 보장하기 위해서 라이선스가 적용된 코드를 제3자에게 배포할 때 동일한 라이선스로 배포하도록 요구하기도 합니다.
- Copyleft 라이선스는 위 원칙을 따라 배포시 소스코드 제공 의무를 부여하고 있으며 배포시 동일한 라이선스를 적용하도록 상호주의를 적용하고 있습니다. 하지만 조건에 따라 상호주의를 적용하지 않는 경우도 있습니다. 이를 정리하면 아래와 같습니다.
- 장하기 위해서 라이선스가 적용된 코드를 제3자에게 배포할 때 동일한 라이선스로 배포하도록 요구하기도 합니다.
- OSS vs OSI vs OSD
- OSS
- 오픈소스 소프트웨어(Open Source Software, OSS)를 뜻하는 용어입니다.
- 소스코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있고, 오픈소스 라이선스를 만족하는 소프트웨어로서 일반적으로 자유롭게 복제/배포/수정할 수 있습니다.
- 단순히 소스코드가 공개되어 있다고해서 오픈소스인것은 아니고 OSI가 정한 OSD를 충족하여 오픈소스 라이선스 인증을 받아야 합니다.
- OSI
- Open Source Initiative를 뜻한다.
- 1998년에 결성된 오픈소스 활성화 및 오픈소스에 대한 인증을 담당하는 비영리 단체입니다.
- OSI는 오픈소스 라이선스의 최소한의 기준인 OSD (Open Source Definition) 를 정의 해놓고 이 정의에 따라 인증하고 관리하고있습니다.
- OSD
- Open Source Initiative(OSI)라는 단체가 공개 소스 정의(OSD)라는 오픈소스에 대한 정의.
- 오픈소스가 주목받기 시작한 초기에는 오픈소스의 개념에 대한 명확한 정의가 존재하지 않았기 때문에, 사용하는 사람에 따라 의미에 혼동이 생겼다. 이런 사태를 수습하기 위해 Open Source Initiative(OSI)라는 단체가 공개 소스 정의(OSD)라는 오픈소스에 대한 정의를 발표했다.
- OSD(Open Source Definition)를 충족해야 OSI로부터 오픈소스 라이선스 인증을 받을 수 있기에, OSD의 내용은 오픈소스 라이선스의 공통된 특징이라 할 수 있습니다. OSI가 정한 OSD내용은 다음과 같습니다.
Free Redistribution 소프트웨어의 재배포의 자유가 있으며, 로열티나 기타 다른 비용을 요구할 수 없음. Source Code 프로그램은 소스코드를 포함해야 하고, 소스코드는 프로그래머가 쉽게 수정할 수 있는 형태로 제공되어야 함. Derived Works 2차 저작물을 허용해야 함. Integrity of The Author's Source Code 라이선스는 수정된 소스코드로부터 만든 소프트웨어의 배포를 명시적으로 허락해야 함. No Discrimination Against Persons or Groups 개인이나 단체를 차별해서는 안됨. No Discrimination Against Fields of Endeavor 사용분야를 제한해서는 안됨. Distribution of License 소프트웨어에 부여된 권리는 모든 사용자에게 적용됨. License Must Not Be Specific to a Product 라이선스 적용의 동일성을 유지해야 함. License Must Not Restrict Other Software 라이선스 적용의 동일성을 유지해야 함. License Must Be Technology-Neutral 특정 기술이나 특정 인터페이스에만 국한되어 사용되도록 하면 안됨.
Open Source Definition의 상세한 내용은 여기에서 확인할 수 있습니다.출처 - https://www.kc-ml2.com/posts/blog_OSSLicense
- 오픈 소스 라이선스 배포 현황
- OSI에 따르면 오픈소스 라이선스의 종류는 80여개가 넘는데요, 배포 현황을 보면 그 중 10가지 정도가 주로 쓰이고 있습니다. 본 포스트에서는 주로 사용되는 라이선스들을 위주로 살펴보겠습니다.
- 오픈 소스 라이선스 분류
- 각 라이선스들의 내용을 살펴보기 전에, 주로 사용되는 라이선스들의 특징을 한 눈에 살펴보고자 주요 기준으로 분류해 보았습니다.
- 오픈 소스 라이선스 내용
- 라이선스마다 형식은 다양하지만 모두 오픈소스를 사용할때의 의무사항과 조건을 명시하고 있습니다.
간단한 예로 BSD-2-Clause 라이선스를 살펴보겠습니다. 우선 저작권 <연도>,<저작권자>를 표기하였고, 배포시 의무사항을 규정하고 있습니다. 또한 어떠한 보증도 제공하지 않는다는 조건을 명시하고 있습니다.
- 주요 오픈 소스 라이선스 소개
- BSD형
- 카피레프트(Copyleft) 조항을 포함하지 않고 소스코드 제공 의무도 없어 의무사항이 비교적 간단한 라이선스 입니다. BSD형의 라이선스로 배포되는 다양한 코드를 이용하여 자사의 제품을 만든 후 이를 상용 라이선스로 배포하는 것도 가능합니다.
- GPL형
- GNU 일반 공중 사용 허가서(GPL)는 자유 소프트웨어 재단에서 만든 라이선스입니다. BSD와 비슷하지만, Copyleft 조항이 있다는 점이 큰 차이점입니다.
- MPL형
- 주로 기업들이 주도하는 오픈소스 프로젝트에서 사용하는 라이선스로, BSD 형 GPL형 라이선스와 다르게 처음부터 법률가들이 참여하여 만든 라이선스 입니다.
'공학' 카테고리의 다른 글
[공학] data structure - Stack (0) 2023.08.07 - 라이센스 관련 내용을 들어가기 전에 `카피레프트`와 `카피라이트`에 대한 내용을 알아야 한다.