Skip to main content

Command Palette

Search for a command to run...

Sesac 3일차: 라이선스와 라이브러리

Updated
•4 min read•View as Markdown
Sesac 3일차: 라이선스와 라이브러리
W

constant failure

사용한 툴에 대한 라이선스 분석

제품라이선스링크
GitGPLv2https://git-scm.com/about/free-and-open-source
OpenJDKGPLv2https://www.oss.kr/oss_license_qna/show/8f06b368-9c77-406a-a72b-16d74a2435b9
MavenApache License 2.0https://en.wikipedia.org/wiki/Apache_Maven
TomcatApache License 2.0https://github.com/apache/tomcat/blob/main/LICENSE
Intellij IDEA 커뮤니티 에디션Apache License 2.0https://sales.jetbrains.com/hc/en-gb/articles/360021922640-Can-I-use-Community-Editions-of-JetBrains-IDEs-for-developing-commercial-proprietary-software-
Visual Studio 코드 (소스)MIThttps://www.oss.kr/user_question/show/975acff4-0061-4040-be50-7032e9d2aa1e

1. 아파치 라이선스 2.0

라이선스 대상 프로그램: Maven, Tomcat, Intellij IDEA Community Edition

기능 및 시사점:

  • 허용성: Apache License 2.0은 허용적인 자유 소프트웨어 라이선스입니다. 이 라이선스는 사용자가 어떤 목적으로든 소프트웨어를 사용하고, 배포하고, 수정하고, 수정된 버전의 소프트웨어를 배포할 수 있도록 허용합니다.
  • 저작자 표시: 사용자는 적절한 출처를 표시하고, 라이선스 링크를 제공하며, 변경이 있었는지 표시해야 합니다. 단, 라이선스 허가자가 사용자 또는 사용자의 사용을 보증한다는 것을 암시하는 방식이 아닌 합리적인 방식으로 할 수 있습니다.
  • 특허 라이선스 부여: 라이선스는 저작물을 제작, 제작, 사용, 판매, 판매 제안, 수입 및 기타 방식으로 양도할 수 있는 영구적, 전 세계, 비독점적, 무상, 로열티 면제, 취소 불가능한 특허 라이선스를 부여합니다.
  • 상태 변경: 소프트웨어가 수정된 경우, 수정된 파일에는 변경된 내용이 명시되어야 합니다.
  • 전파성 없음: GPL과 달리, 아파치 라이선스는 "바이러스성"이 아닙니다. 아파치 라이선스 코드를 자신의 독점 프로젝트에 통합하는 경우, 프로젝트가 오픈소스일 필요는 없습니다.

2. GPLv2

이 라이선스에 따라 라이선스가 부여된 프로그램: Git, OpenJDK

기능 및 시사점:

  • Copyleft: GPLv2는 "Copyleft" (즉 Copyright의 반대인) 라이선스로, 파생 저작물은 동일한 라이선스 조건 하에서만 배포할 수 있습니다. 이는 라이선스가 부여된 소프트웨어의 독점적인 수정을 방지합니다.
  • 소스 코드: GPL 소프트웨어의 바이너리를 배포하는 경우 소스 코드도 함께 제공해야 합니다.
  • 호환성 문제: GPLv2는 일부 다른 라이선스와 호환되지 않으므로, 다른 라이선스의 소프트웨어와 함께 GPLv2 소프트웨어를 사용하는 것이 어려울 수 있습니다.
  • 티보화 금지: GPL에 따라 라이선스가 부여된 소프트웨어를 사용하는 하드웨어는 (수정된 버전이 라이선스를 준수하는 한) 사용자가 소프트웨어의 수정된 버전을 사용하는 것을 막을 수 없습니다.
  • 상태 변경: 원본 소프트웨어에 변경한 사항이 있으면 이를 눈에 잘 띄게 표시하거나 공지해야 합니다.

제 코드에 써도 되나요?

  1. Apache License 2.0과 GPLv2: Apache License 2.0에 따른 소프트웨어는 GPLv2에 따른 프로젝트에 포함될 수 있지만, 그 반대의 경우는 불가능합니다. 그 이유는 GPL 라이선스의 Copyleft 특성으로 인해 아파치 프로젝트에 GPL 코드를 포함할 경우 결합된 전체 저작물에 대해 GPL 라이선스가 요구되기 때문입니다.
  2. 독점 소프트웨어에 통합: 독점 소프트웨어에 통합하려는 경우:
    • Maven 및 Tomcat:** 가능하지만 적절한 저작자 표시를 제공해야 합니다.
    • Git 및 OpenJDK:** 소프트웨어를 GPL로 만들지 않고는 사용할 수 없습니다.
