오픈소스소프트웨어
오픈소스소프트웨어?(oss)
- 공개소프트웨어
- 소스코드가 공개되어 누구나 사용, 수정, 재배포할 수 있는 소포트웨어
- 독점소프트웨어, 사유 소프트웨어 또는 클로즈드 소스 소프트웨어와 반대
- ex. 리눅스, git, 톰캣 등
'소프트웨어'개념의 변천사
1. 컴퓨터 초창기~70년대까지 소프트웨어는 하드웨어 구입시 무료로 제공해주는 개념
- 70~80년대 소프트웨어의 독립적인 제품화가 늘면서 저작권 강화
- 리처드 스톨만의 자유소프트웨어 운동 시작
- 'Copyleft' 개념 도입
: 저작물이 자유롭게 공유되어야 한다는 것을 강조
↔ Copyright: 저작권에 대한 배타적인 권한 강조
- GNU 선언문 발표
2. OSS 개념의 등장
- Netscape사가 웹브라우저 소스코드 공개
- Open Source Initiative의 설립과 ‘Open Source
Software’ 용어를 도입
- OSS의 장단점
- 장점
- 비용 X
- 소스 코드 수정 O
- 보안 취약점 발견 쉬움
- 누구나 버그 수정 O
- 특정 업체 의존 X
- 단점
- 고객지원 거의 X
- 비숙련자 사용 어려움
- OSS 활용 방식
- OSS 사용
- OSS 기여 (ex. 기능 추가, 소스코드 수정 등)
- 신규 OSS 개발
- OSS 개발 과정
처음에는 소수의 프로젝트 리더와 신뢰받는 개발자로부터 시작해서 전세계의 사용자가 개발자로 프로젝트에 기여
오픈소스소프트웨어 라이선스(oss License)
SW 관련 지식재산권
저작권
- 창작물에 대하여 창작자가 취득하는 권리로서 창작의 결과물을 보호하며, 창작과 동시에 권리가 발생
- 등록절차 필요 X
특허권
- 발명에 관하여 발생하는 독점적/배타적 지배권
- 특허 등록 필요
상표권
- 상표권자가 지정상품에 관하여 그 등록상표를 사용할 독점적인 권리
- 상표 등록 필요
SW 라이선스
- SW는 그것을 개발한 사람(관리자)만이 사용할 수 있지만, 권리자가 다른 사람에게
일정한 조건으로 특정 행위를 할 수 있는 권한을 부여할 수 있다. 이와 같은 권한을
라이선스(license, 사용권 또는 사용허가) 라고 함
OSS 라이선스
- 오픈소스 SW 개발자와 이용자간에 이용 방법 및 조건의 범위를 명시한 계약
- 라이선시(라이선스를 받는 자)는 라이선서(라이선스를 부여하는 자)가 규정한 라이선스를 지켜야 함
- OSS 라이선스 규정을 제대로 지키지 않으면 라이선서로부터 소송을 당할 수 있음
공통적 준수사항
- 저작권 관련 문구(프로그램의 이름과 개발자, 버전, 연락처 등) 유지
- 제품명 중복 방지(OSS와 동일한 이름을 제품명이나 서비스명으로 사용하면 안됨)
- 서로 다른 라이선스로 배포된 오픈소스SW를 결합하는 경우, 반드시 두 개의 라이선스가 서로 호환되는지 확인
선택적 준수사항
- SW를 이용할 때 해당 오픈소스 SW가 이용되었음을 명시. 이용자 매뉴얼이나 기타 매뉴얼을 대체하는 매체가 있다면 그곳에 기술
- 변경된 부분의 소스코드를 공개
- 특허 기술을 OSS로 구현할 때는 반드시 특허권자의 허락을 받아야함
GNU General Public License (GPL)
- 소스코드 공개에 대한 해석이 까다롭고 강력한 제한을 가짐
- GPL SW 에 의해 파생된 SW 는 그것의 전체 소스코드 또한 공개해야 함
GNU LGPL(Lesser General Public License)
- LGPL OSS를 정적(static) 또는 동적(dynamic) 라이브러리로 사용한 프로그램을 개발하여 배포할 경우에는 프로그램의 소스코드를 공개하지 않아도 됨
- GPL보다 덜 까다로움
BSD (Berkeley Software Distribution) License
- 매우 자유로운 라이선스
- 아래사항을 준수하면 변경 또는 배포에 문제가 없음
1. 소스코드에 포함된 저작권 관련 문구들의 보존해야 한다
2. BSD 라이선스 SW 의 사용으로 인해 발생하는 위험 또는 손해를 저작자에게 물을 수 없다
- ex. Nginx 웹서버
MIT License
- (MIT)에서 학생들을 돕기 위해 라이선스로 개발
- 저작권 관련 명시만 하면 되서 가장 느슨한 라이선스 중 하나
- BSD를 기초로 작성된 BSD계열 라이선스
- ex. Node.js, jQuery, Ruby on Rails, X11