오픈소스 라이선스 별 의무사항
재배포하지 않는다면 자유롭게 사용 가능
먼저, 대부분의 오픈소스 라이선스는 준수해야 할 의무 사항을 ‘재배포’시 부여한다. 이 말은 오픈소스를 ‘재배포’하지 않는다면 고지, 소스 코드 공개 등의 의무사항이 발생하지 않고, 자유롭게 사용이 가능하다는 의미이다.
재배포란?
여기서 재배포란 오픈소스의 소스 코드 또는 바이너리의 복사본을 다른 사람에게 제공하는 행위를 의미한다. 앱스토어 배포, 판매, 3rd party 제공, 고객사 납품 등이 재배포에 해당한다. 사내 개발 환경 구축, 테스트 도구 등 사내 용도로만 오픈소스를 사용하는 경우는 재배포에 해당하지 않는다.아무 조건 없이 사용 가능한 라이선스
CC0, Public Domain과 같이 아무런 제한 없이 무료로 사용할 수 있는 라이선스가 있다.
Public Domain
단, Public Domain이라고 선언된 소프트웨어라도 사례별로 법적 검토가 필요한 복잡한 문제가 내재되어 있을 수 있다. 사용하려는 코드가 Public Domain인지 확인이 필요하다면 OSPOOpen Source Program Office에 문의하라.
수월하게 사용 가능한 라이선스
오픈소스 라이선스의 고지 의무는 비교적 수월하게 준수할 수 있다. Permissive License라고 분류할 수 있는 아래의 오픈소스 라이선스는 수월하게 사용 가능하다.
- Academic Free License: AFL 2.1 and AFL 3.0
- Apache License 2.0
- Artistic License 1.0 and Artistic License 2.0
- ASL 1.1 (Apache Software License 1.1)
- Autodesk DWF Toolkit
- Boost Software License
- BSD (occasionally referred to as the “University of California” license)
- BSD 3-clause (sometimes called BSD-new)
- BSD + Patent
- BSD - AES variant
- Creative Commons “Attribution” (CC BY) license
- JSON License (MIT license with the added note: “The Software shall be used for Good, not Evil.”)
- Eclipse Distribution License (BSD variant)
- FreeType Project License
- ISC License
- libjpeg-turbo
- LibTIFF
- Lucent Public License 1.02 (used by Plan 9 now, but different from “the Plan 9 license”)
- Microsoft Public License (MS-PL)
- MIT/X11/Expat
- MIT adapted by CMU
- NCSA
- OpenSSL
- PHP License 2.02 and 3.0
- PostgreSQL License
- Python Imaging Library (PIL) License
- TCP Wrappers
- Python Software Foundation
- STLport License
- TCP Wrappers
- Unicode, Inc. License Agreement - Data Files and Software
- Universal Permissive License (UPL), Version 1.0
- W3C Software license
- X.Net
- Zend Engine License, v2.00
- zlib/libpng
- ZPL
이와 같이 고지 의무를 요구하는 Permissive 라이선스 하의 오픈소스를 포함하는 소프트웨어를 배포할 경우, “저작권 표시”, “라이선스 고지” 등의 의무를 준수해야 한다. 예를 들어, SK텔레콤이 배포하는 모바일 애플리케이션은 요구되는 고지 사항을 “About” 페이지를 통해 제공할 수 있다.
고지할 수 있는 방법은 아래의 “오픈소스 라이선스 의무 준수 활동"을 참고한다.
주의가 필요한 라이선스
Copyleft 라이선스 유형
GPL(GNU General Public License)은 오픈소스를 재배포 시 소스 코드 공개를 요구한다. 오픈소스 자체의 소스 코드 뿐만 아니라 결합한 소스 코드까지 함께 동일한 라이선스 조건으로 공개할 것을 요구해서 Copyleft 성격의 라이선스라고도 한다. Copyleft 라이선스 유형은 오픈소스 라이선스 중에 요구하는 의무사항이 가장 많은 라이선스 유형이기 때문에 이 유형의 라이선스로 배포되는 오픈소스는 사용 시 주의가 필요하다.
자사 코드 분리 방법
대표적인 의무 사항은 이 라이선스로 배포되는 오픈소스를 제품에 포함하여 배포하려면 해당 오픈소스의 소스 코드의 공개가 필요하다. 또한 이 오픈소스와 결합하는 소스 코드까지도 동일한 오픈소스 라이선스를 적용하여 공개해야 한다.
따라서, Copyleft 라이선스 유형의 라이선스가 적용된 오픈소스는 SK텔레콤이 배포하는 제품에 포함 시 주의해야 한다.
이러한 오픈소스는 설계 단계에서부터 Build 시 자사 소프트웨어와 통합되지 않고 Runtime에도 독립된 프로세스로 동작되도록 해야 한다.
Copyleft 라이선스 유형으로 분류할 수 있는 오픈소스 라이선스는 다음과 같다.
- BCL
- Creative Commons “Attribution-ShareAlike” (CC BY-SA) and “Attribution-NoDerivs” (CC BY-ND) licenses
- GNU Classpath’s GPL + exception
- GNU GPL v1, v2, v3
설치정보
GPL-3.0, LGPL-3.0하의 오픈소스가 설치된 제품(User Product)을 배포하기 위해서는 소스 코드 뿐만 아니라 설치 정보 (Installation Information : 사용자가 소소 코드를 빌드하여 다시 제품에 설치하기 위해 필요한 모든 정보 및 방법)를 함께 제공해야 한다. 이는 기업이 준수하기 어려운 조건이기 때문에 일반적으로 GPL-3.0, LGPL-3.0하의 오픈소스는 제품(User Product) 개발 시 사용할 수 없음에 주의하라. - Netscape Public License NPL 1.0 and NPL 1.1
- OSL
- QPL
- Sleepycat License
이와 같이 소스 코드 공개 의무를 요구하는 Copyleft 라이선스 하의 오픈소스를 포함하는 소프트웨어를 배포할 경우, 사용자에게 소스 코드를 직접 제공하거나, 사용자가 요청시 소스 코드를 제공하겠다는 서면 약정서를 제공해야 한다. 이에 대한 세부 절차 및 방법은 다음 가이드를 참고하라. : 오픈소스 컴플라이언스
Weak Copyleft 유형
LGPL (Lesser GPL)도 역시 재배포 시 소스 코드 공개를 요구하는 등 GPL과 동일한 조건을 요구한다. 단, Library 형태의 LGPL하의 오픈소스를 Link 형태로 결합할 경우, LGPL Library 부분만 소스 코드를 공개하면 되고, 결합하는 코드는 공개 의무가 없다는 점이 GPL과 다르다. Weak Copyleft 유형의 라이선스는 이와 같이 소스 코드 공개는 요구하지만, 공개 범위가 Copyleft 유형의 라이선스에 비해 약하다는 특성이 있다.
Weak Copyleft 라이선스 유형으로 분류할 수 있는 오픈소스 라이선스는 다음과 같다.
- GNU LGPL v2.1, v3 (단, LGPL이 적용된 컴포넌트를 dynamically-linked 형태로 사용할 경우, 자사 코드를 공개하지 않는 방식으로 사용할 수 있다.)
- Common Development and Distribution License CDDL 1.0, CDDL 1.1
- CeCILL-C License
- CPL 1.0
- EPL 1.0 and EPL 2.0 (Eclipse Public License)
- IPL 1.0 (IBM Public License)
- Mozilla Public License MPL 1.0, MPL 1.1, and MPL 2.0
- Apple Public Source License (APSL) 2.0
- Ruby
사용 불가 라이선스
다음의 라이선스는 SK텔레콤의 제품/서비스에 사용하기에 적합하지 않은 조건을 포함하고 있다. 따라서, 이러한 라이선스 하의 오픈소스는 사용하지 말아야 한다.
비상업용 라이선스
연구, 학습만을 위해서라고 해도 SK텔레콤 내에서 사용한다면 상업적인 활동으로 간주될 수 있다. 따라서 비상업적으로만 사용할 수 있도록 제한하는 라이선스에 따라 공개된 오픈소스는 SK텔레콤에서 사용할 수 없다. 이러한 비상업용 (Non-Commercial) 라이선스는 다음과 같다.
- CC BY-NC
- CC BY-NC-SA
- CC BY-NC-ND
Network 서비스 제한 라이선스
AGPL, SSPL은 Network 서비스도 배포로 간주하여 의무사항 준수를 요구하는 조항을 포함한다. 이에 따라 Network 서비스를 제공하는 서버에 AGPL로 공개된 오픈소스가 포함되어 있다면, 소프트웨어를 배포하지 않아도, AGPL 오픈소스 뿐만 아니라 함께 링크되어 동작하는 다른 소프트웨어의 소스코드 까지 AGPL로 공개해야 하는 의무가 발생한다. 이 경우, SK텔레콤의 핵심 서버 프로그램까지도 AGPL로 공개해야 하는 위험이 있다. 따라서, SK텔레콤의 제품 및 서비스 개발 시, AGPL 및 SSPL 등의 오픈소스 라이선스가 적용된 오픈소스는 사용할 수 없다.
이러한 Network 서비스 시 조건을 부여하는 라이선스는 다음과 같다.
- AGPL (GNU Affero General Public License)
- SSPL (Server Side Public License)
이러한 라이선스 하의 오픈소스를 반드시 포함해야 하는 경우라면 OSPOOpen Source Program Office에 포함할 수 있는 방법을 문의하라. : Support (opensource@sktelecom.com)
이외 언급하지 않은 라이선스
위에서 분류되지 않은 라이선스가 적용된 오픈소스를 SK텔레콤의 제품에 사용하기 위해서는 사전 검토가 필요하다. OSPOOpen Source Program Office에 사용 가능 여부를 문의하라. : Support (opensource@sktelecom.com)
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.