기능 / 프로그램Apache License 2.0 (Maven, Tomcat)GPLv2 (Git, OpenJDK)
라이선스 유형허용적Copyleft
수정 허용 여부예예
재배포 허용 여부예예 (조건부)
저작자 표시 필요예예
특허 부여예지정되지 않음
상태 변경 필요예예
독점적 사용 허용예아니요(배포하는 경우)
다른 소프트웨어와의 호환성대부분(GPLv3 사용 안 함)제한적(GPL로 인해)
참고사항전파성 없음독점적 수정 방지

결론

라이선스를 선택하거나 특정 라이선스에 따라 소프트웨어를 사용할 때는 권리와 의무를 모두 인식하는 것이 중요합니다. Apache License 2.0은 특히 상업적 사용을 위해 더 큰 유연성을 제공하는 반면, GPL은 소프트웨어의 무료 개방성을 보장하지만 통합 및 재배포 측면에서 더 제한적일 수 있습니다. 라이선스가 다른 여러 소프트웨어 구성 요소를 통합할 때는 항상 호환성을 확인하여 법적 문제를 방지하세요.

다음은 1년 전(2022년)의 오픈 소스 현황에 대한 대략적인 지도입니다:

오픈소스 라이선스 파이 차트

Hugging Face Models

Hugging Face는 대부분 오픈소스인 다양한 모델을 호스팅합니다. 모델 검색 페이지의 라이선스 필터를 사용하여 동일한 파이 차트를 만들어 봤습니다. (구글 시트 요청시 제공 가능)

Hugging Face Model Licenses

API, 라이브러리, 프레임워크, 플랫폼의 정의

  • API(Application Programming Interface; 애플리케이션 프로그래밍 인터페이스): 소프트웨어 구성 요소 또는 서비스를 구축하고 상호 작용하기 위한 일련의 규칙 및 프로토콜.
  • 라이브러리: 소프트웨어 프로그램에서 사용할 수 있는 미리 컴파일된 루틴(함수/클래스/메소드)의 모음.
  • 프레임워크: 애플리케이션 또는 모델을 구축하기 위한 기본 구조를 제공하는 포괄적인 환경.
  • 플랫폼: 소프트웨어 또는 도구를 포괄하는 환경으로, 특정 기능 집합을 용이하게 합니다.

소프트웨어 개발과 AI/ML의 경우:

카테고리소프트웨어 개발AI/ML
API소프트웨어 구성 요소 간의 상호 작용을 촉진합니다.사전 빌드된 AI 기능에 대한 액세스를 제공합니다.
장점: 빠른 통합, 표준화.장점: 신속한 AI 통합, 심층적인 ML 지식이 필요하지 않음.
단점: 외부 서비스에 대한 의존성, 잠재적 비용.단점: 사용자가 할 수 있는 부분이 적고 타사 서비스에 대한 의존도가 높습니다.
라이브러리미리 컴파일된 루틴으로 개발자를 지원합니다.개발자에게 AI/ML 전용 도구를 제공합니다.
장점: 재사용성, 일관성, 효율적인 코딩.장점: 유연성, 커뮤니티 지원.
단점: 필요없을 수도 있는 코드의 습관적 사용, 종속성 관리.단점: 낮은 수준의 작업에는 더 광범위한 지식이 필요합니다.
프레임워크애플리케이션 개발을 위한 구조를 제공합니다.AI/ML 개발을 위한 구조를 제공합니다.
장점: 표준화, 상용구 코드 감소.장점: 포괄적인 도구, 성능 최적화.
단점: 가파른 학습 곡선, 잠재적 오버헤드.단점: 가파른 학습 곡선, 하드웨어에 따라 편차가 심하기도 합니다.
플랫폼소프트웨어 실행을 위한 환경.전체 AI/ML 라이프사이클을 처리합니다.
장점: 일관된 사용자 경험, 전용 에코시스템.장점: 엔드투엔드 솔루션, 확장 가능한 통합 도구.
단점: 플랫폼 종속성, 유연성 저하.단점: 플랫폼 종속성, 비용.

참고자료:

  • https://choosealicense.com/licenses/
  • https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses
  • https://checkmarx.com/blog/open-source-licenses-insights-and-metrics/
  • https://velog.io/@bcl0206/API-vs-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%ED%92%80%EB%A6%AC%EC%A7%80-%EC%95%8A%EB%8A%94-%EB%AF%B8%EC%8A%A4%ED%84%B0%EB%A6%AC%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC
  • https://blog.gaerae.com/2016/11/what-is-library-and-framework-and-architecture-and-platform.html
  • https://toughw.tistory.com/363
  • https://minimax95.tistory.com/entry/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4-%EC%A0%95%EB%A6%AC