1. 개요
2021년에 11년간 이루어졌던, 구글과 오라클의 소송이 끝났습니다.
쟁점은 오픈소스인 자바의 API에도 저작권이 인정되는가, 저작권이 인정 될 경우 구글의 API 재사용 행위가 공정이용에 해당 되는가입니다.
결국 구글행위가 공정이용에 해당되어 승소하기는 했지만, API 코드에 대한 저작권에 대한 대법원 판결은 이루어지지 않았습니다.
https://zdnet.co.kr/view/?no=20210406064737
그만큼 저작권이라는 것은 매우 중요한데요, 오픈소스에도 저작권이 존재합니다. 오픈소스를 가져다 쓸 때, 제약사항들이 있으며 그 제약사항을 제대로 지키지 않을 경우 법적인 문제가 발생할 수 있습니다.
Git에서 여러 오픈소스를 쓸 때, LICENSE 파일을 보신 적이 있으실 것입니다.
오픈소소를 가져다 쓸 때, 이 파일로 저작권을 표시하고, 특정 규약을 지켜야 합니다.
2. 용어 정리
지식재산권
- 인간의 창조적 활동 또는 경험 등을 통해 창출하거나 발견한 지식·정보·기술이나 표현, 표시 그 밖에 무형적인 것으로서 재산적 가치가 실현될 수 있는 지적창작물에 부여된 재산에 관한 권리.
- SW 또한 저작권(copyright), 특허권(patent), 상표권(trademark right), 영업비밀에 의해 보호받습니다.
- 저작권은 저작물의 창작과 함께 자동으로 부여됩니다.
라이선스
- 권리자가 다른 사람에게 일정한 조건으로 특정 행위를 할 수 있는 권한입니다.
오픈소스
- 오픈소스 소프트웨어(Open Source Software, OSS)를 뜻하는 용어입니다.
- 소스코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있고, 오픈소스 라이선스를 만족하는 소프트웨어로서 일반적으로 자유롭게 복제/배포/수정할 수 있습니다.
- 단순히 소스코드가 공개되어 있다고해서 오픈소스인것은 아니고 OSI가 정한 요건을 충족하여 오픈소스 라이선스 인증을 받아야 합니다.
OSI
- 비영리 단체로서, 오픈소스 활성화 및 인증을 담당합니다.
조합저장물(Larger Work)
- 코드 전체 or 일부를 해당 라이선스의 적용을 받지 않는 결합한 저작물을 뜻합니다.
- 예를 들어, BSD와 Apache 2.0 각각의 라이선스를 가지는 코드의 조합이 있습니다.
CopyLeft
- 저작권을 기반으로 한 정보의 공유를 위한 개념입니다.
- 정보 사용 제한을 반대한다는 의미에서 right가 아닌 left를 사용합니다.
- 원칙
- Freedom: 작품을 연구하고 사용하는 자유, 다른 사람들과 같이 쓰고 복사하는 자유, 수정하는 자유, 2차 저작물을 배포할 자유를 보장합니다.
- Reciprocity: 자유를 보장하기 위해서 라이선스가 적용된 코드를 제3자에게 배포할 때 동일한 라이선스로 배포하도록 요구합니다.
- 단, 조건에 따라 소스코드를 제외한 실행 파일은 타 라이선스로 배포할 수 있습니다. (Week Copyleft)
3. 오픈소스 라이선스
오픈소스 소프트웨어 사용권으로, 개발자와 이용자 간에 이용 방법 및 조건의 범위를 명시한 계약 및 사용권을 뜻합니다. 각 라이선스마다 지켜야할 의무사항이 다른데요, 위반할 경우 법적인 책임이 발생할 수 있습니다.
OSI에 따르면 라이선스 종류는 80가지가 넘는데요, 공개 SW 포털에 따르면 주요 라이선스는 5가지가 있습니다.
해당 라이선스의 의무를 그림으로 표현하면 다음과 같습니다.
주요 5가지의 라이선스 허용 사항을 표로 나타내면 다음과 같습니다.
구분 무료 배포허용 소스코드 취득 소스코드 수정 2차 저작물 재공개 의무 독점 SW와 결합 가능 여부
무료 | 배포허용 | 소스코드 취득 | 소스코드 수정 | 2차 저작물 재공개 의무 | 독점 SW와 결합 가능 여부 | |
GPL | O | O | O | O | O | X |
LGPL | O | O | O | O | O | O |
MPL | O | O | O | O | O | O |
BSD | O | O | O | O | X | O |
Apache | O | O | O | O | X | O |
이를 그림으로 표현하면 다음과 같습니다.
그림처럼 라이선스들을 BSD, GPL, MPL 타입으로 구분할 수 있습니다.
4. BSD 타입
- Copyleft의 조항을 포함하지 않으면서 소스코드 제공 의무도 없습니다. BSD타입의 다양한 소스코드를 이용하여 제품을 만들고 상용 라이선스로 배포할 수 있습니다.
BSD
- 버전으로 BSD 4-Clause , BSD 3-Clause , BSD 2-Clause, BSD 1-Clause, 0BSD 가 있습니다.
- macOs, IOS, 솔라리스 등의 상업적 운영에 사용되고 있습니다.
- 의무사항
- 재배포시 저작권 표시, 준수 조건 및 보증부인에 대한 고지사항을 소스코드 또는 문서 및 기타 자료에 포함
Apache
- 아파치 재단에서 배포한 라이선스로, 아파치 웹서버 배포를 위해 만들어졌습니다.
- 현재 2.0 버전이 사용되고 있습니다.
- 의무사항
- 수취인에게 라이선스 사본 제공
- 수정사항 안내 문구 첨부
- • 저작권, 특허, 상표, attribution에 대한 고지사항을 소스코드 또는 "NOTICE" 파일 등에 포함
- 최초개발자 등을 위해 보증을 면제하고, 책임 제한
MIT
- MIT 대학에서 학내 공학도를 위해 만든 라이선스입니다.
- MIT 라이선스로 공개된 소스를 이용할 경우 독점 소프트웨어 개발이 가능합니다.
- 의무사항
- • 저작권 안내문구, MIT 라이선스 문구가 모든 복제본에 포함
5. GPL 타입
- 자유 소프트웨어 재단에서 만든 라이선스로 BSD와 비슷하나, Copylegft의 조항이 있습니다.
GPL 2.0
- 리눅스 커널이 GPL 2.0 라이선스를 사용하고 있습니다.
- 의무사항
- 각 복제본에 적절한 저작권 고지와 보증책임이 없음을 명시
- GPL 라이선스를 언급하는 고지사항과 보증책임 관련 고지사항을 원본 그대로 유지
- 프로그램을 양도 받는 모든 이들에게 프로그램과 함께 GPL 라이선스 사본 제공
- 파일 수정의 경우 수정사실과 날짜를 파일에 명기
- 원본저작물과 파생저작물을 GPL 2.0에 의해 배포
- 원본저작물 및 파생저작물에 대한 소스코드를 제공하거나, 요청시 제공하겠다는 약정서 제공
GPL 3.0
- GPL 2.0에서 몇 가지 조항이 추가되었습니다.
- 주요 조항으로는, '사용자 제품(user product)에 대한 인증키 등 설치정보(installation information)를 제공할 것'이 있습니다.
LGPL
- 라이브러리에 사용하기 위해 만들어진 별도의 라이선스입니다.
- 라이브러리까지 GPL의 Copyleft의 조항이 적용되면 응용 프로그램까지 GPL로 배포해야하는 부담이 있어, 라이브러리의 경우 Copyleft의 조항을 적용하지 않으며 소스코드 제공 의무가 없습니다.
- 의무사항
- 각 복제본에 저작권 고지와 보증책임이 없음을 명시
- LGPL 3.0의 조건 및 제7조의 조건에 관한 내용을 있는 그대로 유지
- 프로그램을 양도 받는 모든 이들에게 프로그램과 함께 GPL 및 LGPL 라이선스 사본 제공
- 수정시 수정사실 및 일시를 명시
- 원본저작물과 파생저작물을 LGPL3.0에 의해 배포
- 원본저작물 및 파생저작물에 대한 소스코드를 제공하거나, 요청시 제공하겠다는 약정서 제공
- 사용자제품에 대한 인증키 등 설치정보의 제공
- 응용프로그램을 배포할 경우, LGPL 라이브러리를 사용하고 있다는 사실을 명시
- 사용자가 라이브러리를 수정해도 응용프로그램을 사용할 수 있도록 (예를 들어 오브젝트코드 등을 제공하거나 공유라이브러리 방식등을 이용하여) 허용
AGPL
- 네트워크 서버의 의해 서비스를 제공하는 경우에도 Copyleft와 소스코드 제공의 의무를 지키게 하기 위해 만든 라이선스입니다.
- 의무사항
- GPL 3.0의 의무를 지키면서, 수정버전의 경우 네트워크를 통해 원격으로 대화하는 모든 사용자들에게 해당 소스를 받을 수 있는 기회를 제공
6. MPL 타입
- 주로 기업이 주도하는 라이선스로, BSD와 GPL과 다르게 법률가들이 참여하여 만든 라이선스입니다.
MPL
- Copyleft조항이 있는데, 적용범위와 소스코드 제공범위는 LGPL에 가까습니다.
- 의무사항
- 원본 및 수정코드를MPL 2.0에 의해 배포
- 라이선스 사본을 입수할 수 있는 방법에 대해 고지
- 소스코드를 제공하거나 입수할 수 있는 방법에 대한 고지
- 라이선스 고지사항에 포함된 내용의 수정 금지
- 법령이나 규제로 인해 규정의 준수가 불가능할 경우 관련 제한사항과 영향을 받는 코드에 관한 설명문을 포함할 것
EPL
- Weak Copyleft 조항을 가지고 있습니다.
- 의무사항
- 오브젝트코드로 배포하는 경우 EPL 조건 준수, 보증부인, 책임의 배제, 소스코드의 확보방법 고지
- 소스코드로 배포하는 경우 EPL 라이선스 적용
- EPL 라이선스 사본 포함
- 각 프로그램의 저작권 고지사항을 제거하거나 변경하는 것을 금지
- 각 기여물의 창작자를 식별할 수 있도록 신분을 밝힐 것
- 상업적 배포의 경우 기여자에게 책임이 발생하지 않도록 조치
5. 참고
'삽질' 카테고리의 다른 글
Pillin 프로젝트 백엔드 개발 리뷰 (0) | 2024.02.28 |
---|---|
HttpUrlConnection, RestTemplate, WebClient의 특징과 장단점 (0) | 2023.12.31 |
헥사고날 아키텍처 (0) | 2023.11.28 |
클라우드 네이티브란? (0) | 2023.11.27 |
REST API와 HTTP Header (0) | 2023.10.31 |