티스토리 뷰
개요
GitHub은 일반적으로 개방과 공유를 중시하는 오픈소스 지향 저장소지만 private한 저장소로도 활용되며, 제 3자가 repository에 등록된 창작물을 사용할때의 특정권한 및 제약사항을 license를 통해 행사할 수 있다.
보편적으로 사용되는 license의 종류와 어떤 경우에 어떤 license를 적용하는게 효과적인지 알아보도록 한다.
License
License의 사전적 의미는 "(공적으로) 허가하다"이다.
예를들어 국가에서 운전을 하도록 허가하는 경우, 운전허가증인 운전면허증(Driver's license)을 발급한다. 운전면허증은 임의로 수정하거나 타인에게 양도할 수 없으며, 운전자는 교통법규에 명시된 규약을 지키며 운전해야할 의무가 있다.
이는 창작물에서도 동일하다고 볼 수 있다. 창작물에 명시된 license는 해당 창작물을 이용함에 있어 발급받는 이용허가증과 같으며, 해당 license는 창작물의 임의수정이나 상업적이용 또는 재배포 등에 대한 규약을 포함한다. 창작물의 이용자는 1종 운전면허를 발급받아 1종 차량을 운전규약에 맞춰 이용하는것과 같이, 해당 창작물을 이용할때 명시된 license를 발급받은것으로 간주되고 해당 license규약에 맞춰서 이용해야할 의무가 있다.
만약 license가 명시되어 있지 않더라도 창작물에 대한 저작권 등의 권리는 창작과 동시에 발생하며, license가 없다는것은 이용허가증이 없다는 의미이기 때문에 기본적으로 변경/재배포/상업적이용 등을 허가하지 않는다는것을 뜻한다. (e.g. GitHub의 "None" license)
이런 특성을 지니는 license가 오픈소스SW에도 다양하게 존재하지만 보편적으로 쓰이는 몇가지만 알아도 창작물을 저작 및 배포하는데 도움이 된다.
GitHub의 License 등록
오픈소스 저장소인 GitHub은 기본적으로 개방과 공유를 통한 발전을 지향한다. 하지만 private repository도 생성 가능한만큼 다양한 license 적용이 가능하며, 간단하게 아래와 같은 2가지 방법이 있다.
1. Repository 생성시 프리셋을 통해 "LICENSE" file을 자동 등록
2022년 7월 27일 기준으로 GitHub에서 제공하고 있는 프리셋 license는 아래와 같다. 이 중 가장 많이 쓰이는것은 MIT, GPL, LGPL, Apache, BSD 정도이며 MIT가 가장 보편적으로 사용된다. 또한 문서, 이미지, 영상물과 같은 Non-Software의 경우에는 Creative Commons가 즐겨 사용된다. 각 license에 대한 특징은 OLIS(오픈소스SW라이선스종합정보시스템)에서 검색 및 확인할 수 있다.
- None
- License를 등록하지 않으며, 이 경우 타인에게 아무런 권한이 없음을 뜻한다. (저작권자 독점권한)
- Apache License 2.0
- GNU General Public License v3.0
- MIT License
- BSD 2-Clause "Simplified" License
- BSD 3-Clause "New" or "Revised" License
- Boost Software License 1.0
- Creative Commons Zero v1.0 Universal
- Eclipse Public License 2.0
- GNU Affero General Public License v3.0
- GNU General Public License v2.0
- GNU Lesser General Public License v2.1
- Mozilla Public License 2.0
- The Unlicense
- 쉽게말해 무면허. None과 반대됨. 복잡한 license 적용에 머리 쓸 시간에 개발이라는 본질에 집중하자는 것.
2. "LICENSE" file을 repository에 수동 등록
Repository 생성시 license를 "None"으로 해서 등록이 안되었다면 이후에 수동 등록이 가능하다.
GitHub repository root에 "LICENSE"파일 또는 "LICENSE.md"을 추가하려 하면 "Choose a license template"라는 버튼이 새로 생긴다. 이걸통해 프리셋 license들을 다시 등록할 수 있다.
만약 원하는 license가 프리셋에 없다면 choosealicense.com 사이트를 활용하면 도움이 된다. 선택한 license 우측의 "Copy license text to clipboard" 버튼을 통해 복사 후 LICENSE 파일에 붙여넣고 commit 하면 등록 및 GitHub UI에서 인식한다. 또한, 해당 license가 적용된 repository는 GitHub의 검색필터에도 적용이 된다. (e.g. "license:mit")
아직 미지원 또는 Non-Commercial license들은 UI에서 인식되지 않으며 검색필터에서도 제외되지만 license 적용과는 관계없다.
Creative Commons License
이 블로그 포스트 하단에도 붙어있는것처럼
문서, 이미지, 영상물 등과 같은 Non-Software의 경우 보편적으로 CC(Creative Commons) License가 사용되며 GitHub에서도 Open License인 경우 UI로 연동시켜준다. 하지만 상업적 이용불가인 NC(Non-Commercial)는 이전부터 요청이 있었음에도 불구하고 공유정신에 위반되므로 UI로 연동시켜주지는 않는다.
camelCase표기법 vs snake_case표기법마냥 정답이 없는 부분에서 한가닥 치는 곤조있는 개발자의 고집을 꺽는것은 불가능에 수렴하기 때문에 NC타입 license를 등록한다면 UI 연동은 포기하도록 하자. 어차피 UI에 표시가 안될뿐 license는 적용되며 "README.md" 파일을 통해 해당 license를 표시하면 된다.
CC의 경우 여기에서 자신의 용도에 맞는 라이선스 범위를 선택하고 HTML 코드를 복사한 후, GitHub repository의 root에 있는 README.md 파일에 붙여넣어서 화면상에 표시해 줄 수 있다.
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="크리에이티브 커먼즈 라이선스" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br />이 저작물은 <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스</a>에 따라 이용할 수 있습니다.
또한 GitHub에서 프리셋으로 지원하지 않는 CC-NC의 경우, 여기에서 자신의 용도에 맞는 license전문을 복사 또는 다운로드 받아 GitHub repository root의 LICENSE.md에 적용시킬 수 있다. 위에서 설명한대로 NC의 경우 GitHub UI에서 인식하지 않는다.
그래서 GitHub에서 어떤 license를 쓰면 되나?
개인적으로 선호하는 license들을 개방(Open)에서 폐쇄(Close) 순서로 나열하면 아래와 같다.
GPL, LGPL, Apache은 간략하게 "내꺼쓰면 니 소스도 까(GPL)", "내꺼 수정해서 쓰면 니 소스도 까(LGPL)", "내꺼쓰면 니꺼도 Apache SW임(Apache)"라고 볼 수 있는데 귀찮고 찌질한건 싫기때문에 "내 이름만 남겨줘(MIT)"로 쓰고있다.
기본적으로 모든 license는 저작권 표시가 포함된다. 없더라도 출처 표시는 기본매너임을 명심하자.
1. 이걸로 니가 뭘하든 신경안씀
= Unlicense
2. 이걸로 니가 뭘하든 신경안쓰는데 내 저작권은 표시해줘
= MIT License
3. Non-Software (문서, 포스팅, 이미지, 영상 등)
= 본인 용도에 맞는 CC (Creative Commons) License 중 하나
4. 나만 쓸거임 (복제, 배포, 수정 등 다안됨)
= None License (& private repository)
References
메인화면
오픈소스 라이선스에 관한 모든 정보를 한번에 해결! 라이선스 유형과 전문지식을 제공하고 다양한 오픈소스 정보도 알려드립니다. 라이선스 교육영상 및애니메이션 OSS 라이선스 상담하기 라
www.olis.or.kr
Choose an open source license
Non-judgmental guidance on choosing a license for your open source project
choosealicense.com
When we share, everyone wins - Creative Commons
Creative Commons licenses are 20! Honoring 20 years of open sharing using CC licenses, join us in 2022 to celebrate Better Sharing – advancing universal access to knowledge and culture, and fostering creativity, innovation, and collaboration for a brigh
creativecommons.org
'Programming > IDE, Tools, etc.' 카테고리의 다른 글
[VisualStudio] 코드 분석 규칙 설정 (필요없는 message 무시) (0) | 2023.03.22 |
---|---|
개인저장용 개발환경 스타일 세팅 (Theme, Font 등 ) (0) | 2022.07.13 |
[GitHub] GPG를 사용한 commit signing(서명) (0) | 2022.07.13 |
[GitHub] 무료계정에서 private 저장소 branch protection rules 흉내내기 (with VSCode v1.69.0) (0) | 2022.07.08 |
[GitHub] GitHub CLI를 이용한 Label 설정 복제 (0) | 2022.07.06 |
- Total
- Today
- Yesterday
- Debug
- github
- Addressables
- firestore
- selenium
- async
- git
- vscode
- coroutine
- 환경설정
- logging
- Visual Studio Code
- C#
- Custom Package
- 비동기
- gcp
- RuntimeInitializeOnLoadMethod
- Scraping
- .net
- initialize
- await
- VS2022
- 유니티
- unity
- Python
- 싱글톤
- framework
- 닷넷
- 코루틴
- Singleton
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |