본문 바로가기
🌐 공간정보

[스페이스인] 오픈소스와 공간정보의 만남 | 1. 오픈소스 소프트웨어

by 일단연 2023. 6. 2.

* 본 글은 공간정보교육포털 '스페이스인'의 [ 오픈소스와 공간정보의 만남 ] 강의를 듣고 정리한 글입니다.

[공간정보개론]으로는 부족한 것 같아 추가적으로 수강하였습니다.

비교적 과거의 강의이기 때문에 현재의 기술과는 차이가 있을 수 있습니다.

 

공간정보교육포털

공지사항서버 재기동(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) 산하의 공개 소프트웨어 역량 플라자, 공개소프트웨어협회
    • 위의 두 기관에서 공개 소프트웨어 관련 정책 제안 및 오픈소스 소프트웨어 사용 회사 및 기관들을 지원