REUSE 라이선스

* 본 문서는 REUSE 홈페이지(https://reuse.software) 에서 발췌하였으며 자세한 내용은 해당 홈페이지를 참조바랍니다.

소프트웨어의 재사용

REUSE는 모두에게 라이선스를 쉽게 부여하여 자유 소프트웨어 라이선스가 가진 근본적인 문제를 해결합니다. 예를 들면 어떤 라이선스가 부여되었고 누가 저작권을 소유하는가에 대한 문제를 해결할 수 있으며 그 방법은 아주 간편합니다.

  • 라이선스 선택 및 제공
  • 각 파일에 저작권 및 라이선스 정보 추가
  • 재사용 준수 확인

다양한 라이선스로 배포된 다른 프로젝트의 소프트웨어를 재사용할 때는 특히 저작권 및 라이선스를 사용하기 어렵습니다. REUSE는 유럽 자유소프트웨어 재단(FSFE)에서 무료 소프트웨어 프로젝트를 보다 쉽게 라이센싱할 수 있도록 일련의 권장 사항을 제공하기 위해 시작했습니다. 이러한 권장 사항을 사용하면 작업이 릴리즈된 라이선스를 보다 쉽게 선언할 수 있을 뿐만 아니라 컴퓨터가 프로젝트의 라이선스 부여 방법을 쉽게 이해할 수 있습니다.

개발자를 위한 도구

프로젝트의 라이선스는 다른 사람이 당신의 소프트웨어를 재사용 할 수 있는 조건을 설정합니다. 그렇기 때문에 소프트웨어의 어느 부분이 어떤 라이선스 아래에 있는지 모두 분명하게 해야 합니다. REUSE는 개발자의 의도를 보호하고 도와줍니다. Tool 섹션에서 Tool, CI/CD 프로세스를 포함하여 알아볼 수 있습니다.

간단한 재사용

무료 소프트웨어를 사용하면 다른 사람의 작업을 기반으로 신속하게 작업할 수 있습니다. 그러나 외부 구성요소를 많이 사용할수록 저작권 소유자와 라이선스 선택에 대한 개요를 유지하는 것이 더 어려워집니다. REUSE를 사용하면 각 파일에 필요한 정보가 저장되며, 저장공간에는 사용된 모든 라이선스가 포함되어 있습니다.

라이선스 준수

소프트웨어 라이선스 검사를 지원하는 툴이 많이 있으며, 데이터베이스와 fuzzy heuristics를 사용하는 툴도 많습니다. REUSE 인증 프로젝트를 통해 법률 전문가와 CCO의 업무가 훨씬 쉬워집니다. BOM를 만드는 작업은 간단한 명령 하나만 있으면 가능합니다. REUSE는 다른 도구를 대체하는 것이 아니고 추가된 도구입니다.

REUSE 호환 방법

튜토리얼에서는 소프트웨어 프로젝트를 재사용 하도록 만드는 방법에 대해 기본적인 방법을 설명합니다. 이 문서가 끝날 때쯤, 모든 파일에 저작권 및 라이선스가 표시되어 있을 것이며, linter 도구를 사용하여 이를 확인할 수 있을 것입니다.

프로젝트를 REUSE 호환으로 만드는 것은 간단하게 다음의 세 가지 단계로 수행할 수 있습니다.

  • 라이선스 선택 및 제공
  • 각 파일에 저작권 및 라이선스 정보 추가
  • REUSE 준수 확인

본문에서 프로젝트의 디렉토리는 다음과 같다고 가정할 것입니다.

project/
├── img/
│ ├── cat.jpg
│ └── dog.jpg
├── src/
│ └── main.c
├── .gitignore
├── Makefile
└── README.md

본문의 단계를 자신의 컴퓨터에서 작업하려면 예제 저장소(example repository)를 clone하십시오. master 브랜치는 성공적인 결과이고, noncompliant 브랜치는 위의 구조와 일치합니다.

라이선스 선택 및 제공

가장 먼저 해야 할 일은 라이선스를 고르는 것입니다. 본문에서는 GNU General Public License v3.0 또는 이후 버전(GPL)을 선택했다고 가정합니다. 단순히 라이선스를 선택하는 것을 넘어, 라이선스를 당신의 프로젝트 디렉토리 안에 넣을 필요가 있습니다.

SPDX License List에서 라이선스를 찾으십시오. SPDX는 라이선스와 저작권 정보를 전달하기 위한 개방형 표준입니다.
각 라이선스는 짧은 형식의 SPDX 라이선스 식별자로 고유하게 식별됩니다. 선택한 라이선스의 SPDX 라이선스 식별자는 GPL-3.0 버전 또는 그 이후 버전입니다.

루트에 프로젝트에서 사용하는 모든 라이선스가 포함된 LICENSES 디렉터리를 생성하십시오. 그런 다음 license-list-data 저장소에서 라이선스를 다운로드하여 LICENSES 디렉터리에 넣으십시오.

각 파일에 저작권 및 라이선스 정보 추가

/*
* SPDX-FileCopyrightText: 2019 Jane Doe <jane@example.com>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/

SPDX-FileCopyrightText 태그는 파일 내용의 출판 연도와 저작권 소유자를 기록합니다. FAQ에서 출판 연도 및 저작권 소유자에 대해 더 알아볼 수 있습니다.

SPDX-License-Identifier 태그 뒤에 유효한 SPDX 라이선스 표현(일반적으로 라이선스의 SPDX License Identifier)이 표시됩니다.

각 파일에는 항상 이 두 개의 태그가 헤더에 포함되어 있어야 합니다. 저작권 소유자 또는 라이선스가 여러 개인 경우 태그를 여러 번 사용할 수 있습니다.

예제 프로젝트에서는 이 헤더 정보를 사용하여 Makefile 및 README.md도 편집합니다. 물론 그에 상응하는 주석 구문(comment syntax)도 함께 사용합니다.

이진 파일과 주석을 붙일 수 없는 파일들

GPL-3.0 버전 이상에서 이미지 파일에 라이선스를 부여하기를 바랄 수도 있습니다. 하지만 이미지 및 기타 이진 파일들은 사람들이 쉽게 편집할 수 있는 주석 헤더를 가지고 있지 않습니다. 다른 예로는 자동으로 생성된 파일과 설명이 중요하지 않은 특정 데이터 및 구성 파일이 있습니다.

이것을 우회하는 간단한 방법이 있습니다. 각각 위와 같은 라이선스 및 저작권 소유자에 대한 동일한 정보를 포함하는 cat.jpg.license 와 dog.jpg.license 파일을 생성하는 것입니다.

라이선스 정보를 변경합니다.

cat.jpg와 dog.jpg는 GPL에 따라 라이선스가 부여되지는 않았지만 Max Mehl이 소유한 Creative Commons Attribution 4.0 International 라이선스가 부여되었다는 것을 확인할 것입니다.

이 라이선스의 SPDX 라이선스 식별자는 CC-BY-4.0입니다. 앞서 GPL-3.0 버전 이상에서 사용한 것과 동일한 단계에 따라 LICENSES/CC-BY-4.0.txt 파일을 생성합니다. 그 다음 cat.jpg.license및 dog.jpg.license 를 편집할 수 있습니다.:

SPDX-FileCopyrightText: 2019 Max Mehl <max.mehl@fsfe.org>
SPDX-License-Identifier: CC-BY-4.0

빌드 아티팩트

프로그램을 컴파일할 때 src/main.o와 같은 빌드 아티팩트를 생성합니다. 이러한 파일에 대한 라이선스 정보를 제공할 필요는 없습니다. 이러한 빌드 아티팩트를 무시하려면 .gitignore 파일을 사용합니다. REUSE 는 .gitignore의 내용을 준수합니다.

중요하지 않은 파일

예를 들어 .gitignore 같은 구성 파일처럼 특별히 저작권이 있다고 볼 수 없는 파일이 당신의 프로젝트에도 있을 것입니다. 당신은 이 파일들에 라이선스를 부여하지 않을 수도 있지만, REUSE의 기본 개념은 모든 파일에 명확하게 해당 파일의 저작권 및 라이선스가 표시되어 있다는 것입니다.

이 파일에 대한 저작권을 행사하지 않으면 CC0 license를 사용할 수 있습니다. 이 방법은 파일을 공용 도메인에 넣는 것과 기능적으로 동일합니다. 포함할 파일을 편집합니다.

# SPDX-FileCopyrightText: 2019 Jane Doe <jane@example.com>
#
# SPDX-License-Identifier: CC0-1.0

결과

당신의 프로젝트 트리는 이제 이렇게 보일 것입니다.

project/
├── img/
│ ├── cat.jpg
│ ├── cat.jpg.license
│ ├── dog.jpg
│ └── dog.jpg.license
├── LICENSES/
│ ├── CC0-1.0.txt
│ ├── CC-BY-4.0.txt
│ └── GPL-3.0-or-later.txt
├── src/
│ └── main.c
├── .gitignore
├── Makefile
└── README.md

REUSE 규정 준수 확인

이제 모든 파일에 저작권과 사용권을 표시했으므로, 누락된 것이 없는지 확인해야 합니다. 이를 위해 사용자가 사용할 수 있는 linter 도구를 제공합니다. 전체 설명서(full documentation)를 확인하거나 혹은 아래의 빠른 단계를 확인할 수 있습니다.

$ # Install the dependencies for the tool.
$ sudo apt install python3 python3-pip
$
$ # Install the tool
$ pip3 install --user fsfe-reuse

실행 파일이 이제 $HOME/.local/bin/에 있습니다. 실행 파일이 $PATH에 있는지 확인한 후 프로젝트 디렉토리로 이동하여 linter를 실행합니다.

$ cd path/to/project/
$ reuse lint
# SUMMARY

* Bad licenses:
* Missing licenses:
* Unused licenses:
* Used licenses: CC-BY-4.0, CC0-1.0, GPL-3.0-or-later
* Read errors: 0
* Files with copyright information: 6 / 6
* Files with license information: 6 / 6

Congratulations! Your project is compliant with version 3.0 of the REUSE Specification :-)

마지막 줄에서 볼 수 있듯이, linter 도구는 프로젝트가 지금 REUSE를 준수하는지 확인합니다! 다른 숫자의 의미를 알아보려면 REUSE 도구에 대한 전체 문서를 살펴보시기 바랍니다.

자주 하는 질문

REUSE에 대한 3단계 요약

  • 1.라이선스를 선택하고 제공하십시오.

    프로젝트에 적용할 무료 소프트웨어 라이선스를 선택하십시오. SPDX License List에서 라이선스의 SPDX 식별자를 찾으십시오. license-list-data 저장소에서 라이선스의 라이선스 텍스트를 다운로드하여 LICENSES/디렉토리에 넣으십시오.

  • 2.각 파일에 저작권 및 라이선스 정보 추가

    그런 다음 모든 파일에 대해 다음 내용을 포함하도록 헤더를 편집하십시오.

    # SPDX-FileCopyrightText: [year] [copyright holder] <[email address]>
    #
    # SPDX-License-Identifier: [identifier]
  • 3.REUSE 규정 준수 확인

    REUSE tool을 사용하여 이러한 단계 중 일부를 자동화하고, 모든 작업이 올바르게 수행되었는지 확인하십시오.

저작권이란?

저작권은 창작물에 대한 독점권을 누군가에게 부여하는 법적 구성물이며 이때 가장 중요한 독점권은 이름에 있습니다. : 사본 제작권. 저작권 소유자만이 자신의 저작물의 새로운 사본을 사람들에게 제공할 수 있습니다.

보통 저자는 저작권 소유자이지만, 종종 저자의 고용주에게 양도되기도 합니다. 대부분의 경우 저작권을 얻기 위해 어떤 것도 할 필요가 없습니다. 창조적인 작품을 만들면 저자(또는 고용주)는 이에 대한 저작권을 즉시 취득합니다.

라이선스란?

소프트웨어와 관련된 저작권 문제 중 하나는 기본적으로 소프트웨어를 공유 할 수 없게 만든다는 것인데 라이선스는 그것을 바꿀 수 있습니다. 라이선스는 저작권 보유자로부터 라이선스 수취인이 소프트웨어를 사용할 수 있도록 허용하는 조항을 정의합니다.

만약 라이선스를 통해 수취인이 소프트웨어를 사용, 연구, 공유 및 개선할 수 있는 경우 그 소프트웨어는 무료 소프트웨어에 해당됩니다

라이선스 선택

항상 무료 소프트웨어 라이선스 선택해야 합니다. 그것을 제외하고, 어떤 라이선스를 선택할지는 본인에게 달려있습니다. 기존 프로젝트에 기여하는 경우, 그 프로젝트와 동일한 라이선스로 변경 사항을 릴리즈해야 합니다.

그 외에도, Free Software Foundation, choosealicense.com, joinup.eu에 몇 가지 좋은 권장사항이 있습니다. 이러한 라이선스들은 각각 다른 내용을 강조하면서 고유한 내용을 함께 제공한다는 점에 유의하십시오.

무엇보다 자유로움을 중시한다면 무료 소프트웨어 라이선스를 선택해야 합니다.

SPDX란?

SPDX는 Software Package Data Exchange의 약자입니다. 리눅스 재단의 프로젝트이며 REUSE가 만들어지는 기반입니다. SPDX는 프로젝트와 사람 간에 저작권 및 라이선스 정보를 공유하는 표준화된 방법을 정의합니다. SPDX는 많은 라이선스에 대한 표준화된 식별자를 정의하는 SPDX License List를 유지합니다.


Copyright © 2019 Free Software Foundation Europe e.V. – Imprint & Privacy, Transparency Committment
REUSE URL: https://reuse.software

+