개발자

오픈 소스 소프트웨어 (OSS : Open Source Sofrware) 가이드

쿠카곰돌이 2020. 8. 1. 15:05
반응형

오픈 소스 소프트웨어 (OSS : Open Source Sofrware) 가이드

2020.08.01

1. OSS(Open Source Software) 정의

소스코드를 무상으로 공개하여, 그 소프트웨어를 누구나 사용, 개량하고 다시 배포할 수 있도록 한 소프트웨어

 

2. OSS 등장배경

- 유닉스 운영체계의 다양한 버전을 개발한 개발자들의 공동연구 경험

- 여러 개의 제품들 중에 자유로이 선택하고자 하는 사용자들의 욕구

 

3. OSS 중요성

경제적 측면

- 기술 사용료 지급 부담이 없어 구매비용 및 로열티 절감

- 다양한 소프트웨어에 대한 선택권 부여로 소비자 편의성 제고


기술적 측면

- 소스코드에 대한 자유로운 접근으로 선진 제품과의 기술 격차 해소 및 세계적 수준의 국산 솔루션 개발 가능

- 공개 표준 지향에 따른 이 기종 시스템간의 호환성 확보 용이


사회적 측면

- 소스코드 공개로 백도어 등을 통한 정보 유출 방지 가능

- 원천기술에 대한 접근이 용이해 양질의 핵심 소프트웨어 인력 양성 가능

 

OSS 특징

자유(복제, 설치, 운영, 수정, 배포의 자유)

- 기존 소스 코드 및 라이브러리의 재사용으로 생산성 향상

- 성숙한 공개 SW 커뮤니티의 프로젝트 적용으로 품질 보장


Copyleft(공개되어 있는 소스 코드)

-공개 되어 있는 소스 코드를 통해 알고리즘과 로직을 분석하고 응용할 수 있어 설계자, 개발자, 테스터의 소프트웨어 기술력 증강

무료(내부 사용, 외부 판매)

-TCO(Total Cost Ownership) 절감

-기술지원 및 유지보수 서비스를 기반으로 사업 가능


반환의무 (특정 공개 SW 라이선스 의 소스 코드 공개 의무)

-GPL, LGPL, MPL, CPL, IBM, EPL, OSL, Qt 등이 해당됨

-연결된 소프트웨어의 소스 코드 공개의무가 발생

-비공개 SW 가 공개 SW 로 변경될 수 있음

-특허, 영업비밀, 핵심기술 등의 외부 유출 가능성 존재


저작권 (저작권법에 따른 법적 권 리 보장)

-공개 SW 라이선스 미 준수 시 저작자와 분쟁 가능

-협력업체가 저작권 위반 시 협력업체가 책임을 지더라도 최종적으로 고객이 동의하지 않는 소스 코드 공개 등은 공급사의 부담이 됨



4. OSS 의 사용증가 배경


1차 원인

- 개발 시간 단축 및 비용절감

- 개발 후 사후지원 편의성

- 높은 코드 품질


2차 원인

- 2차 저작물의 소스 코드 공개 없는 라이센스 활성화

- MIT, Apach, BSD, LPGL

 

5. OSS 의 조건

자유배포 (Redistribution)

SW 의일부 또는 전부가 경제적 보상과 무관하게 재배포 가능해야 함


소스코드공개(Source Code)

소스코드는 바이너리 실행과 함께 사용자가 접근 가능한 경로로 제공 되어야 함


파생작업허용(Derived Works)

- 변경/파생작업을 허용해야 하며, 해당 결과물은 동일한 라이선스 특성을 부여 받아야 함


소스코드의 일관성확보(Integrity of the author’s Source Code)

- 프로그램의 빌드 시 변경을 위하여 소스 코드와 패치 파일을 제공할 경우, 라이선스 내에 소스코드 수정 제한 항목 추가 가능


차별금지

- 개인, 단체에 대한 차별 금지

- 사용 분야에 대한 차별 금지


라이선스의 배포 (Distribution of License)

프로그램에 대한 관리는 반복되는 배포에 따른 별도의 라이선스 승인이나 양도 과정 없이도 모든 사람에게 배포


라이선스 적용상의 동일성 유지

- 라이선스는 제품에 특정적이지 않아야 함(License must not be specific to a product)

- 모든 배포 단계에서 동일한 효력(최초의 배포된 상태와 같이)


다른 라이선스의 포괄적 수용

- 라이선스에 대한 오픈 소스를 함께 배포되는 소프트웨어에 대한제한을 설정하면 안됨

 

6. OSS 필요성

- 해외의 대형 SW업체에 종속적인 국내 SW산업의 구조적 경쟁력 확보

- 대형 SW 업체의 제품 군 범위 벗어난 전반적인 정보시스템 호환성 및 보안성 확보

 

