당연히 오픈소스 프레임워크를 만드는데 저작권이 중요하다.
나는 인간을 믿지 않으며 인간은 짐승과 같다는 생각을 하기 때문에 저작권도 방어적으로 초반에 설정할 것이다.
Apache-2.0 license는 절충안이다. MIT license는 전부 여는것이기 때문에 오픈소스 그대로 퍼다가 이름만 바꿔도 못 막는다.
그런 사람들이 당연히 있지, 악의적인 그룹, 기업들이 이름 바꿔서 운영하면 개인은 밀릴 수 있기 때문에 최소한의 안전장치는 해야한다.
Apache license를 해두면 MIT와 달리 원저작자 표시 의무가 있기 때문에 어느정도 오픈소스답고 저작권도 보호해주는 방안이다.
apache를 해놓은다고 안심하면 안 된다. 세상엔 악의적인 도둑들이 많으니
기여자에게 CLA 서명을 받아야한다. CLA 서명엔 2가지가 있다.
Copyright Assignment (저작권 양도형), License Grant (사용 허락형)
전자는 contributor가 나에게 자신이 기여한 코드의 저작권을 양도하는거고 후자는 기여자가 저작권을 가진 방안이다.
기여자가 저작권을 주장 안 할까?
당연히 하지
법적 문제로 걸고 넘어지면 아주 귀찮게 되는거다. 그리고 이 프레임워크는 사실상 내 철학이 강하게 반영되었기 때문에 contributing이 사소한 오픈소스다.
그래서 거의 모든 뼈대와 코드를 내가 작성하기 때문에
Copyright Assignment를 봇으로 걸어놨다.
오픈소스에 기여할 때 PR에 CLA 서명을 강제하자
1️⃣ CLA Assistant GitHub 앱 설치
오른쪽 상단 “Sign in with GitHub” 클릭 → 깃허브 로그인
로그인 후 “Add a new repository” 버튼 클릭
연동할 저장소 선택
GitHub 권한 요청 창 뜨면 “Install & Authorize” 선택
📌 설치 후, CLA Assistant가 해당 리포에 대한 GitHub App으로 등록됨.
위처럼 봇을 설정하면 PR을 날릴 때 서명하지 않으면 요청이 안 되게 막을 수 있다.
CLA.md 문서를 프로젝트 루트에 만들어놓자.
This Contributor License Agreement ("Agreement") is made between Seong Gyeongjun (GitHub ID: B-Singularity) ("Project Owner") and the individual who signs this Agreement ("Contributor").
By signing this Agreement, you accept and agree to the following:
1. **Assignment of Copyright**
You hereby assign to the Project Owner all right, title, and interest in and to your contributions submitted to the “Kontrakt” project, including copyright and related rights.
2. **License Grant Back to Contributor**
The Project Owner grants you a perpetual, worldwide, royalty-free license to use, reproduce, and distribute your contributions for any purpose.
3. **Representations and Warranties**
You represent that your contributions are your original work and that you have the right to grant this assignment.
4. **Governing Law**
This Agreement shall be governed by the laws of the Republic of Korea.
Signed electronically via GitHub by submitting a pull request to the Project.