ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • github license 종류와 선택하기
    IT-Information/Blog-operation 2022. 6. 1. 15:29

    유료서비스를 개발하는 곳에서는 라이브러리 쓸 때 오픈소스의 라이센스를 잘 확인해야한다는 내용을 지나가며 들어봤을 것 깃허브에서는 라이센스가 여러가지가 있어서 어떤걸 선택해야하나 고민하던찰라에 정리해보고자한다.

     

    라이센스는 '해야할 것' '하지말아야할 것' 프로토콜

    LICENSE.txt, LICENSE.md, README.md 파일에 종류와 내용이 적혀있다. 라이센서가 없으면 기본 저작권법이 적용되지만, 라이센스를 선택하게 됨으로서 코드의 모든 권리는 내가 가지고 다른 사람이 내 코들르 복제, 배포, 재생산 할 수 없으니 오픈소스 프로젝트는 오픈소스 라이센스를 선택하라고 권장하고 있다.

    오픈소스의 라이선스는 레포의 root에서 LICENSE.txt, LICENSE.md 파일에 기술한다. 

     

    라이선스를 선택하지 않으면

    기본적으로 github에 퍼블릭 레포로 공개된 오픈소스라면 fork가 가능하다. 깃헙 이용약관에 포크가 가능하도록 한다는 약관에 동의한것이기 때문이다. 하지만 fork가 기능적으로 가능하다고 해서 유저들이 그 소스를 어떤 목적으로든 사용, 수정, 공유할 수 있다는 뜻은 아니다.

    내가 만든 소스가 널리 사용되고 누군가 수정하고 기반으로 업그레이드 된 코드가 새로 태어나길 원한다면 라이센스를 명시해 이용자에게 좀 더 정확한 정보를 전달하는 것이 필요하다. 반대로 내 코드를 어느 정도의 사용/공유는 허용하되, 특정한 경우에는 사용을 제한하고 싶다면 그에 맞는 라이선스 명시가 필요하다.

    라이선스를 선택하지 않는다고해서 저작권을 보호받지 못하는 것은 아니지만, 오픈소스라는 특징을 생각해볼 때 적합한 라이선스를 명시하는 것이 중요하다.

     

    BSD

    소스코드를 공개하지 않아도 되는 라이선스, 저작권을 명시해야하며 Nginx라 예

     

    GPL

    GPL코드는 일부라도 사용하면 프로그램은 GPL라이선스를 적용받고 프로그램은 유료로 판매할 수 있지만 전체 소스코드는 무료로 공개를 해야함 예로  Github star 31k에 빛나는 fullpage.js 같은 경우 라이선스가 GPL로 fullpage를 회사에서 작업할 때 사용하고자 한다면 그 레포의 전체를 공개해야 한다.

     

    MIT

    라이선스 및 저작권을 명시해야하고, 상업적, 사적으로 이용 가능하고, 수정/배포/특허 신청이 가능하다. 제약조건이 상당히 느슨한 편이어서 많은 오픈소스들이 MIT라이선스를 선택함

    프론트엔드 3대장 React, angular, Vue 모두 MIT라이선스임 떠오르는 Svelt역시, 예 react

     

    Apache

    아파치 재단에서 만든 라이선스로 구글이 안드로이드 오픈소스프로젝트의 기본라이선스를 apache 2.0으로 선택했기 때문에 대부분의 안드로이드 소프트웨어는 이 라이선스가 적용됨, kotlin도 이 라이선스로 적용되어있는데 license 파일에 각 사항마다 어떤 라이선스가 적용되는지 적혀잇고 BSD  라이선스도 있다.

     

    라이선스 비교표

     

Designed by Tistory.