오픈 소스 소프트웨어(OSS)를 사용할 때, 오픈 소스 라이센스를 이해하는 것은 매우 중요합니다.
오픈 소스 라이센스는 소프트웨어를 어떻게 사용하고 배포할 수 있는지에 대한 규칙을 명시합니다.
이 블로그에서는 초보자도 쉽게 이해할 수 있도록 다양한 오픈 소스 라이센스의 종류와 주요 특징을 설명해 드리겠습니다.
1. 오픈 소스 라이센스란?
오픈 소스 소프트웨어는 누구나 자유롭게 사용할 수 있지만, 그 사용에는 일정한 조건과 제약이 따릅니다.
이러한 조건들은 오픈 소스 라이센스에 의해 정의되며, 각 소프트웨어는 자신만의 라이센스를 가지고 있습니다.
오픈 소스 라이센스는 주로 두 가지 범주로 나뉩니다:
- 카피레프트(Copyleft) 라이센스: 소프트웨어를 수정하거나 재배포할 경우, 해당 소프트웨어와 동일한 라이센스를 적용해야 합니다.
- 퍼미시브(Permissive) 라이센스: 소프트웨어를 수정하거나 재배포할 때, 꼭 동일한 라이센스를 적용하지 않아도 됩니다.
2. 주요 오픈 소스 라이센스 종류
A. GPL (General Public License)
GPL 라이센스는 카피레프트 라이센스의 대표적인 예입니다. 이 라이센스를 따르는 소프트웨어를 수정하거나 재배포할 경우, 동일한 GPL 라이센스를 적용해야 합니다. 즉, 파생물도 반드시 소스 코드를 공개해야 합니다.
- 소스 코드 공개: 파생물도 오픈 소스로 공개해야 함.
- 변경 허용: 누구나 수정 가능.
- 배포 조건: 수정본 배포 시에도 동일한 라이센스 적용.
대표적인 예시: Linux 커널, WordPress
B. LGPL (Lesser General Public License)
LGPL 라이센스는 GPL의 변형으로, 주로 라이브러리에 사용됩니다. LGPL을 사용하는 라이브러리를 사용해 개발한 소프트웨어는 GPL과 달리 소스 코드를 공개하지 않아도 됩니다.
- 소스 코드 공개: 라이브러리 자체 수정 시 공개해야 함.
- 자유로운 사용: 소프트웨어는 비공개 가능.
대표적인 예시: FFmpeg, GNU C Library
C. MIT License
MIT 라이센스는 매우 퍼미시브한 라이센스 중 하나입니다. 간단한 조건만 지키면 거의 자유롭게 사용할 수 있습니다.
- 자유로운 사용: 상업적 사용 및 비공개 가능.
- 저작권 표기: 원작자에 대한 저작권 표기 필요.
대표적인 예시: React, Vue.js, jQuery
D. Apache License 2.0
Apache 라이센스는 퍼미시브 라이센스로, 사용자의 자유를 보장하면서도 특허 관련 조항이 포함되어 있습니다. 이 라이센스는 특허와 관련된 문제를 명확히 정의하여 소송을 방지합니다.
- 특허 명시: 특허에 대한 권리 명시.
- 저작권 표기: 원작자 표기 필요.
대표적인 예시: Apache Hadoop, TensorFlow
E. BSD License
BSD 라이센스는 MIT 라이센스와 비슷한 퍼미시브 라이센스로, 소프트웨어를 자유롭게 사용할 수 있습니다. BSD 라이센스에는 2-clause와 3-clause 버전이 있으며, 3-clause 버전에는 추가적인 광고 조항이 포함됩니다.
- 자유로운 사용: 상업적 사용 및 비공개 가능.
- 저작권 표기: 원작자 표기 필요.
대표적인 예시: FreeBSD, OpenSSL
F. MPL (Mozilla Public License)
MPL은 모질라 재단에서 만든 라이센스로, GPL과 퍼미시브 라이센스의 중간쯤에 위치합니다. 소스 코드를 수정하면 수정한 부분만 공개하면 되고, 나머지 코드는 비공개로 유지할 수 있습니다.
- 소스 코드 공개: 수정한 파일만 공개하면 됨.
- 자유로운 사용: 상업적 사용 가능.
대표적인 예시: Firefox, Thunderbird
G. EPL (Eclipse Public License)
EPL은 Eclipse Foundation에서 만든 라이센스로, MPL과 유사하지만 기업들이 사용하기에 더 적합하도록 설계되었습니다. 수정된 코드만 공개하면 되고, 다른 부분은 비공개로 유지할 수 있습니다.
- 소스 코드 공개: 수정한 파일만 공개.
- 상업적 사용 가능: 일부 비공개 가능.
대표적인 예시: Eclipse IDE, Jetty
H. CDDL (Common Development and Distribution License)
CDDL은 Sun Microsystems에서 만들어졌으며, 주로 Solaris와 같은 프로젝트에 사용됩니다. MPL과 유사하게 소스 코드를 수정한 부분만 공개하면 됩니다.
- 소스 코드 공개: 수정된 부분만 공개.
- 자유로운 사용: 상업적 사용 가능.
대표적인 예시: OpenSolaris, NetBeans
I. AGPL (Affero General Public License)
AGPL은 GPL의 변형으로, 클라우드 서비스에서의 소스 코드 사용을 규제합니다. AGPL을 사용하는 소프트웨어를 웹 서비스로 제공할 경우, 해당 소스 코드도 공개해야 합니다.
- 소스 코드 공개: 웹 서비스에서도 코드 공개 필수.
- 변경 허용: 누구나 수정 가능.
대표적인 예시: MongoDB (이전 버전), Nextcloud
3. 오픈 소스 라이센스 선택 시 주의사항
오픈 소스 소프트웨어를 사용하거나 개발할 때는 다음 사항을 꼭 기억하세요:
- 라이센스 조건 준수: 각 라이센스의 조건을 반드시 이해하고 준수해야 합니다.
- 상업적 사용: 상업적으로 소프트웨어를 사용하려면 라이센스가 허용하는지 확인하세요.
- 파생물 라이센스: 소프트웨어를 수정하거나 재배포할 때 동일한 라이센스를 적용해야 하는지 확인하세요.
오픈 소스 라이센스는 소프트웨어 사용에 대한 명확한 규칙을 제공합니다.
이를 잘 이해하면 오픈 소스를 안전하게 사용하고, 기여하며, 상업적으로 활용할 수 있습니다.
다양한 오픈 소스 라이센스를 통해 자신에게 맞는 소프트웨어를 선택하고, 프로젝트의 요구 사항에 맞게 사용할 수 있기를 바랍니다.
공감과 댓글은 저에게 큰 힘이 됩니다.
Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.