Open Source

jonghwan·2022년 9월 30일
0

멋쟁이사자처럼

목록 보기
2/28
post-thumbnail

오픈 소스란 ?

오픈소스(Open Source)

원래 오픈 소스 소프트웨어(Open Source Software, OSS)를 뜻하는 용어

오픈 소스 소프트웨어는 공개적으로 액세스할 수 있게 설계되어 누구나 자유롭게 확인, 수정, 배포할 수 있는 코드

오픈 소스 소프트웨어는 동료 평가(peer review) 와 커뮤니티 기반 프로덕션에 의지하므로, 분산된 동시에 협업 방식으로 개발

단일 작성자 또는 기업이 아닌 커뮤니티가 개발하므로 독점적 소프트웨어보다 저렴하고, 유연하며, 지속성이 있다.

오픈 소스 소프트웨어(Open Source Software)

오픈 소스 소프트웨어는 최종 사용자가 소스 코드를 합법적으로 사용할 수 있도록 특별한 라이센스를 통해 릴리스
대표적인 OSS 라이센스

  • 추가 비용 없이 소스 코드 형식으로 제공
    • 사용자는 소프트웨어를 구성하는 코드를 볼 수 있으며, 원하는 경우 얼마든지 변경 가능
  • 소스 코드를 새 소프트웨어에 다른 용도로 사용 가능
    • 누구든 해당 소스 코드를 활용해 자신의 프로그램을 만들고 이를 배포 가능

오픈 소스 소프트웨어가 반드시 무료로 제공되는 실행 가능한 소프트웨어라는 의미는 아님

그러나 그 소스 코드는 무료로 제공되어야 한다.

자유 소프트웨어(Free Software)

프리 소프트웨어 운동

  • 1970년대 해커문화에서 시작
  • 대표적인 인물, Richard Stallman
  • 무료가 아니라 사용자의 자유를 강조함

소스 코드를 변경하고, 변경한 소프트웨어를 공유하려면 원래 프로젝트에 해당 변경 사항을 다시 공유해야만 한다. (OSS와 다른점)

OSS와 가치공유로 "프리 오픈 소스 소프트웨어(Free and Open Source Software, FOSS)" 라는 용어가 널리 사용됨

오픈 소스 개발 모델의 작동방식

오픈 소스 개발 모델은 오픈 소스 커뮤니티 프로젝트에서 오픈 소스 프로젝트를 개발하기 위한 프로세스

이러한 소프트웨어는 오픈 소스 라이센스로 출시되어, 누구든지 소스 코드를 보고 수정가능

대부분의 오픈 소스 프로젝트는 GitHub에서 호스팅되며, 여기에서 저장소(Repository)에 접속하거나 커뮤니티 프로젝트에 참여할 수 있습니다.

대표적인 예 - 리눅스, 쿠버네티스

오픈 소스의 가치

동료평가

소스 코드에 누구나 액세스할 수 있으며 오픈소스 커뮤니티 자체도 활발하기 때문에, 오픈 소스 코드는 동료 프로그래머에 의해 적극적으로 검토 및 개선될 수 있다.

침체 상태에 놓인 비공개 코드보다 훨씬 살아 있는 코드라고 간주할 수 있다.

투명성

오픈 소스를 사용하면 해당 코드에서 어떤 종류의 데이터가 어디로 이동했는지, 어떤 변경 사항이 있었는지 정확하게 파악해야 하는 경우 벤더에 의존할 필요 없이 직접 이를 확인 및 추적할 수 있다.

안정성

독점 코드의 경우 해당 코드의 업데이트, 패치 작업을 제어하는 단일 작성자 또는 기업에 의존해야 한다.

오픈 소스 코드는 활발한 오픈 소스 커뮤니티를 통해 지속적으로 업데이트되므로 오래 지속되고 오픈 표준과 동료 평가를 통해 테스트 역시 적절한 방식으로 자주 이루어진다.

유연성