OSS는 “공개”라는 용어로 인해 프리웨어와 셰어웨어 등과 혼동하기 쉽지만 OSS는 비용의 관점이 아닌 소스의 공유 관점에서 이해

 

GPL(General Public License) 2.0

정의

-자유 소프트웨어 재단(Free Software Foundation)이 자신의 소프트웨어에 대한 저작권을 확보한 뒤, 이러한 권리를 전제하고 소프트웨어의 자유로운 공유 및 수정을 보장하기 위해 만들어진 License

-GPL을 가진 프로그램을 유료로 판매하는 것은 가능하지만, 반드시 전체 소스코드는 무료로 공개해야 함


내용

-소프트웨어에 대한 자유로운 사용, 복제, 배포 및 수정을 허용

-소프트웨어를 배포하는 경우, 저작권 표시, 보증책임이 없다는 표시 및 GPL 에 의해 배포 된다는 사실 명시

-Linux 를 기반으로 개발된 Application 은 소스 공개할 필요 없음


관련 제품/프로젝트

GNU, Linux, GCC, Apache, MySQL, PHP, Java

LGPL(GNU Lesser General Public License 2.1

정의

- FSF 가 일부 Library 에 GPL 보다 다소 완화한 형태로 오픈 소스 소프트웨어의 사용을 장려하기 위한 전략적 차원의 License  본인의 링크(응용프로그램) 소스코드는 공개 안해도 됨

- 목적 : 사용장려, 표준 유도


내용

- 소프트웨어에 대한 자유로운 사용, 복제, 배포 및 수정 허용

- 소프트웨어를 배포하는 경우, 저작권 표시, 보증 책임이 없다는 표시 및 LGPL 에 의해배포된다는 사실 명시

- LGPL Library 의 일부를 수정하는 경우(파생된 라이브러리를 수정한 경우), 수정한 Library 를 LGPL 에 의해 소스코드 공개해야 한다.

- SW 링크(Static 과 Dynamic Linking 모두)의 경우 소스 공개할 필요 없음, -단 수정 후 동일한 실행파일과 Static Linking 시 Object Code 를 공개


관련 제품/프로젝트

Mozilla, Open Office

BSD(Berkeley Software Distribution)

정의

GPL/LGPL 보다 배포 및 라이선스가 덜 제한적인 License


내용

- GPL 과의 가장 큰 차이: BSD License 를 따르는 소스코드를 구하여 수정한 후, 소스를 공개하지 않고 BSD 가 아닌, 다른 라이선스 적용하여 판매 가능

- Apache 웹 서버 등에 사용되는 라이선스로 사용자에게 거의 제한을 가하지 않음.


관련 제품/프로젝트

MPL(Mozilla Public License)

정의

- 네스케이프(Netscape)사가 개발한 모질라(Mozilla) 브라우저의 소스코드를 공개하는데 사용한 라이선스.

- 소스코드와 실행파일을 분리/보완하여 만듦


내용

- 소스코드: 소스코드는 반드시 공개되어야 하며 소스코드를 수정하였을 경우에는 최초의 저작자에게 수정한 내용을 통지해야 함.

- 실행파일: 실행파일 자체를 독점 라이선스로 배포할 수 있음.

- 저작자의 이익보호 및 수정, 보완된 소프트웨어의 배포를 통한 상업적인 이익보호.

- 적정한 가격을 요구할 수 있고, 불법복제에 대해 제재를 가할 수도 있음. 기술적으로 개선을 할 경우, 코드를 보고 수정한 후, 컴파일 하여 새로운 독창적인 버전으로 재 배포할 수 있음.


관련 제품/프로젝트

Mozilla




주요 오픈 소스 소프트웨어 라이선스 비교

소프트웨어라이선스무료이용배포허용이용상제한없음소스코드 취득 수정가능파생물 재공개상용 SW와 연결가능성

Public Domain  
Shareware        
Freeware      
GPL
LGPL ○(소스재공개 해야함)
BSD

- LGPL 라이브러리의 소스코드를 수정하였을 때에는 2 차적 파생 저작물에 해당하므로, 라이브러리의 소스코드를 제공해야 함. 위의 소스 재 공개는 파생물에 한함. 본인 소스틑 공개 안 함. 즉, GPL은 응용 프로그램(본인 부분까지도) 공개를 해야 했음.

반응형

'개발자' 카테고리의 다른 글

CUBE CMS  (0) 2020.08.07
Open API 가이드  (0) 2020.08.03
HTML Symbols, Entities and ASCII Character Codes  (0) 2020.07.25
PMP Agile 바이블 (PMBOK 6th Edition) – Release Date + Changes + PDF to download  (0) 2020.07.21
유튜브 NCS 채널  (0) 2020.07.16