* 본 글은 공간정보교육포털 '스페이스인'의 [ 오픈소스와 공간정보의 만남 ] 강의를 듣고 정리한 글입니다.
[공간정보개론]으로는 부족한 것 같아 추가적으로 수강하였습니다.
비교적 과거의 강의이기 때문에 현재의 기술과는 차이가 있을 수 있습니다.
공간정보교육포털
공지사항서버 재기동(23.04.06)에 따른 공간정보 교육포털 이용 안내 2023-03-24
www.spacein.kr
1. 오픈소스 기반 공간정보기술 개요
- 오픈소스 소프트웨어의 개념, 전망, 관련 정책
오픈소스 소프트웨어의 개념
- FOSS(Free & Open Source Software)
- 특정 라이센스에 따라 소프트웨어의 소스 코드가 공개되어 있음
- 예: Linux, Android, Apache, FireFox 등
- FOSS 사용자는 소프트웨어에 대한 자유로운 사용, 복사, 수정, 개작 및 재배포의 권한을 부여받음
- FOSS의 Free는 ‘공짜’를 의미하는 것이 아니라, 사용자가 소스 코드에 접근하고, 프로그램을 사용, 수정, 재배포할 수 있는 ‘자유’를 의미
- FOSS는 개방형 표준(Open Standard)과는 다른 의미. But, 일반적으로 FOSS는 국제적인 표준을 따르는 경향이 있음 (OGC와 OSGeo는 다른 조직)
오픈소스 소프트웨어와 공짜 소프트웨어(Freeware) 비교
FOSS | Freeware |
사용자가 직접 소스코드에 접근해 기능을 수정할 수 있도록 허용 | • 소스코드를 배포하지 않음 • 무료로 사용할 수 있는 바이너리만을 배포함 • 이용자가 자신만의 목적으로 기능을 수정할 수 없음 |
원 저작자가 사라지더라도 해당 소프트웨어의 사용자, 개발자 그룹이 계속 이를 활용/개선할 수 있음 | • 원 저작자가 자신의 사정에 따라 언제든 개발을 포기할 수 있음 • 최종 버전은 개발자가 마지막으로 배포한 상태에 그대로 머물게 됨 |
• FOSS를 지원하는 강력한 사용자, 개발자 그룹이 존재 • 이런 그룹 등이 자유롭게 FOSS를 유지 관리함 |
• 초기에는 테스트를 위해 무료로 배포됨 • But, 이후 유료화될 가능성이 언제든지 있음(Shareware) |
- FOSS는 ‘공짜(No-Cost)’ 소프트웨어와는 다른 개념임
- 현재는 FOSS 또한 상업용(Commecial) 소프트웨어로 간주되고 있음
- 사용하는 것은 공짜지만, 좋은 서비스나 품질을 원하면 회사나 서비스 제공업체에게는 비용을 지불하기 때문
- FOSS의 상대어는 폐쇄(Closed Source) 또는 독점(Proprietary) 소프트웨어
오픈소스 소프트웨어 시장
- Linux: 오픈소스 소프트웨어의 대표 격인 데스크탑 및 서버용 오픈소스 운영체제
- Android: 대표적인 모바일용 오픈소스 운영체제
- 오픈소스는 이미 생활 전반에서 사용되고 있으며, 활동 영역이 넓어지고 있음
오픈소스 소프트웨어의 자유
- Freedom of Software: 소프트웨어 사용
- Freedom of Use: 모든 사용자가 자유롭게 이용
- Freedom of Copy: 복사
- Freedom of Modify: 수정
- Freedom of Redistribute: 재배포
오픈소스 소프트웨어 개발 방식
- 공동 개발 방식으로 소프트웨어 개발
- 하나의 프로젝트/소프트웨어를 전 세계에 흩어져 있는 다양한 사람들과 조직들이 어우러져서 개발을 진행
- 공통 관심사를 갖는 사람들이 함께 특정 프로젝트/소프트웨어를 개발 > 자사의 개발 및 투자 비용을 절감하고 기업 외부의 인력과 기술을 내재화할 수 있음
- 외부 인력과 기수을 활용해 개발 비용을 절감하기 위해서는, 해당 기술을 이해하는 많은 외부 인력이 존재하고 이들이 오픈소스 소프트웨어를 통해 자신의 기술과 능력을 공유할 수 있는 환경이 필요함
- 공동 개발 방식은 네트워크 효과(Network Effect)에 의해 크게 영향을 받음
- 특정 임계점(Tipping Point) 이상의 개발자가 소프트웨어 개발에 참여해야만 소프트웨어가 성공적으로 유지, 관리, 개발됨
오픈소스 소프트웨어 vs 상용 소프트웨어 개발 방법 비교
오픈소스 소프트웨어 개발 방법 | 상용 소프트웨어 개발 방법 |
협력적, 개방적 개발방법론 | 위계적, 폐쇄적 개발방법론 |
소프트웨어의 설계와 개발이 다중에 의해 협력적으로 이루어짐 | 소프트웨어의 설계와 개발이 내부에서 이루어짐 |
자신과 외부 타인의 역량을 결합해 개발 | 내부의 지식, 지적재산권, 경험을 활용해 개발 |
‘We are smarter than Me’로 요약됨 | 외부의 훌륭한 지적 자산을 내부화하는 데에 한계가 발생 |
오픈소스 소프트웨어 라이센스
- 저작권 vs 사용허가권 비교
저작권(Copyright) | 사용허가권(License) |
창작에 의해 발생한 창작물에 대해 창작자(저작자)가 취득하는 독점적인 권리 | 저작권자가 다양한 필요에 의해 다른 사람 또는 기관에게 일정한 내용을 조건으로 해 자신의 저작물에 대해 특정 행위를 할 수 있도록 부여한 권한 |
등록 등의 요건이 필요없이 창작과 동시에 권리가 발생(무방식주의) | EULA(End User License Agreements)와 같이 일종의 계약서로 기능함 |
저작권이 있는 저작물의 경우 원 저작자나 저작권자의 허가 없이 저작물을 사용, 복제, 배포, 수정할 수 없음 | Windows 7를 Microsoft에서 구매했다고 이를 다른 컴퓨터에 복제, 수정, 설치하면 계약(라이센스) 위반이 되며, 이러한 의미에서 사용허가권은 물건의 매매와는 다른 개념임 |
- 지적재산권의 요소: 저작권, 특허, 상표, 영업비밀
- 주요 오픈소스 라이센스
- GPL: GNU Public License
- LGPL: Lesser(Library) GNU Public License
- BSD Alike: BSD, MIT License
- 기타: MPL, CCL, Public Domain, Apache…
- 오픈소스 라이센스 준수사항
- 저작권 관련 문구 유지
- 제품명 중복 방지
- 오픈소스 소프트웨어 사용 여부 명시
- 라이센스에 따른 소스코드 공개
- 저작권의 비독점 소유 방식
- 특정 라이센스를 통해 사용자들에게 소프트웨어 사용, 연구, 수정 및 배포에 있어 전반적인 권한을 제공
- 오픈소스 소프트웨어의 소스코드 관리 및 저작권 관계
- 주요 오픈소스 소프트웨어의 라이센스
무료로 소프트웨어 이용 및 배포 가능 |
소스코드 취득 및 수정 가능 |
2차적 저작물 재공개 의무 |
독점 소프트웨어와 결합 가능 |
|
GPL | O | O | O | X |
LGPL | O | O | O | O |
MPL | O | O | O | O |
BSD License |
O | O | X | O |
Apache License |
O | O | X | O |
- GPL(General Public License) ver 2.0, 3.0
- SW를 수정하거나 새로운 SW를 링크(Static/Dynamic Linking)시키는 경우 GPL에 의해 소스코드를 제공해야 함
- LGPL(GNU Lesser General Public License)
- 소스코드를 공개할 필요는 없음. But, 사용자가 라이브라리 수정 후 동일한 실행 파일을 생성할 수 있도록 Static Linking 시에는 응용 프로그램의 Object Code를 제공해야 함
- BSD(Berkeley Software Distribution)
- 수정 프로그램에 대한 소스코드의 공개를 요구하지 않기 때문에 상용 SW에 무제한 사용 가능
- Apache
- 수정 프로그램에 대한 소스코드의 공개를 요구하지 않기 때문에 상용 SW에 무제한 사용 가능
- 소스코드 공개 의무는 재배포하는 경우에 발생함
- 라이센스를 위반하면 FOSS와 독점 소프트웨어 모두 법적인 문제가 야기됨
- GPL-Violations.org, fsf.org, ffmpeg.org 등의 감시기구는 시스템 프로세스를 통해 어떤 소프트웨어에서 본인들의 라이센스를 사용했는지를 검사하는 커뮤니티
오픈소스 소프트웨어의 장점
- 오픈소스 소프트웨어를 활용할 경우의 기대 효과
- 비용 절감, 자원 절감, 안정성 증가, 소스코드 직접 수정, 외부 개발자들과의 직접 접촉, 국제화 가능
- 기술과 성과를 공유함으로써 협업적으로 사회를 발전시키는 기반으로 작동
- 1) 기술적 측면
- 세계적 수준의 소프트웨어를 빠른 속도로 개발 가능
- 다수의 외부 개발자들에 의한 소스코드 검토를 통해 소프트웨어 안정성 증가
- 주요 시장지배적 소프트웨어 사업자와의 기술 격차 해소 가능
- 뛰어난 외부 개발자의 내재화
- 2) 경제적 측면
- 저렴한 도입 비용
- 세계적 수준의 오픈소스를 사용함으로써 개발 비용 절감
- 소스코드 레벨의 커스터마이징
- 우수 성공 사례를 소스코드 레벨에서 재활용 가능
- 3) 사업적 측면
- 자사의 부족한 제품군을 단숨에 보완 가능
- 오픈소스를 활용해 다양한 고객의 수요에 대응 가능
- 회사 브랜드 가치 재고
- 4) 기타 측면
- 에너지 절감
- 심리적 만족감
- 낮은 이직률
오픈소스 소프트웨어 성장 전망
- 오픈소스 소프트웨어는 그 동안의 지속적인 성장을 통해 오픈소스 소프트웨어의 상업적 이용이라는 측면에서 급격히 성장
- ArcMap vs QGIS
- QGIS가 급격히 성장
오픈소스 소프트웨어 관련 정책 동향
- 유럽
- 오픈소스 개발 강화를 위해 오픈소스 소프트웨어 사용을 권장하는 정책 시행
- 자체적인 오픈소스 라이센스도 만들고 있어 정부부처가 오픈소스를 많이 사용
- 아시아: 말레이시아, 인도 등에서 활발
- 미국
- 오픈소스가 가장 활발
- NASA나 국방부에서 적극적으로 오픈소스 사용
- 러시아: 정부행정시스템에 공개 소프트웨어를 적용
- 호주: 상용 소프트웨어뿐만 아니라 공개 소프트웨어도 사용하도록 하는 법안을 개정
- 한국
- 오픈소스 소프트웨어를 관리하는 기관: 정보통신산업진흥원(NIPA) 산하의 공개 소프트웨어 역량 플라자, 공개소프트웨어협회
- 위의 두 기관에서 공개 소프트웨어 관련 정책 제안 및 오픈소스 소프트웨어 사용 회사 및 기관들을 지원