프로그래머스 데브코스 63일차 with. TS 웹 풀스택
📚요약
지난 시간에는 컨트리뷰션에 대해 알아봤습니다. 이번 시간에는 라이선스에 대해 더 자세히 알아보겠습니다.
📖Open Source
오픈 소스 소프트웨어 즉 OSS에 대해 공부하면서 넘어왔습니다. 가장 중요한 것은 해당 프로젝트가 오픈 소스인가를 구분하는 것입니다. 깃허브를 보면 public 레포지토리의 경우 코드를 자유롭게 볼 수 있습니다. 하지만 그렇다고 해서 마음대로 가져다 쓰면 문제가 생깁니다. 그래서 가장 중요한 것이 라이선스가 있는가를 확인하면 됩니다.
📄라이선스가 없다면?
코드를 살펴봤을 때 좋은 코드라는 생각이 들거나 필요한 코드라는 생각이 드는데 라이선스가 없는 경우도 생길 겁니다. 그때 아쉬워만 하지 말고 github가 제공하는 propose 기능을 사용하면 됩니다.
말 그대로 코드의 저작자에게 라이선스를 설정하고 오픈 소스로 바꾸는 게 어때?라는 제안을 하는 것입니다.
📄어떤 라이선스를 사용할 것인가?
제안의 문제는 어떤 라이선스를 제안할 것인가입니다. 라이선스를 제안하는 경우에는 사용자 입장에서 제안하기 때문에 사용자 입장에서 라이선스를 살펴보겠습니다.
라이선스는 다양한 종류가 있습니다. 사용자의 입장에서는 어떤 프레임워크/모듈에서 사용하는가를 따져보면 쉽게 라이선스를 고를 수 있습니다. 예를 들어 npm에서 사용되는 오픈 소스의 경우 거의 MIT 라이선스를 사용하고 있습니다. 쉽게 이용되어야 하기 때문입니다. 이와 같이 어디에서 오픈 소스를 사용하는가를 고민해 보면 라이선스를 결정할 수 있습니다.
아래 3가지 라이선스를 사용하는 곳을 살펴보겠습니다.
- MIT : 일반적으로 자유롭게 사용되지만 저작자의 흔적이 남아있으면 좋은 곳
- Apache : 웹 관련되어 기업이 사용하는 오픈 소스의 경우. 특허가 관련되어 있다.
- GNU GPL v3 : 라이선스가 제시하는 조건이 다양한 만큼 모든 히스토리를 공개하길 원하는 오픈 소스의 경우.
📄라이선스 변경
라이선스는 원하면 변경이 가능하기 때문에 라이선스를 선택할 때 너무 큰 고민을 하지 않아도 됩니다. 하지만 바꾸는 과정이 복잡할 수 있기 때문에 신중하게 라이선스를 선택해야 합니다.
라이선스 변경 예시
- mongoDB : AGPL → SSPL
- elastic search : Apache → SSPL
- grafana : Apache → AGPL
- sentry : BSD 3 Clause → BUSL
📄오픈 소스 탐색
마지막으로 오픈 소스는 어디서 찾아야 하는가에 대해 말씀드리겠습니다.
- 가장 흔하게 사용되는 Github
- 구글에서 중, 고등학생들의 오픈 소스 참여를 위해 운영했던 codein. 하지만 현재는 운영이 되지 않기 때문에 참고용으로 사용하면 좋습니다.
- 회사마다 자체 운영되는 회사 오픈 소스 사이트 ex) 네이버 오픈 소스
- 마지막으로 오픈 소스를 모아두고 이슈의 개수에 따라 우선순위를 정해두어 보여주는 codetriage
다음 시간에 계속...
출처 & 참고
김송아 강사님의 강의