본문바로가기

공개 소프트웨어의 역사와 정의

공개소프트웨어는 컴퓨터프로그램 개발의 역사와 같은 출발을 보이고 있는데 이는 초기프로그램 개발이 모두 공개적으로 개발되었기 때문이다. 이후 프로그램 개발 및 배급이 상용이 되면서 공개소프트웨어는 사용소프트웨어와는 별도의 조직과 개념으로 발전하였다.

역사 정의 결론

공개 소프트웨어의 역사

공개소프트웨어는 프로그램 소스를 공개한다는 의미로 프로그램 개발자 중심의 개념이다. 그러나 공개 소프트웨어의 진영에 따라 그 의미가 더욱 확대된다.

공개소프트웨어의 운동은 최초 창시자인 Richard Stallman의 자유소프트웨어 재단(Free software Foundation : FSF)의 자유소프트웨어(Free Software1)와 오픈소스이니셔티브(Open Source Initiative:OSI)의 오픈소스소프트웨어(Open source Software)의 양대 주류가 있다.

"자유소프트웨어 진영은 원칙주의로서 정보의 자유(freedom)을 강조하는 반면, 오픈소스 이니셔티브는 실용주의로서 코드의 공개 및 자유배포는 인정하되 공개소프트웨어 개발자들에게 경제적 보상도 강조한다."

공개 소프트웨어란?

공개소프트웨어(Open source software/Free software)는 누구에게나 차별없이 프로그램의 소스코드를 공개하고, 자유롭게 사용, 수정 및 재배포가 가능하도록 만든 소프트웨어를 말한다.

공개 소프트웨어의 정의

FSF의 정의
자유소프트웨어에 대한 정의는 공개소프트웨어 자체보다는 그것을 사용하는 자유로운(free) 행위에 초점을 둠.
"자유소프트웨어는 사용자가 소프트웨어를 실행, 복사, 배포, 연구, 수정 및 개선 할 수 있는 자유와 관련된 문제"
OSI의 정의
  1. 1자유로운 재배포
  2. 2소스코드 공개
  3. 32차적 저작물
  4. 4소스코드의 보전
  5. 5개인 또는 단체에 대한 차별금지
  6. 6사용분야에 대한 제한 금지
  7. 7라이선스의 배포
  8. 8제품에 라이선스의 동일한 적용
  9. 9타 라이선스의 포괄적 수용
  10. 10라이선스의 기술 중립성
Becta의 정의
프로그래밍 코드로 만들어진 비상업용 소프트웨어로서, 사용자들이 그 코드를 읽고, 수정하고, 자신의 수정사항을 더하여 새로운 버전으로 만들 수 있는 것이다. 다양한 종류의 공개소프트웨어들이 있는데, 이는 소스코드의 공개 및 배포를 전제로 한 서로 다른 라이선스 협약들에 의해서 규정된다.
Becta의 정의는 공개소프트웨어를 비상업용으로 국한 지어, 공개소프트웨어를 좁은 범위로 해석함

공개 소프트웨어의 성장배경

공개 소프트웨어의 성장배경
사용자 가치 비용절감 무료 라이선스에 따른 도입 비용 절감
종속성 탈피 특정 소프트웨어 및 하드웨어에 대한 고착 현상 탈피
도입 가능한 소프트웨어와 하드웨어에 대한 선택의 폭 증가
개방성 증가 표준 준수에 따른 개방성 증가
향후 필요에 따라 비표준 상용제품으로 전환이 용이
공급자 가치 원가절감 상용제품에 대비 저렴한 공급가
Tool의 경우 원가 비용이 발생하지 않음
수주 경쟁력 증가 제품 비용 절감 및 적용 제품에 대한 선택의 폭이 증가되어 수주 경쟁력이 향상됨
기술 역량 증가 소스코드가 공개되어 프로그램에 내재된 원천기술 습득이 용이함

공개 소프트웨어의 특징

  • 자유

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

    • 기존 소스 코드 및 라이브러리의 재사용으로 생산성 향상
    • 성숙한 OSS 커뮤니티의 프로젝트 적용으로 품질보장
  • Copyleft

    공개되어 있는
    소스 코드

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

    비용절감

    • 내부사용 : TCO(Total Cost Ownership) 절감
    • 외부사용 : 기술지원 및 유지보수 서비스를 기반으로 사업가능
  • 반환의무

    특정 OSS라이선스의
    소스 코드 공개 의무

    • GPL, LGPL, MPL, CPL, IBM, EPL, OSL, Qt 등이 해당됨
    • 연결된 소프트웨어의 소스코드 공개 의무가 발생 -비공개 SW가 OSS로 변경 될 수 있음
      특허, 영업비밀, 핵심기술 등의 외부 유출 가능성 존재
  • 저작권

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

    • OSS 라이선스 미 준수시 저작자와 분쟁 가능
    • 협력업체가 저작권 위반 시 협력업체가 책임을 지더라도 최종적으로 고객이 동의하지 않는 소스 코드 공개 등은 공급사의 부담이 됨