우노
[GitHub] License 란? 본문
License 란?
- License 의 복잡한 정의는 아래와 같다.
- 저작권자의 독점 사용 권리에 대해, 저작권자/사용자 간의 이용 방법 및 조건 범위를 명시해 둔 사용 허가권이다.
- 쉽게 말해, 오픈소스 사용 및 배포 시, 지켜야할 규칙들을 의미한다.
왜 License 를 달아야하지?
- 만약, 개발자가 오픈소스를 조금이라도 참고했다면, License 를 명시하는게 좋다.
- 많은 사람들이 간과하고 있는 사실이지만, 오픈소스 생태계에서 License 는 굉장히 중요한 부분이기 때문이다.
- 오픈소스란 '누구나 수정/복재/배포가 가능한 소스코드'를 의미하지만, 오픈소스라고 저작권이 없는 것은 '절대' 아니기 때문이다.
- 오픈소스는 모두 지적재산권 보호를 받으며, 라이센스 위반 시 처벌이 가능하다.
- 오픈소스 라이센스는, 소스 코드를 사용해 실행파일을 생성한 뒤, 외부에 배포할 때 지켜야하는 규칙들이다.
- 따라서, 내부 사용만을 목적으로 할 때는 적용되지 않는다.
- 보통 오픈소스 라이센스는 README 나 LICENSE 파일에 따로 명시해두며, 코드 윗 부분에 적기도 한다.
- 라이센스 종류는 굉장히 많지만, 모두 외우고 있을 필요는 없고, 실제로는 약 10개 정도가 80%를 차지한다.
- '니 맘대로 쓰세요'라고 하는 라이센스도 있고, 배포의 개념이 다른 라이센스도 있다.
License 의 종류
- Permissive
- 개념
- 의무 사항이 많지 않아 상대적으로 준수하기 쉬우며, 저작권 표시나 라이센스 고지 등만 준수하면 문제 없이 사용할 수 있다.
- 종류
- Apache License
- MIT License
- 개념
- Copyleft
- 개념
- 의무 사항이 많고, 소스 코드를 공개해야 하는 경우가 많다.
- 종류
- GNU General Public License(GPL) 2.0
- GNU Lesser GPL(LGPL) 2.1
- Mozilla Public License(MPL)
- 추가 설명
- 보안이 중요한 기업에서의 결과물에는 Copyleft 라이센스를 포함하지 않는 경우가 많다.
- GPL 이 들어가면 사용된 코드를 전부 공개해야 하기 때문이다.
- 혹여나 보안이 중요하다면, Copyleft 를 사용하여 곤경에 빠지는 일이 없도록 해야한다.
- 개념
Apache License
- 아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어에 대한 라이센스 규정이다.
- 아파치 라이센스는 아파치 재단(ASF: Apache Software Foundation)의 모든 소프트웨어에 적용되며,
- BSD 라이센스와 비슷하여 소스코드 공개 등의 의무가 발생하지 않는다.
- 다만, “Apache” 라는 이름에 대한 상표권을 침해하지 않아야 한다는 조항이 명시적으로 들어가 있고,
- 특허권에 관한 내용이 포함되어 BSD 라이센스보다는 좀더 법적으로 완결된 내용을 담고 있다.
- 특히, GPL 2.0으로 배포되는 코드와 결합되는 것이 어렵다는 문제가 었었는데,
- GPL 3.0에서는 이 문제를 해결하여, 아파치 라이센스로 배포되는 코드가 GPL 3.0 으로 배포되는 코드와 결합하는 것이 가능해졌다.
MIT License
- MIT 라이센스는 미국 매사추세츠공과대학교(MIT)에서 해당 대학 소프트웨어 공학도들을 돕기 위해 개발한 라이센스이다.
- 라이센스와 저작권 관련 명시만 지켜주면 되는 라이센스이다.
- 이 소프트웨어를 누구라도 무상으로 제한없이 취급해도 좋다.
- 저자 또는 저작권자는 소프트웨어에 관해서 아무런 책임을 지지 않는다.
GNU General Public License(GPL) 2.0
- GPL은 현재 가장 많은 오픈소스 소프트웨어가 채택하고 있는 라이센스이다.
- 오픈소스 라이센스들 중에서 가장 많이 알려져 있고, 의무사항들도 타 라이센스에 비해 엄격한 편이다.
- 소프트웨어를 배포하는 경우 저작권 표시, 보증책임이 없다는 표시 및 GPL에 의해 배포된다는 사실 명시
- 소프트웨어를 수정하거나 새로운 소프트웨어를 병합(Dynamic linking 포함)시키는 경우 GPL에 의해 소스 코드 제공
- GPL 소프트웨어를 배포하는 경우, 소스 코드 그 자체를 함께 배포하거나 또는 소스코드를 제공받을 수 있는 방법에 대한 정보를 함께 제공
GNU Lesser GPL(LGPL) 2.1
- GPL 라이센스를 사용하기만 해도 소스코드를 공개해야 한다는 부담 때문에, 단순한 라이브러리와 모듈로의 링크를 허용한 라이선스이다.
- 원래는 한정된 라이브러리에만 적용하려는 의도로 ‘Library GPL’이라는 이름을 붙였으나, 모든 라이브러리에 적용된다는 오해를 사 2.1 버전으로 ‘Lesser GPL’로 변경됐다.
- 소프트웨어를 배포하는 경우 저작권 표시, 보증책임이 없다는 표시 및 LGPL에 의해 배포된다는 사실 명시
- LGPL Library의 일부를 수정하는 경우 수정한 Library를 LGPL에 의해 소스코드 공개
Mozilla Public License(MPL)
- MPL은 Netscape 브라우저의 소스코드를 공개하기 위해 개발된 라이센스이다.
- MPL에서는 링크 등의 여부에 상관없이, 원래의 소스코드가 아닌 새로운 파일에 작성된 소스코드에 대해서는 공개의 의무가 발생하지 않는다.
- 소프트웨어를 배포하는 경우 저작권 표시, 보증책임이 없다는 표시 및 MPL에 의해 배포된다는 사실을 명시
- MPL 코드를 수정한 부분은 다시 MPL에 의해 배포
- MPL 코드와 다른 코드를 결합하여 프로그램을 만들 경우 MPL 코드를 제외한 결합 프로그램에 대한 소스코드는 공개할 필요가 없음
- 소스코드를 적절한 형태로 제공하는 경우, 실행파일에 대한 라이센스는 MPL이 아닌 다른 것으로 선택가능
- 특허기술이 구현된 프로그램의 경우 관련 사실을 ‘LEGAL’파일에 기록하여 배포
참고
- https://velog.io/@googijnh4545/Github-라이센스-정리
- https://icerabbit.tistory.com/75
- https://flyingsquirrel.medium.com/github-license의-종류와-나에게-맞는-라이선스-선택하기-ae29925e8ff4
- https://youngjinmo.github.io/2020/02/github-licenses/
- https://corock.tistory.com/436
- https://leeborn.tistory.com/entry/GitHub-GitHub-License-만들기
'DevOps > GitHub' 카테고리의 다른 글
[GitHub] Private Repository 의 Contribution 을 잔디밭에 보이게 하기 (0) | 2022.02.28 |
---|---|
[GitHub] 하위 디렉토리 다운로드 (0) | 2021.11.21 |
[GitHub] GitHub Workflow 및 Git Status 이해하기 (0) | 2021.06.21 |
[GitHub] Git LFS를 사용한 100MB 이상의 파일 업로드 (0) | 2021.05.20 |
[GitHub] MacOS 업데이트 후, 개발 도구 에러 해결 방법 (0) | 2021.03.09 |
Comments