Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

Important

This PEP is a historical document. The up-to-date, canonical spec, Licensing examples and user scenarios, is maintained on the PyPA specs page.

×

See the PyPA specification update process for how to propose changes.

부록: 사용자 시나리오

초록

이 문서는 실제 사용자 시나리오에 PEP 639를 적용하는 방법을 안내합니다.

사용자 시나리오

다음은 사용자 관점에서 흔히 볼 수 있는 여러 사용 사례를 다루며, 각 사례에 대한 안내를 제공합니다. 다음 내용은 법률 자문으로 간주해서는 안 된다는 점에 유의하십시오. 자신의 상황에 대한 구체적인 사항이 확실하지 않다면 해당 관할 지역의 자격을 갖춘 법률 전문가와 상담하십시오.

배포하지 않을 비공개 패키지가 있습니다

패키지를 공개적으로, 즉 회사, 조직 또는 가정 외부에 공유하지 않는다면 정식 라이선스를 포함하는 것이 대개 엄격하게 필요하지는 않으므로, 여기서 반드시 추가 작업을 할 필요는 없습니다.

그렇더라도 패키지 구성에 라이선스 표현식으로 LicenseRef-Proprietary를 포함하거나, 프로젝트 디렉터리 루트의 LICENSE.txt 파일에 저작권 표시와 법적 고지를 포함하거나, 둘 다 하는 것이 좋습니다. 이 파일은 패키징 도구가 자동으로 포함합니다.

법적 제약 없이 제 작업물을 공유하고 싶을 뿐입니다

라이선스를 포함해야 하는 것은 아니지만, 포함하지 않으면 아무도 여러분의 작업물을 다운로드하거나 사용하거나 개선할 권한을 갖지 못하므로, 이는 아마도 실제로 원하는 것과 정반대일 것입니다. 그 대신 MIT 라이선스가 훌륭한 선택입니다. 간단하고 널리 사용되며, 누구나 여러분의 작업물로 원하는 것은 무엇이든 할 수 있도록 허용하기 때문입니다(여러분을 고소하는 것은 제외되는데, 이 역시 아마 원하지 않으실 것입니다).

이를 적용하려면 라이선스 텍스트를 저장소 루트의 LICENSE.txt라는 파일에 붙여 넣고, 저작권 줄에 연도와 이름을 추가하기만 하면 됩니다. 그런 다음 패키징 도구가 지원한다면 pyproject.toml의 [project] 아래에, 그렇지 않다면 도구의 구성 파일이나 섹션에 license = "MIT"를 추가하기만 하면 됩니다. 이제 끝났습니다!

특정 라이선스로 프로젝트를 배포하고 싶습니다

특정 라이선스를 사용하려면, 라이선스 텍스트가 LICENSE 또는 COPYING으로 시작하는 파일에 아직 없는 경우 그 텍스트를 저장소 루트의 LICENSE.txt 파일에 붙여 넣고, 패키징 도구가 지원한다면 pyproject.toml의 [project] 아래에, 그렇지 않다면 도구의 구성 파일에 license = "LICENSE-ID"를 추가하기만 하면 됩니다. LICENSE-ID와 복사해서 쓸 수 있는 라이선스 텍스트는 ChooseALicense나 SPDX 같은 사이트에서 찾을 수 있습니다.

널리 쓰이는 여러 코드 호스팅 서비스, 프로젝트 템플릿, 패키징 도구가 라이선스 파일을 대신 추가해 줄 수 있으며, 앞으로는 라이선스 표현식도 지원할 수 있습니다.

이미 라이선스가 적용된 기존 패키지를 유지 관리하고 있습니다

프로젝트에 이미 라이선스 파일과 메타데이터가 있다면, 몇 가지만 조정하면 새 기능을 활용할 수 있습니다.

