1. 오픈 소스란?
누구나 특별한 제한 없이 공개되어 있는 소스코드로, 검사(리뷰), 수정 등 개선사항을 마음껏 펼칠 수 있는 소스 코드이다. (유료 코드도 있음.) 다른 개발자의 시선으로 코드가 업그레이드 될 수 있다.
ex. Node.js, 리액트, Apache, Bootstrap...
2. 오픈 소스 라이선스란?
- 오픈 소스로 배포/준비/공개된 소스 코드를 사용할 때 지켜야 하는 규칙 등을 명시하는 것
- ex. react is licensed under the MIT License
- 라이선스 표기가 되어 있지 않은 깃허브 public 소스 코드를 임의로 사용하면 저작권 침해이다! (라이선스에 적히 조건 이행하기.)
- 단순히 소스코드가 공개되어 있다고 해서 오픈소스인 것은 아니고 OSI가 정한 요건을 충족하여 오픈소스 라이선스 인증을 받아야한다.
- 라이선스마다 형식은 다양하지만 모두 오픈소스를 사용할 때의 의무사항과 조건을 명시하고 있다.
- 하나의 프로젝트에 여러 라이선스가 있을 수 있다.
아래 링크에서 여러 오픈 소스 라이선스에 대한 정보를 확인할 수 있다.
메인화면 | 오픈소스SW 라이선스 종합정보시스템 OLIS
오픈소스 라이선스에 관한 모든 정보를 한번에 해결! 라이선스 유형과 전문지식을 제공하고 다양한 오픈소스 정보도 알려드립니다. 라이선스 교육영상 및애니메이션 OSS 라이선스 상담하기 라
www.olis.or.kr
3. 오픈 소스 라이선스 종류
- MIT: 라이선스 이름 정도만 명시하면 되는 널널한 조항이라 인기가 많다. ex) bootstrap react, angular, jQuery
- APACHE: 소스 코드에 대한 공개 의무 등 의무사항이 없다. ex) Android
- BSD(Berkeley Software Distribution): 라이선스 및 저작권 표시 조건 외에는 자유로워 인기가 많다.
- GPL(General Public License): Free Software Foundation(자유 소프트웨어 재단)에서 만들었. 어떤 목적으로, 어떤 형태로든 다 사용할 수 있지만, 사용/배포하는 경우엔 의무사항이 많은 강력한 조항이다. ex) Firefox, Linux, Git, MariaDB, Wordpress
오픈 소스 가이드
Learn how to launch and grow your project.
opensource.guide
4. 오픈 소스 라이선스 표기 방법
크롬을 예시로 들면,
- 오픈소스명
- 공식 홈페이지 주소(링크)
- 라이센스 종류/이름
- 라이센스 전문(공식 내용, 문서)
등을 표기한다.
5. 오픈소스 라이선스 적용 방법
프로젝트에 사용 시, 깃허브 레포지토리 Readme나 License.txt에 작성해도 되고, 깃허브에서 레포지토리를 만들 때, 가장 밑부분에 choose a license란에서 라이선스를 선택해도 된다.
코드를 짠 후 라이선스를 추가하는 방법은 다음 링크에 설명되어있다.
리포지토리에 라이선스 추가 - GitHub Docs
다른 사용자가 더 쉽게 기여할 수 있도록 리포지토리에 오픈 소스 라이선스를 포함할 수 있습니다.
docs.github.com
6. 오픈 소스 프로젝트(커뮤니티) 상태 파일
기본 문서
- License.md/.txt : 오픈소스 라이선스 전문 명시 문서
추가 문서
- README.md : 프로젝트 코드의 목적, 사용 방법 설명 문서
- COPYRIGHT.txt : 저작권
- NOTICE.txt : 오픈 소스 라이선스 개요
- CONTRIBUTING.md: 프로젝트에 어떻게 기여할 수 있는지 설명한 문서
- CODE_OF_CONDUCT.md: 오픈소스 프로젝트(커뮤니티)의 행동 지침이 적혀 있는 문서. 커뮤니티 멤버 간 이슈가 발생했을 때 행동 지침 등이 적혀있다. 모든 기여를 존중하고, 서로 존중하기.
7. 오픈 소스 구성원 역할
- 저작자: 오픈 소스 프로젝트를 만든 사람 또는 조직
- 메인테이너: 프로젝트의 방향을 알고 있는/직접 설정한 프로젝트를 관리하는 컨트리뷰터
- 커미터: 컨트리뷰터가 컨트리뷰션을 하면 리뷰를 하는 사람. 컨트리뷰터. 프로젝트에 반영할지 말지 결정 권한도 가지고 있음.
- 컨트리뷰터: 오픈 소스 프로젝트에 기여(컨트리뷰트) 활동을 하는 모든 사람
- 사용자: 오픈 소스 프로젝트를 사용하는 사람
8. 컨트리뷰트
오타 수정, 번역 등을 "제안"만 해도 컨트리뷰션이다. 테스트 케이스 추가 등을 해보는 것도 좋은 방법!
컨트리뷰트 절차
- 오픈 소스 프로젝트를 Fork: 저작자 계정에 있던 레포지토리가 내 계정의 레포지토리로 복제된다.
- 내 계정의 레포지토리를 Clone: 그 레포지토리를 clone하면 로컬로 받아진다.
- 코드 컨벤션 체크, 커밋 메시지 규칙 체크 등 코드 구현 전에 체크해야하는
13주차 day4 -컨트리뷰트 절차