오픈 소스는 수정을 강조하므로 오픈 소스 코드를 사용해 자신의 비즈니스 또는 커뮤니티에서 겪고 있는 고유한 문제를 해결할 수 있다.

해당 코드를 특정한 방식으로만 사용해야 한다는 법이 없으므로, 새로운 솔루션을 구현할 때 커뮤니티의 도움을 받고 동료 프로그래머에게 검토받을 수도 있다.

비용절감

오픈 소스 코드 자체가 무료입니다. Ubuntu, Oracle(MySQL), Red Hat과 같은 기업을 활용하는 경우 지원 서비스, 보안강화, 상호 운용성 관리와 같은 부분에 비용을 지불하게 된다.

오픈 협업

활발한 오픈 소스 커뮤니티 덕분에 하나의 관심 그룹 또는 기업에 의존하지 않고 다양한 지원, 리소스, 관점을 접할 수 있다.

오픈 소스 소프트웨어 라이선스 유형

퍼블릭 도메인 라이선스

Public Domain License

누구나 제한 없이 소프트웨어를 수정, 사용 또는 상업화 할 수 있다.

대부분의 경우 퍼블릭 도메인 오픈 소스 소프트웨어 제작자는 소프트웨어에 저작권을 부여하지 않기로 의도적이거나 자발적인 결정을 내렸다.

허용적 라이선스

허용적 오픈 소스 라이선스에는 소프트웨어를 수정하거나 배포하는 방법에 대한 최소한의 요구 사항이 포함되어 있다.

대표적인 예

  • Apache 라이선스
  • BSD(BerKeley Source Distribution) 라이선스

원본 소프트웨어는 저작권이 있고 오픈 소스이지만 사용자는 수정된 버전을 상업화하고 재배포할 수 있다.

약소 일반 퍼블릭 라이선스

LGPL (GNU Library General Public License)

약소 일반 퍼블릭 라이선스(LGPL)로 오픈 소스 구성 요소를 무제한으로 사용할 수 있다.

이러한 구성 요소는 코드에 연결하여 사용할 수 있는 라이브러리라는 코드 모듈로 액세스할 수 있는 경우가 많다.

애플리케이션에서 LGPL 소스 코드를 사용하면 애플리케이션을 상용화할 수 있다.

단, 기존 LGPL 코드를 수정하는 경우 동일한 라이선스로 재배포해야 한다.

카피레프트 라이선스

Copyleft License

가장 일반적인 오픈 소스 라이선스이며 일반 퍼블릭 라이선스(GPL)가 대표적인 예. 카피레프트 라이선스 조건은 상업화를 제한한다.

카피레프트 오픈 소스 구성 요소를 수정하는 경우 애플리케이션과 함께 모든 새 소스 코드를 릴리스해야 한다. 그러나 애플리케이션을 내부에서만 사용하고 일반에 공개하지 않는 경우에는 그럴 필요가 없다.

GPL 수정본을 판매할 수 있지만 구매자가 원하는 경우 추가로 재배포할 수 있다.

새 코드의 저작권 설명에 모든 과거 코드 작성자의 기여한 바를 밝혀야 한다.

누가 오픈 소스 소프트웨어를 규제하나요?

Open Source Initiative(OSI)

모든 유형의 오픈 소스 소프트웨어에 대해 교육하고 지지하는 글로벌 비영리 조직

표준 기관으로서 소프트웨어를 오픈 소스로 만드는 조건을 법적으로 정의하는 문서인 오픈 소스 정의를 유지 관리

Open Source Initiative의 오픈 소스 정의를 따르면 OSI 승인 라이선스 상표를 받을 수 있다. 상표는 신뢰를 구축하고 다른 사람들이 귀화와 함께 기여하고 협업하도록 장려한다. OSI는 승인된 라이선스 목록을 유지 관리하고 오픈 소스 커뮤니티에서 새 라이선스를 승인한다. 또한 소프트웨어에 대한 공개 표준 요구 사항을 규제한다.

0개의 댓글