오픈소스란?

URL 복사

오픈소스란 원래 오픈소스 소프트웨어(Open Source Software, OSS)를 뜻하는 용어입니다. 오픈소스 소프트웨어는 공개적으로 액세스할 수 있게 설계되어 누구나 자유롭게 확인, 수정, 배포할 수 있는 코드입니다.

오픈소스 소프트웨어는 동료 평가(peer review) 와 커뮤니티 기반 프로덕션에 의지하므로, 분산된 동시에 협업 방식으로 개발됩니다. 단일 작성자 또는 기업이 아닌 커뮤니티가 개발하므로 독점적 소프트웨어보다 저렴하고, 유연하며, 지속성이 있습니다.

오픈소스는 단순한 소프트웨어 프로덕션을 넘어서는 작업 방식이자 하나의 흐름이 되었습니다. 이러한 흐름은 오픈소스 소프트웨어의 가치와 분산된 프로덕션 모델을 활용하여 커뮤니티와 업계가 당면한 문제를 해결할 새로운 방법을 찾습니다.

오픈소스 소프트웨어란?

1950년대와 1960년대 초기 인터넷 기술과 통신 네트워크 프로토콜을 개발하던 연구원들은 개방적인 협업 환경에서 연구를 진행했습니다. 이후 현대 인터넷의 기반이 된 ARPANET(Advanced Research Projects Agency Network)는 동료 평가와 열린 피드백 프로세스를 권장했습니다. 사용자 그룹은 서로 소스 코드를 공유하고 이를 기반으로 자신의 소스를 구축해 나갔으며 포럼은 오픈 커뮤니케이션 및 협업을 위한 논의를 촉진하고 표준을 개발하는 데 도움이 되었습니다. 이러한 과정을 거쳐 1990년대 초반 인터넷이 탄생할 무렵에는 이러한 협업과 동료 평가, 커뮤니케이션, 개방성의 가치가 그 기반으로 자리 잡게 되었습니다.

오픈소스의 발전 현황

Red Hat 리소스

오픈소스 개발 모델은 오픈소스 커뮤니티 프로젝트에서 오픈소스 프로젝트를 개발하기 위한 프로세스입니다. 이러한 소프트웨어는 오픈소스 라이센스로 출시되어, 누구든지 소스 코드를 보고 수정할 수 있습니다. 

대부분의 오픈소스 프로젝트는 GitHub에서 호스팅되며, 여기에서 리포지토리에 액세스하거나 커뮤니티 프로젝트에 참여할 수 있습니다. Linux®, Ansible, 쿠버네티스가 대표적인 오픈소스 프로젝트의 예입니다. 

Red Hat은 오픈소스 소프트웨어 개발 모델을 사용해 엔터프라이즈 오픈소스 제품과 솔루션을 제작합니다. Red Hat 개발자들은 IT 스택 전반의 수백 개 오픈소스 프로젝트에 활발히 참여하고 있습니다.

Red Hat은 고객 요구사항의 일부 또는 전체를 충족하는 커뮤니티 기반 오픈소스 소프트웨어로 시작합니다. Red Hat은 오픈소스 프로젝트를 기반으로 시작해 보안을 강화하고, 취약점에 패치를 적용하고, 새로운 엔터프라이즈 기능을 추가합니다.

그런 다음 커뮤니티 전체에 혜택이 돌아가도록 이러한 개선 사항을 원래 프로젝트에 다시 적용합니다.

고객은 Red Hat 소프트웨어를 사용하면서 피드백을 제공하고 버그 리포트를 제출하며 요구사항이 변하는 경우 추가 기능을 요청합니다. 이러한 고객의 의견은 Red Hat의 제품 개발에서 가이드가 됩니다.

Red Hat 개발 모델 자세히 알아보기

Linux는 GNU GPL(General Public License)을 사용하여 출시된 무료 오픈소스 운영 체제(OS)입니다. 또한 최대의 오픈소스 소프트웨어 프로젝트이기도 합니다.

Linux 운영 체제는 Unix의 원칙과 설계를 기반으로 했던 MINIX 운영 체제를 대체할 무료 오픈소스 버전으로 제작되었습니다.

Linux는 소프트웨어 사용 제한을 방지하는 오픈소스 라이센스에 따라 릴리스되므로 누구든지 소스 코드를 실행, 연구, 수정, 재배포할 수 있으며, 동일한 라이센스가 유지되는 한 수정한 코드의 복사본을 판매할 수도 있습니다.

Linux 자세히 알아보기

오랫동안 오픈소스 소프트웨어는 "프리 소프트웨어"라는 초기의 개념을 유지했습니다. 프리 소프트웨어 운동은 1983년 Richard Stallman이 GNU Project를 통해 확립한 것으로 소스 코드를 보고, 수정하고, 재배포하는 데 있어 사용자의 자유가 가장 중요하며 사용자가 필요한 방식으로 작업할 수 있게 해야 한다는 생각에서 출발했습니다.

프리 소프트웨어는 독점 또는 "비공개 소스" 소프트웨어와 대응 관계에 있습니다. 비공개 소스 소프트웨어는 철저히 보호되며 소스 코드를 보유한 사람만 해당 코드에 접근할 수 있는 법적 권한을 갖습니다. 비공개 소스 코드는 법적으로 변경 또는 복사가 허용되지 않습니다. 사용자는 제작 의도대로만 해당 소프트웨어를 사용해야 하고 새로운 용도에 맞게 수정하거나 커뮤니티와 공유할 수 없습니다.

