본문 바로가기
TIL with Programmers

[TIL] 11/25 오픈 소스란?

by 보먀 2024. 11. 25.
728x90
반응형

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. 오픈 소스 라이선스 표기 방법

  • 오픈 소스명
  • 공식 홈페이지 주소 (링크)
  • 라이선스 종류/이름
  • 라이선스 전문 (공식 내용, 문서)

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'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