[정리] 라이선스(저작권)

2023. 5. 3. 09:47·개발/정리
728x90
반응형

먼저 한글로 라이센스라고 알고 있었지만 라이선스라고 한다.

 

개발자들에겐 라이선스란 굉장히 중요한 부분이다.

오픈소스를 가져다 기능을 구현했지만 어느날 그 오픈소스의 라이선스때문에 코드를 강제적으로 오픈해야 될수도 있다.

또한 상업적사용을 제한할 수도 있기 때문에 사용하기전 해당 소스의 라이선스를 한번 확인하는것이 중요하다.

 

현재 소프트웨어 라이선스 분류는 아래와 같다.

출처 : https://www.oss.kr/oss_license

이 중 흔히 볼수 있는 라이선스는 MIT, Apache2.0, GPL 등이 있다.

 

1. MIT

MIT 라이선스는 MIT공대에서 자기 학교의 개발자들을 위해 개발한 라이선스이다.

MIT 라이선스를 따르는 소프트웨어를 개조한 제품을 반드시 오픈 소스로 배포해야 한다는 규정이 없으며  다른 엄격한 라이선스를 피하려는 사용자들에게 인기가 있다.

배포시 저작권 안내문구, MIT 라이선스 문구가 모든 복제본에 포함되어야 한다는 규정외에 다른 제한적인 규정은 없다.

그래서 npm 라이브러리나 java 라이브러리들을 보면 MIT가 가장 흔하게 볼수 있다.

 

2. Apache2.0

개인적으로 MIT 다음으로 흔하게 봤던 Apache2.0 라이선스이다.

아파치 라이선스는 아파치 웹서버의 배포를 위해 만들어진 라이선스이다.

배포시 수취인에게 라이선스 사본을 제공하고, 수정된 파일에 대해 수정사항을 표시한 안내문구를 첨부해야한다.

그리고 저작권, 특허, 상표, attribution에 대한 고지사항을 소스코드 또는 "NOTICE" 파일 등에 포함되어야 한다.

 

3. GPL

라이브러리마다 보통 저작권 표시가 되어있고 상업적이용이 가능하므로 위 2개의 경우는 개발자 입장에서 크게 신경쓸 것은 없다.

하지만 GPL은 소스코드를 공개해야 될 수도 있기 때문에 까다로운 라이선스이다.

그렇기 때문에 GPL의 소스코드 전체 혹은 일부를 사용했을때 어디까지 소스코드 공개를 해야 하는지 의문이 발생한다.

우선 소스코드 공개의무가 발생하려면 물리적인 프로그램의 이동인 '배포'가 발생해야 한다.

배포시 GPL 파생 저작물로 판단될경우 해당 어플리케이션의 코드는 모두 공개해야 한다.

 

예를 들면 나는 MaraDB로 백엔드를 만들어  어플리케이션을 구현하고 결제시스템까지 넣어 상업적으로 어플리케이션을 이용하려고 한다.

나는 해당 어플리케이션의 클라이언트를 사용자들에게 제공하여 상업적으로 이용하는 것이다.

이런 경우 나는 유저들에게 네트워크 서비스를 제공하기 때문에 GPL이 적용되지 않는다.

다만 클라이언트에 MariaDB 라이브러리를 직접적으로 사용했다면 공개 해야 한다고 한다.

 

다른 케이스로는 이 어플리케이션 자체를 다른 업체에게 판매할 경우가 문제가 될 수 있다.

이때는 GPL2.0의 파생 저작물로 판단하여 코드를 공개해야 하는 경우도 있다.

 

자세한 케이스는 각자 따져봐야 할것이다.

 

라이선스 확인 방법

1. npm 

npm 라이브러리들은 npm 사이트에서 해당 라이브러리 이름을 검색 한후 라이선스가 표시된다.

출처 : https://www.npmjs.com/package/react

오른쪽에 라이선스로 MIT가 적혀져있다.

 

여담으로 리액트로 개발한 웹에서 문제가 생겨  리액트를 개발한 메타(전 페이스북)을 고소할 경우에 리액트에 대한 라이선스는 뺏긴다고 한다.

그래서 리액트로 개발한 웹은 라이선스가 없는 상태에서 고소를 진행하기 때문에 불리하다고 한다.

 

2. java spring boot

gradle7+ 기준

 

GitHub - jk1/Gradle-License-Report: A plugin for generating reports about the licenses of third party software using Gradle

A plugin for generating reports about the licenses of third party software using Gradle - GitHub - jk1/Gradle-License-Report: A plugin for generating reports about the licenses of third party softw...

github.com

build.gradle 에 라이브러리 추가

plugins {
  id 'com.github.jk1.dependency-license-report' version '2.0'
}

gradle 빌드 후 

해당 Task 더블클릭 후 build -> reports -> dependency-license 폴더에서 확인 가능

 

 

참고

https://www.olis.or.kr/license/Detailselect.do?lId=1002 

https://www.olis.or.kr/license/Detailselect.do?lId=1006

https://www.oss.kr/oss_license

https://www.oss.kr/oss_guide/show/044d96fd-413d-4ab3-ad72-4776d2b7e002

728x90
반응형

'개발 > 정리' 카테고리의 다른 글

[정리] Youtube가 가진 기능 도메인으로 정리해보기  (0) 2023.05.10
[정리] 객체지향의 4가지 특징  (0) 2023.05.03
[정리] 변수란 무엇일까?  (0) 2023.05.02
[정리] ubuntu java 개발자 세팅 (그래픽카드 드라이버 설치, vscode, ibus, LibreOffice, virtualBox, openJDK)  (0) 2023.04.24
[정리] 브라우저의 작동 방식  (0) 2023.04.11
'개발/정리' 카테고리의 다른 글
  • [정리] Youtube가 가진 기능 도메인으로 정리해보기
  • [정리] 객체지향의 4가지 특징
  • [정리] 변수란 무엇일까?
  • [정리] ubuntu java 개발자 세팅 (그래픽카드 드라이버 설치, vscode, ibus, LibreOffice, virtualBox, openJDK)
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    html
    node
    30일챌린지
    도커
    node.js
    js
    하이퍼레저
    nodejs
    go언어
    erc20
    컨테이너
    블록체인
    30일 챌린지
    mysql
    명령어
    ERC721
    React
    go
    CSS
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[정리] 라이선스(저작권)
상단으로

티스토리툴바