프로젝트 구성 파일에서 license(pyproject.toml의 [project] 테이블) 아래에, 또는 사용하는 패키징 도구의 해당 위치에 라이선스 표현식을 입력하고, 레거시 license 테이블 하위 키나 License :: 분류자는 반드시 제거하십시오. 기존 license 값이 이미 유효한 라이선스 표현식일 수도 있습니다(예: MIT, Apache-2.0 OR BSD-2-Clause 등). 그렇지 않다면 SPDX 라이선스 목록에서 프로젝트에 사용된 라이선스에 해당하는 식별자를 확인하십시오.

라이선스 파일은 pyproject.toml의 [project] 아래 license-files.paths 또는 license-files.globs에 나열하거나, 그렇지 않으면 사용하는 도구의 설정 파일에 반드시 나열하십시오.

이것이 실제로 어떻게 동작하는지 보여 주는 간단하지만 완전한 실제 예시는 기본 예시 항목을 참조하십시오. 패키징 도구가 레거시 라이선스 메타데이터를 자동으로 변환하는 기능을 지원할 수도 있습니다. 자세한 내용은 사용하는 도구의 문서를 확인하십시오.

제 패키지에는 다른 라이선스가 적용된 코드가 포함되어 있습니다

벤더링한 의존성이나 다른 오픈 소스 소프트웨어에서 복사한 파일처럼 다른 라이선스가 적용되는 타인의 코드가 프로젝트에 포함되어 있다면, 라이선스 표현식을 구성하여 관련된 라이선스들과 그 사이의 관계를 기술할 수 있습니다.

간단히 말해, License-1 AND License-2는 프로젝트 또는 그 일부에 두 라이선스가 모두 적용된다는 뜻이고(예를 들어 다른 라이선스가 적용된 파일을 포함한 경우), License-1 OR License-2는 사용자의 선택에 따라 두 라이선스 중 어느 것이든 사용할 수 있다는 뜻입니다(예를 들어 사용자가 여러 라이선스 중에서 고를 수 있도록 하려는 경우). 괄호(())로 묶으면 가장 복잡한 상황까지도 다루는 표현식을 만들 수 있습니다.

프로젝트 구성 파일에서 license(pyproject.toml의 [project] 테이블) 아래에, 또는 사용하는 패키징 도구의 해당 위치에 라이선스 표현식을 입력하고, 레거시 license 테이블 하위 키나 License :: 분류자는 반드시 제거하십시오.

또한 모든 라이선스의 전체 텍스트를 프로젝트 저장소 어딘가에 파일로 반드시 추가하십시오. 사용하는 도구가 지원한다면 pyproject.toml의 [project] 아래에 있는 license-files.paths 또는 license-files.globs에, 그렇지 않다면 해당 도구의 설정 파일에 각 라이선스 파일의 상대 경로나 glob 패턴을 나열하십시오.

예를 들어, 프로젝트는 MIT 라이선스이지만 Apache 2.0 또는 2절 BSD(2-clause BSD) 중 하나로 라이선스된 벤더링된 의존성(예를 들어 packaging)을 포함하고 있다면, 라이선스 표현식은 MIT AND (Apache-2.0 OR BSD-2-Clause)가 됩니다. 저장소 루트에 LICENSE.txt가 있고 _vendor 하위 디렉터리에 LICENSE-APACHE.txt와 LICENSE-BSD.txt가 있을 수 있습니다. 이 파일들을 모두 포함하려면 glob 패턴으로 ["LICENSE.txt", "_vendor/packaging/LICENSE*"]를 지정하거나, 리터럴 파일 경로로 ["LICENSE.txt", "_vendor/LICENSE-APACHE.txt", "_vendor/LICENSE-BSD.txt"]를 지정하면 됩니다.

이를 실제 복잡한 프로젝트에 처음부터 끝까지 적용한 사례와 여러 기술적 세부 사항은 완전한 예시인 고급 예시 절을 참고하십시오. SPDX 식별자와 표현식 사용에 관한 더 많은 도움말과 예시는 튜토리얼을 참고하십시오.