1. 오픈소스
오픈소스란 누구나 특별한 제한 없이 공개 되어 있는 소스코드를 말한다. 오픈소스로 공개 되어 있는 코드에는 검사(리뷰), 수정 등 개선사항을 마음껏 펼칠 수 있다. 또 오픈 소스는 다른 개발자의 시선으로 내 코드를 볼 수 있기 때문에 아이디어를 얻고, 버그를 잡고 업그레이드를 시킬 수 있다는 장점이 있다.
(우리가 잘 알고 있는 오픈 소스 예시들 -> 리액트, node.js, Apatch, 부트스트랩 등 ..)
- Q. 오픈 소스는 모두 무료인가요? X
-> 오픈 소스 Pro 는 유료이며 검사, 수정 등을 하려면 돈을 내야 한다.
즉, 공개되어 있다고 다 무료는 아니다. (공개 == 무료 라고 생각하지 말자)
- Q. 깃허브에 public 으로 열린 모든 프로젝트는 다 오픈소스일까? X
-> 오픈 소스는 라이선스가 어딘가에 작성되어 있어야 오픈 소스!
1.1. 오픈 소스 라이선스란?
오픈 소스 라이선스란 오픈 소스로 공개된 배포/준비/공개된 소스 코드를 사용할 때 지켜야하는 규칙 등을 명시하는 것이다.
ex. 리액트 is licensed under the MIT License
- Q. 라이선스에 적힌 조건(제한 사항X, 추가 사항)을 이행하지 않으면 어떤 일이 벌어질까?
- Q. 라이선스 표기가 되어 있지 않은 깃허브 public 소스 코드를 임의로 사용하면?
-> 굳이 따지자면 저작권 침해,
사실 개개인의 코드를 복사 붙여 넣기 해서 쓴다고 다 알 수는 없지만(암묵적으로 허용되는 범위는 당연히 존재), 큰 오픈소스(회사 코드, 대중적인 오픈소스)의 경우는 지켜보는 사람이 많기 때문에 티가 날 수 밖에 없다.
큰 오픈소스들의 경우 보통 출처만 밝히면 별 문제 없다.
라이선스가 표기가 되어있지 않는 소스코드의 경우, 원작자에게 연락해서 오픈소스로 열어달라고 연락을 취하는 것이 맞다.
1.2. 오픈 소스에 라이선스가 필요한 이유
- 오픈 소스라는 것을 명시하기 위해
- 사용/배포할 때 조건(출처, 사용법 등..)을 지켜달라고 말하기 위해
먼저 MIT 라이선스이 유래에 대해 알아보자.
MIT 의 학생들이 열심히 짜놓은 코드를 가져가서 잘 먹고 잘 사는 사람들이 생겼는데, 그 코드의 원작자가 MIT 학생이라는 것은 그 어디에서도 알 수 없었음. 그래서 MIT 에서 학생들을 지키기 위해 만든 것이 MIT 라이선스인 것! (여전히 오픈소스로 공개는 하지만, 출처를 명시하도록 함)
-> 결국 라이선스란, 오픈 소스 코드를 보호하기 위해 나온 것
(그래서 여기 저기서 오픈 소스 코드를 보호하고 싶은 마음이 모여서 OSI(open source initiative) 라는 재단이 나오게 됨)
1.3. OLIS
OLIS 란 오픈소스 SW 라이선스 종합정보 시스템으로, 각 라이선스의 내용을 확인할 수 있는 사이트이다.
사이트에 들어가서 필요한 라이선스를 검색하면 아래와 같이 주요내용과 주요 특징 및 배포시 의무사항에 대한 정보가 나오는데,
명시되어있지않음이라고 적혀있는 항목에 대해서는 상관없지만 명시된 항목을 지키지 않는 다면 분쟁이 일어날 수 있으니 명시해놓은 항목은 무조건 지켜야 한다.
1.3. 오픈 소스 라이선스 종류
- GPL
- Free Software Foundation (자유 소프트웨어 재단) -> GNU (General Public License)
- "어떤 목적으로, 어떤 형태로든 다 사용할 수는 있지만, 사용/배포하는 경우엔 무조건 공개" -> 강력한 조항
ex. Firefox, Linux, Git, MariaDB, Wordpress
(참고로 GPL 에서 뻗어나간 AGPL(ex. Maria DB), LGPL 등이 있다)
- MIT
- 라이선스 이름 명시 -> 느슨하기 때문에 인기가 많다
ex. bootstrap, react, anular, jQuery ...
- Apatche
- license.txt 에 라이센스 전문이 들어있음
- 소스 코드에 대한 공개 의무 등 의무 사항 X
- 아파치 라이센스, 버전 2.0, 저작권, copyright -> 소스 코드 or notice.txt / copyright.txt
ex) 안드로이드
- BSD
- Berkeley software Distribution (BSD)
- 공공기관에서 만들어서 공공에게 돌려주자는 느낌이 강함
- 라이선스 및 저작권 표시 조건 -> 자유롭기 때문에 인기 많음
1.4. 오픈 소스 라이선스 표기 방법
- 오픈 소스명
- 공식 홈페이지 주소 (링크)
- 라이선스 종류/이름
- 라이선스 전문 (공식 내용, 문서)
'TIL with Programmers' 카테고리의 다른 글
[TIL] 11/27 오픈소스에 기여하기 (1) | 2024.11.27 |
---|---|
[TIL] 11/26 오픈 소스와 깃허브 (0) | 2024.11.26 |
[TIL] 11/20 (1) | 2024.11.24 |
[TIL] 11/21 (0) | 2024.11.21 |
[TIL] 11/19 (0) | 2024.11.19 |