검색

한국어

로그인 Account

로그인 / 등록 Account

웹사이트

오픈소스

오픈소스란?

오픈소스와 오픈소스 소프트웨어(OSS)란 무엇일까요?

오픈소스란 원래 오픈소스 소프트웨어(Open Source Software, OSS)를 뜻하는 용어입니다. 오픈소스 소프트웨어는 공개적으로 액세스할 수 있게 설계되어 누구나 자유롭게 확인, 수정, 배포할 수 있는 코드입니다. 오픈소스 소프트웨어는 동료 평가(peer review) 와 커뮤니티 기반 프로덕션에 의지하므로, 분산된 동시에 협업 방식으로 개발됩니다. 단일 작성자 또는 기업이 아닌 커뮤니티가 개발하므로 독점적 소프트웨어보다 저렴하고, 유연하며, 지속성이 있습니다.

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


인터넷과 그 역사를 함께하는 오픈소스

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


프리, 비공개, 오픈소스 소프트웨어의 차이점은 무엇일까요?

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

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

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

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

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

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

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


오픈소스의 가치는 무엇인가요?

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

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

소프트웨어 그 이상을 의미하는 오픈소스 운동

오픈소스는 코드 그 이상을 의미합니다. Red Hat은 오픈소스 성공 사례를 통해 오늘날 다양한 커뮤니티에서 오픈소스 기술을 어떻게 활용하고 있는지 공개하고 있습니다. 오픈소스 성공 사례는 커뮤니티, 능력 위주의 환경 및 자유로운 의견 교환을 통해 다양한 분야에서 잠재력을 활용하는 방법을 널리 알리는 멀티미디어 시리즈입니다. 최근 공개된 주요 내용은 다음과 같습니다.


Red Hat 오픈소스를 선택해야 하는 이유는 무엇일까요?

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

오픈소스 자세히 알아보기