LumoMate
LumoMate/용어집/DisciplineProduct / Process

오픈 소스

오픈 소스(Open Source)는 프로그램이 작동하게 만드는 사람이 읽을 수 있는 지침인 소스 코드가 공개적으로 제공되는 소프트웨어를 말합니다. 누구나 보통 특정 라이선스 조건에 따라 코드를 보고, 사용하고, 수정하고, 배포할 수 있습니다.
핵심 요약
  • 오픈 소스 소프트웨어는 누구나 소스 코드를 보고, 사용하고, 수정하고, 배포할 수 있도록 공개된 소프트웨어입니다.
  • Linux, Firefox, Python, Android 등 유명한 오픈 소스 프로젝트들이 대부분의 인터넷을 구동하고 있습니다.
  • 오픈 소스는 투명성, 협업, 혁신을 촉진하며, 종종 무료로 사용할 수 있는 고품질의 안전한 소프트웨어를 만들어냅니다.

오픈 소스란 무엇인가요?

오픈 소스(Open Source)는 프로그램이 작동하게 만드는 사람이 읽을 수 있는 지침인 소스 코드가 공개적으로 제공되는 소프트웨어를 말합니다. 누구나 보통 특정 라이선스 조건에 따라 코드를 보고, 사용하고, 수정하고, 배포할 수 있습니다.

오픈 소스의 반대는 독점(Proprietary) 또는 "클로즈드 소스" 소프트웨어로, 소스 코드는 만든 회사가 비밀로 유지합니다. 독점 소프트웨어는 프로그램을 사용할 수 있지만, 어떻게 작동하는지 볼 수 없고 변경도 할 수 없습니다.

오픈 소스는 단순한 기술적 개념이 아니라 투명성, 협업, 공유 지식의 원칙 위에 세워진 철학이자 운동입니다.

FIG. 1오픈 소스 — 다른 각도에서.

일상의 비유로 이해하기

차를 구매하는 것을 상상해 보세요. 독점 소프트웨어는 잠긴 후드가 있는 차와 같습니다 — 운전은 할 수 있지만, 엔진을 보거나 직접 수정하는 것이 허용되지 않습니다. 무언가 고장나면 공식 대리점에 가져가야 합니다.

반면 오픈 소스 차는 모든 기계 도면, 부품 레이블, 수리 허가가 함께 제공됩니다. 엔진이 어떻게 작동하는지 읽을 수 있고, 직접 수리하거나, 개선하고, 개선 사항을 다른 차주들과 공유할 수도 있습니다. 숙련된 정비사들이 모두에게 혜택이 되는 업그레이드를 기여할 수도 있습니다.

오픈 소스 소프트웨어도 같은 방식으로 작동합니다. "엔진"(소스 코드)이 모든 사람에게 보이고 사용 가능합니다.

왜 중요한가요?

오픈 소스는 기술과 사회에 지대한 영향을 미쳤습니다:

  • 투명성과 신뢰: 누구나 코드를 검사해 숨겨진 악성 소프트웨어, 백도어, 개인정보 침해가 없는지 확인할 수 있습니다. 보안에 민감한 소프트웨어에 특히 중요합니다.
  • 협업: 전 세계 수천 명의 개발자가 개선 사항, 버그 수정, 새로운 기능을 기여할 수 있습니다. 이 집단적 노력은 종종 단일 회사가 만들 수 있는 것보다 더 견고한 소프트웨어를 만들어냅니다.
  • 비용: 오픈 소스 소프트웨어는 보통 무료로 사용할 수 있어 개인, 기업, 정부의 비용을 줄입니다.
  • 혁신: 오픈 소스를 통해 사람들이 서로의 작업 위에 구축할 수 있습니다. Android, 인터넷 자체, 전 세계 웹 서버의 대부분이 오픈 소스 기반에서 실행됩니다.
  • 교육: 학생과 독학 개발자들이 실제 코드를 읽어 전문 소프트웨어가 어떻게 만들어지는지 배울 수 있습니다.

작동 방식

