CS 공부

오픈소스란? (오픈소스 소프트웨어란?)

까루카라 2024. 2. 1. 22:06

오픈소스

오픈소스 소프트웨어를 뜻하는 용어

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

 

동료 평가 (peer review)와 커뮤니티 기반 프로덕션에 의지하므로, 분산된 동시에 협업 방식으로 개발된다. 

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

 

반드시 무료로 제공되는 실행 가능한 소프트웨어라는 의미는 아니다. 단, 그 소스 코드는 무료로 제공되어야 한다. 

예를 들면, Red Hat Enterprise Linux의 소스 코드는 누구에게든 무료로 제공되지만, 

이러한 소스 코드를 실행 가능한 코드로 변환하는 데는 전문 지식과 시간, 서버가 필요하다. 

Red Hat Enterprise Linux용 프로덕션 레디 코드를 원한다면 서브스크립션이 있어야 한다. 

 

오픈소스 커뮤니티는 기술을 가진 사람은 누구든 참여해 코드에 기여할 수 있는 오픈소스 프로젝트를 기반으로 조직된다.

이러한 그룹은 독점 소프트웨어 팀과 마찬가지로 오픈소스 프로젝트에 기여하기 위한 표준을 유지하면서도,

기여하려는 모두에게 이러한 프로세스를 공개한다. 

 

이러한 오픈소스 개발 모델을 기반으로 오늘날 많은 사람들이 사용하는 중요한 애플리케이션과 클라우드 플랫폼이 탄생하게 되었는데

이중 가장 유명한 것은 대부분의 웹을 지원하는 서비스 스택 모델인 LAMP이다. 

  • Linux: 오픈소스 운영 체제(OS)이자 세계 최대 규모의 오픈소스 프로젝트
  • Apache: 초기 웹에서 핵심 역할을 한 오픈소스 크로스 플랫폼 웹 서버
  • MySQL: 대부분의 데이터베이스 기반 웹 애플리케이션에서 사용하는 오픈소스 관계형 데이터베이스 관리 시스템
  • PHP: 소프트웨어 개발에 사용되는 범용 스크립팅 언어(가끔 Perl 또는 Python 언어로 대체됨)

 

오픈소스의 가치

  • 동료 평가
    소스 코드에 누구나 액세스할 수 있으며 오픈소스 커뮤니티 자체도 활발하기 때문에, 동료 프로그래머에 의해 적극적으로 검토 및 개선. 침체 상태에 놓인 비공개 코드보다 훨씬 살아 있는 코드라고 간주할 수 있다.
  • 투명성
    해당 코드에서 어떤 종류의 데이터가 어디로 이동했는지, 어떤 변경 사항이 있었는지 정확하게 파악해야 하는 경우
    벤더에 의존할 필요 없이 직접 이를 확인 및 추적할 수 있다. 
  • 안정성
    독점 코드의 경우 해당 코드의 업데이트, 패치, 작업을 제어하는 단일 작성자 또는 기업에 의존해야 한다.
    이에 반해, 오픈소스 코드는 활발한 오픈소스 커뮤니티를 통해 지속적으로 업데이트되므로 오래 지속되고,
    오픈 표준과 동료 평가를 통해 테스트도 적절한 방식으로 자주 이루어집니다.
  • 유연성
    오픈소스는 수정을 강조하므로, 오픈소스 코드를 사용해 자신의 비즈니스 또는 커뮤니티에서 겪고 있는 고유한 문제를 해결할 수 있다. 해당 코드를 특정한 방식으로만 사용해야 한다는 법이 없으므로, 새로운 솔루션을 구현할 때 커뮤니티의 도움을 받고 동료 프로그래머에게 검토받을 수 있다.
  • 비용 절감
    오픈소스 코드 자체가 무료.
    단, Red Hat과 같은 기업을 활용하는 경우 지원 서비스, 보안 강화, 상호 운용성 관리와 같은 부분에 비용을 지불할 수 있다. 
  • 벤더 종속성 없음
    오픈소스 코드를 언제 어디에든 가져가 원하는 목적으로 사용할 수 있으므로 사용자 중심의 자유를 누릴 수 있다. 
  • 오픈 협업
    활발한 오픈소스 커뮤니티 덕분에 하나의 관심 그룹 또는 기업에 의존하지 않고 다양한 지원, 리소스, 관점을 접할 수 있다.

 

 

 

https://www.redhat.com/ko/topics/open-source/what-is-open-source

 

오픈소스란?

오픈소스란 오픈소스 소프트웨어(Open Source Software, OSS)를 뜻하는 용어입니다. 오픈소스 소프트웨어의 코드는 누구든지 보고, 수정하고, 배포할 수 있습니다.

www.redhat.com

 

https://www.redhat.com/ko/topics/open-source/what-is-open-source-software

 

오픈소스 소프트웨어란?

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

www.redhat.com