하지만 "프리 소프트웨어"라는 이름은 많은 혼란을 가져왔습니다. 프리 소프트웨어는 마음대로 소유하는 것이 아니라, 원하는 방식으로 자유롭게 사용할 수 있다는 데 초점을 맞추고 있습니다. 흔히 "프리란 자유에 초점을 맞춘 것이지, 무료란 의미가 아니기 때문"이라고 설명합니다. "오픈소스"라는 용어를 만든 Christine Peterson은 '프리 소프트웨어'를 '오픈소스'라는 용어로 대체함으로써 이러한 문제를 해결하려 했습니다. "이전에 사용되던 '프리 소프트웨어'라는 용어는 그 정치적 함의에 문제가 있는 것이 아니라, 새로운 참여자들이 가격에 더 초점을 맞춘다는 데 문제가 있었습니다. 소스 코드의 핵심적 이슈에 초점을 맞추고 개념을 새로 접하는 사람들이 혼란을 일으키지 않을 용어가 필요했습니다."

Peterson은 '프리 소프트웨어'라는 용어를 '오픈소스'로 대체하자는 아이디어를 오픈소스 소프트웨어 사례를 더 넓은 시장으로 이끄는 데 전념하고 있던 그룹에 제시했습니다. 이 그룹은 소프트웨어가 공유되어 협력적이고 개방적인 방식으로 수정 가능하게 되었을 때 더 발전한다는 것을 세상에 알리고자 했습니다. 그래야 소프트웨어를 새롭고 더 나은 방식으로, 벤더에 종속되는 일 없이 더욱 유연하고 저렴하고 지속적으로 활용할 수 있기 때문입니다.

Eric Raymond 역시 이 실무 그룹의 멤버로서 1997년에 많은 이들에게 영향을 미친 에세이인 "성당과 시장"에서 이와 비슷한 주장을 펼쳤습니다. 1998년, 이 에세이에 대한 대응의 일환으로 Netscape Communications Corporation은 Mozilla 프로젝트를 오픈소스화하여 소스 코드를 프리 소프트웨어로 공개하였으며 이 오픈소스 형식의 코드는 이후 Mozilla Firefox와 Thunderbird의 기반으로 사용되었습니다.

Netscape가 오픈소스에 대한 공개적인 지지를 발표한 후, 커뮤니티에서는 프리 소프트웨어 운동의 실질적인 비즈니스적 측면을 강조할 수 있는 방법을 생각해 내야 한다는 부담감에 시달렸고 이로 인해 오픈소스와 프리 소프트웨어라는 용어는 분리되었습니다. '오픈소스'라는 말은 프리 소프트웨어의 방법론과 프로덕션 및 비즈니스 측면을 옹호하는 용어로, '프리 소프트웨어'는 사용자의 자유라는 철학적인 개념을 강조하기 위한 용어로 사용됩니다.

1998년 초 Open Source Initiative(OSI)가 설립되면서 오픈소스라는 말이 공식화되었고, 업계에서 널리 통용되는 일반적인 정의를 갖게 되었습니다. 1990년대 후반에서 2000년대 초반까지 오픈소스 운동은 꾸준히 경계와 의심의 대상이었지만, 오늘날은 소프트웨어 프로덕션의 변방에서 업계 표준으로 점차 자리 잡게 되었습니다.

프리 소프트웨어가 유료 소프트웨어보다 사실상 더 많은 비용이 드는 이유

사람들이 독점 소프트웨어가 아닌 오픈소스를 선택하는 데는 다양한 이유가 있지만 가장 일반적인 이유는 다음과 같습니다.

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

Red Hat은 세계 최대의 오픈소스 기업입니다. Red Hat은 오픈소스 프로젝트에서 비롯된 오픈소스 제품들을 구축하고 지원하며, Red Hat이 참여하고 있는 커뮤니티와 프로젝트에 기여합니다. Red Hat은 오픈소스 라이센스를 보호하며, 오픈소스를 사용하여 고객의 성공을 지원합니다. 또한 커뮤니티에서 구축한 코드를 활용해 보안을 강화하고 기능을 추가하여 확장 가능한 엔터프라이즈 레디로 만든 다음 커뮤니티 전체의 이익을 위해 이러한 개선 사항을 원래 프로젝트에 다시 적용합니다.

자세히 알아보기
허브

레드햇 공식 블로그

레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.

모든 Red Hat 제품 체험판

무료 제품 체험판을 통해 핸즈온 경험을 얻고, 자격증 시험에 대비하거나 해당 제품이 조직에 적합한지 평가할 수 있습니다.

추가 자료

Podman Desktop이란?

Podman Desktop은 로컬 개발자 환경에서 컨테이너 작업을 간소화하는 무료 오픈소스 툴입니다.

Podman: 리눅스에서 컨테이너 개발, 관리, 실행하는 오픈소스 툴

Podman은 리눅스 시스템에서 컨테이너 개발, 관리, 실행을 위한 오픈소스 툴이며 도커와 호환되는 명령어 인터페이스를 제공하여, 도커 사용자가 쉽게 전환할 수 있습니다

InstructLab이란?

InstructLab은 대규모 언어 모델을 개선하기 위한 오픈소스 프로젝트입니다.

오픈소스 리소스