대부분의 오픈 소스 프로젝트는 개발자들이 다음을 할 수 있는 GitHub 같은 플랫폼을 통해 관리됩니다:

  1. 포크(Fork): 독립적으로 작업하기 위해 전체 프로젝트를 복사합니다.
  2. 변경: 버그를 수정하거나, 기능을 추가하거나, 성능을 개선합니다.
  3. 풀 리퀘스트 제출: 변경 사항을 메인 프로젝트에 합치도록 제안합니다.
  4. 토론: 코드 리뷰, 이슈 추적, 문서화가 모든 사람에게 공개적으로 이루어집니다.

오픈 소스 프로젝트는 규칙을 정의하는 라이선스를 사용합니다. 일반적인 라이선스는:

  • MIT 라이선스: 매우 허용적 — 상업 제품에 사용하는 것을 포함해 거의 모든 것을 코드로 할 수 있습니다.
  • GPL(GNU 일반 공중 사용 허가서): 코드를 수정하고 배포하는 경우, 같은 라이선스로 수정 사항도 공유해야 합니다.
  • Apache 라이선스: MIT와 유사하며, 특허 관련 추가 보호가 있습니다.

자주 볼 수 있는 예시

프로젝트분류중요한 이유
Linux운영 체제대부분의 웹 서버, Android, 클라우드 인프라를 구동
Firefox웹 브라우저오픈 코드로 구축된 개인정보 중심 브라우저
Python프로그래밍 언어세계에서 가장 인기 있는 언어 중 하나, ML과 데이터 과학에 널리 사용
WordPressCMS전 세계 웹사이트의 상당 부분 구동
Android모바일 OSLinux 기반; 세계에서 가장 많이 사용되는 모바일 운영 체제
Kubernetes인프라구글, 넷플릭스 같은 회사에서 클라우드 배포를 관리

핵심 정리

오픈 소스 소프트웨어는 코드를 공개적으로 공유하면 모두에게 기술이 더 좋아진다는 생각 위에 세워졌습니다. 현대 인터넷의 기반을 만들었고, 수십억 명이 매일 사용하는 도구를 구동합니다. 코드를 작성하든 안 하든, 오픈 소스는 여러분이 상호작용하는 거의 모든 소프트웨어에 영향을 미칩니다.

오픈 소스 모델은 투명한 협업이 세계적 수준의 기술을 만들어낼 수 있음을 — 종종 비싼 독점 대안을 능가하면서 — 증명합니다.

관련 용어

  • API — 많은 오픈 소스 프로젝트가 API를 통해 기능을 노출하여 다른 사람들이 그 위에 구축할 수 있게 합니다.
  • 클라우드 컴퓨팅 — 웹 서버에서 컨테이너 플랫폼까지 대부분의 클라우드 인프라는 오픈 소스 소프트웨어에서 실행됩니다.
  • SaaS — 많은 SaaS 제품이 오픈 소스 프레임워크와 라이브러리 위에 구축됩니다.
  • 머신러닝 — TensorFlow, PyTorch 같은 인기 ML 프레임워크는 오픈 소스로, 광범위한 채택을 가능하게 합니다.
  • GitHub — 오픈 소스 코드를 호스팅하고 협업하는 가장 인기 있는 플랫폼입니다.

출처

  • 오픈 소스 이니셔티브(OSI) — "오픈 소스 정의": 오픈 소스로 인정받기 위한 기준을 정의하고 승인된 라이선스를 유지하는 권위 있는 기관. (opensource.org)
  • Red Hat — "What is open source?": 선도적인 오픈 소스 기업의 오픈 소스 원칙과 역사 설명. (redhat.com)
  • GitHub — 오픈 소스 가이드: 오픈 소스 프로젝트에 기여하고 유지관리하기 위한 실용적인 가이드. (opensource.guide)
매주 월요일 오전 8시

한 주에 한 통,
오래 남는 이해를 보냅니다.

흘려보내지 않는 글만 골라 보내드립니다. 광고와 추적, 외부로 빠지는 미끼 링크 없이 메일 안에서 끝나는 한 통입니다.

언제든 한 번의 클릭으로 해지할 수 있습니다. 스팸은 보내지 않습니다.