[13주차 Day2] 오픈소스와 오픈소스 라이센스 소개

반 히·2024년 5월 22일

데브코스

목록 보기
32/58
post-thumbnail

📚 Part 1 오픈소스란


📌 개발 문화

개발자들이 선호하는 '좋은 개발 문화 기업' TOP5는??
1. 기술을 이해하는 팀장/매니저
2. 지속적 통합 및 배포(CI/CD)
3. 참여형 지식 공유 플랫폼

  • 참여형 "지식" 공유 플랫폼
    • 내가 모르는 것들을 누군가가 도와주는 곳
    • ex) Stack Overflow
    • ex) 깃허브 : 코드 공유

📌 오픈소스란?

"누구나 특별한 제한 없이" 공개되어 있는 소스코드
+ 검사(리뷰), 수정 등 개선사항을 마음껏 펼칠 수 있는 소스 코드

  • 다른 개발자의 시선으로 새로운 아이디어를 창출할 수도 있고, 버그를 발견할 수도 있다. 이로 인해 코드가 업그레이드 될 수 있다.
  • ex) Node.js, 리액트, Apache, Bootstrap ...

!= 무료
일부 유료로 운영되는 코드도 있다.
cf. Pro: 유료 결제

오픈 소스는 공개적으로 그 설계에 액세스할 수 있기 때문에 누구나 기술을 수정하고 공유할 수 있는 분산형 프로덕션 모델임. 기술이 유기적으로 발전하도록 누구나 새로운 아이디어를 내고 개선할 수 있음.

📌 깃허브의 모든 public 프로젝트는 오픈 소스일까?

기여하다 : 오픈 소스에 아이디어를 제시하는 것. (ex. 코드를 더 나은 코드로 바꾸는 것.. 등)
오픈소스가 되려면 License가 있어야 함. 즉, 라이선스가 있어야 오픈 소스이다.

따라서 모든 public 프로젝트는 오픈 소스가 아니다



📚 Part 2 오픈소스 라이선스


📌 오픈 소스 라이센스란

오픈 소스로 배포/준비/공개된 소스 코드를 마음대로 가져다 쓰면 안 된다. 오픈 소스 라이선스란 오픈 소스로 배포/준비/공개된 소스 코드를 사용할 때 지켜야 하는 규칙 등을 명시하는 것을 말한다.

[ 오픈 소스 ]
코드 공개 무료
공개 X 유료 > 저작권료 지불

오픈 소스가 규정을 잘 따르고 있는지 확인해야 된다.

ex) 리액트 is licensed under the MIT License
     Apache Tomcat under the Apache license version 2

오픈 소스란 라이선스 방식을 통해 배포된 소스코드를 자유롭게 복사, 수정, 사용, 재배포할 수 있는 소프트웨어임. 따라서 오픈 소스는 누구라도 버그를 수정하거나 코드를 개조하여 기능을 추가할 수 있으며, 소프트웨어 개발에 참여할 수 있다. 이렇게 오픈 소스는 개발자에게 프로그램 배포 권리, 소스코드 접근 권리, 소스코드 수정 권리를 제공한다. 단!!!! 오픈소스의 라이선스를 반드시 준수해야 한다.

라이선스에 적힌 조건(제한 사항 X, 추가 사항 O)을 이행하지 않거나, 라이선스 표기가 되어있지 않은 깃허브 public 소스 코드를 임의로 사용하면 ✨저작권 침해✨이다.

📌 라이선스의 유래, OSI

🔗 오픈 소스를 공개하는 데 라이선스가 필요한 이유

  1. 오픈 소스라는 것을 명시하기 위함
  2. 사용/배포할 때 조건(출처, 사용법 등)을 지킬 것을 명시하기 위함

🔗 OSI (Open Source Initiative)

전 세계의 오픈 소스를 관리해주고 보호해주기 위함. 전 세계의 라이센스들을 한 군데 모음. 즉, 오픈 소스를 지켜내기 위한 집단

📌 OLIS(Opensource License Information System)

https://www.olis.or.kr/
오픈소스 SW 라이선스에 관한 종합 정보 서비스를 제공해주는 시스템으로 사용하고 싶은 라이선스에 대한 정보를 한국어로 제공한다. (배포 시 의무사항 중요함. 법적인 분쟁이 발생할 수 있기 때문)

📌 오픈소스 라이선스 종류

  • GPL
    • : Free Software Foundation (자유 소프트웨어 재단) → GNU General Public License
    • : “어떤 목적으로, 어떤 형태로든 다 사용할 수는 있지만, 사용/배포하는 경우엔 무조건 공개” 강력한 조항
    • ex. Firefox, Linux, Git, MariaDB, Wordpress
    • → AGPL(ex. MongoDB), LGPL
    • 자유 소프트웨어 재단에서 만든 자유 소프트웨어 라이선스로, 소프트웨어의 실행, 연구, 공유, 수정의 자유를 최종 사용자에게 보장한다
    • 대표적으로 리눅스 커널이 이용함.
  • MIT
    • : 라이선스 이름, 명시 ⇒ 인기가 많음 (매우 제한이 느슨하기 때문에 사용하기 편해서)
    • : bootstrap, react, angular, jQuery …
  • Apache
    • 아파치 라이선스는 아파치 웹 서버의 배포를 위해 만들어진 라이선스임. 아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어에 대한 라이선스 규정
    • 라이선스 계열 : BSD
    • : license.txt (라이선스 전문이 들어있음)
    • : 소스코드에 대한 공개 의무 등 의무 사항 X
    • : 아파치 라이센스, 버전 2.0, 저작권, copyright → 소스코드 or notice.txt / copyright.txt 에 정리함
    • ex. 안드로이드
    • : Berkeley Software Distribution (BSD)
    • : 라이선스 및 저작권 표시 조건 외에는 자유로움 ⇒ 인기가 많다
    • 소프트웨어 라이선스라고도 할 수 없을 만큼 미약하여, 해당 소프트웨어는 아무나 개작할 수 있고, 수정한 것을 제한 없이 배포할 수 있다. 다만 수정본의 재배포는 의무적인 사항이 아니므로 BSD 라이선스를 갖는 프로그램은 공개하지 않아도 되는 상용 소프트웨어에서도 사용할 수 있음.

✨오픈소스 가이드 : http://opensource.guide/ko/
✨이미 시중에 오픈된 소스를 참고해서 쓰면 된다.

📌 beerware (비어웨어)

비어웨어 (beerware)는 제약이나 조건이 매우 낮은 소프트웨어 사용권이자 그것을 통해 배포된 소프트웨어를 일컫는 말. 최종 사용자에게 프로그램 또는 소스코드를 마음껏 사용할 수 있는 권리를 제공함.

📌 라이선스 적용 사례, npm

npm : 패키지 관리자. 노드에서 외부 모듈을 가져오고 싶을 때 사용

라이선스를 적용할 때에는 라이선스 배포 시 주의사항을 잘 살펴봐야 한다.

📌 오픈소스 라이선스 표기법

웹 브라우저의 대표적 주자인 chrome을 보자.

ex. 크롬

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

0개의 댓글