simminjeong Report
오픈소스란?
소프트웨어의 소스 코드가 공개되어 누구나 해당 소프트웨어를 사용, 수정, 복제, 배포하는 것을 허용하는 소프트웨어 라이선스
리눅스는 오픈소스 운영체제이다.
오픈소스 소프트웨어의 역사
오픈소스 개념은 1980년대부터 시작되었으며, 리처드 스톨만(Richard Stallman)의 GNU 프로젝트와 리눅스(Linux) 커널을 중심으로 발전. 이후에는 다양한 오픈소스 라이선스가 등장하면서 오픈소스 생태계가 형성됨
오픈소스 소프트웨어 (Open Source Software)
- 소스코드가 공개되어 있는 SW를 말하며, 일반적으로 자유롭게 복제/배포/수정 가능.
- 오픈소스 소프트웨어의 대표적인 예
- Linux 커널, Apache, FireFox, MySQL 등등
OSI (Open Source Initiative)
- 오픈소스 소프트웨어의 개발과 배포를 지원하는 비영리 단체
- OSI는 오픈소스 라이선스의 정의와 인증을 담당하며, 오픈소스 소프트웨어의 기본 원칙을 지키는 라이선스를 인증하는 과정을 진행.
- OSI가 인증한 라이선스는 “Open Source Definition”에 부합하며, 이를 충족하는 소프트웨어는 오픈소스 소프트웨어로 인정
오픈소스 소프트웨어 라이선스(Open Source Software License)
- 오픈소스 소프트웨어 개발자와 이용자 간에 이용 방법 및 조건의 범위를 명시한 계약
- 오픈소스 소프트웨어를 이용하기 위해서는 개발자가 규정한 라이선스를 지켜야 하며, 이를 위반할 경우 라이선스 위반 및 저작권 침해가 발생하고, 이에 대한 책임을 지게됨
오픈소스 소프트웨어 라이선스 종류
GPL(GNU General Public License)
- 수정된 소스 코드를 반드시 공개하고 동일한 라이선스를 유지해야 함을 요구.
- 가장 강한 제약조건을 포함하고 있는 카피레프트 조항.
- 카피레프트 : GPL 프로그램은 어떤 목적으로, 어떤 형태로든 사용할 수 있지만 사용하거나 변경된 프로그램을 배포하는 경우 무조건 동일한 라이선스 GPL로 공개해야함
- (EX Linux 커널, Git, MariaDB)
MIT 라이선스
- 상업적 사용, 수정, 배포에 대한 제한이 없이 소스 코드를 자유롭게 사용할 수 있도록 허용
- 가장 느슨한 조건을 가진 라이선스 중 하나
- (EX Bootstrap, Angular.js, jQuery)
Apache 라이선스
- 소스코드에 대한 공개 의무 등의 의무사항은 없지만 아파치 라이선스의 소스코드를 수정하여 배포하는 경우 아파치 라이선스, 버전 2.0을 꼭 포함시켜야 하며 아파치 재단에서 만든 소프트웨어임을 밝혀야 함
- (EX 안드로이드, 하둡)
BSD 라이선스
- BSD 자체가 공공기관에서 만들어낸 것으로 라이선스 자체에는 아무런 제한 없이 누구나 자신의 용도로 사용
- 라이선스 및 저작권 표시 조건 외에 굉장히 자유로운 라이선스 중 하나
- (EX Nginx)
오픈소스의 장점
- 자유로운 사용, 수정, 배포 : 자유롭게 소프트웨어 활용하고 개선할 수 있도록 함
- 협력과 공유 : 개발자들의 공유하는 문화를 만들어 지식과 기술의 공유를 증진
- 안정성과 보안 : 많은 사용자가 검토. 취약점 빠르게 수정
- 다양성과 유연성 : 오픈소스는 다양한 운영체제, 언어, 도구, 라이브러리 등을 포함하고 있어 개발자들이 다양한 선택지와 유연성을 가지고 소프트웨어를 개발할 수 있도록 함
서브목차