오픈 소스

용어심층

Open Source, 오픈소스

토큰포스트 위키인용하기

다른 이름 Open Source

오픈 소스(Open Source)는 소프트웨어의 소스 코드뿐 아니라 사용·수정·재배포 권한을 라이선스로 허용하는 배포 방식이다. 단순한 코드 열람, 무료 제공, 특정 용도만 허용하는 공개와는 구분되며, 실제 권리와 의무는 채택한 라이선스에 따라 달라진다.

1.개요#

오픈 소스(Open Source)는 소프트웨어의 소스 코드를 제공하면서 사용·수정·재배포 권한을 라이선스로 허용하는 배포 방식이다. Open Source Initiative의 정의는 소스에 접근할 수 있다는 사실만으로 충분하지 않으며, 파생물과 재배포를 허용하고 사람·단체나 사용 분야를 차별하지 않아야 한다고 정한다.

따라서 공개 저장소에서 코드를 읽을 수 있어도 상업적 사용이나 수정본 배포를 금지한다면 같은 의미의 오픈 소스로 볼 수 없다. 무료로 내려받는다는 것과도 다르다. 오픈 소스 소프트웨어의 판매나 유료 지원은 가능하며, 무료 여부보다 이용자에게 허용된 권리가 핵심이다.

권리에는 조건도 따른다. 예를 들어 MIT는 저작권·허가 고지의 포함을 요구하고, Apache License 2.0은 재배포 조건과 특허 관련 조항 등을 명시한다. 공개된 코드를 다시 쓰려면 해당 버전의 라이선스를 확인해야 한다. 코드 공개와 협업은 검토를 가능하게 하지만, 그 자체로 결함이 없다는 보증이 되는 것은 아니다.

[1][2][3]

2.핵심 원칙과 자유 소프트웨어#

오픈 소스가 성립하려면 단순히 코드를 볼 수 있게 하는 것을 넘어 몇 가지 자유가 보장되어야 한다. 일반적으로 통용되는 핵심 요건은 다음과 같다.

  • 열람(access): 소스 코드 자체를 제공하거나 쉽게 구할 수 있어야 한다.
  • 사용(use): 목적이나 분야를 차별하지 않고 누구나 사용할 수 있어야 한다.
  • 수정(modify): 코드를 고치고 개작한 파생물을 만들 수 있어야 한다.
  • 재배포(redistribute): 원본이나 수정본을 다시 배포할 수 있어야 한다.

오픈 소스는 그 뿌리를 자유 소프트웨어(Free Software) 운동에 두고 있다. 자유 소프트웨어 진영이 사용자의 '자유'라는 윤리적 가치를 강조한다면, 1998년 등장한 '오픈 소스'라는 표현은 기업과 산업계가 받아들이기 쉽도록 개발 방법론과 실용적 이점을 앞세운 것이다. 두 개념은 강조점이 다르지만 실제로 다루는 소프트웨어의 범위는 상당 부분 겹친다.

3.역사#

오픈 소스의 역사는 자유 소프트웨어 운동에서 출발한다.

3.1.자유 소프트웨어 운동

1983년 리처드 스톨먼(Richard Stallman)은 자유롭게 쓸 수 있는 운영체제를 만들겠다는 목표로 GNU 프로젝트를 시작했고, 1985년에는 이를 뒷받침하기 위해 자유 소프트웨어 재단(FSF)을 설립했다. 1989년 발표된 GNU GPL은 '수정·재배포한 코드도 같은 자유를 유지해야 한다'는 카피레프트(copyleft) 원칙을 라이선스로 정식화했다.

3.2.리눅스와 대중화

1991년 리누스 토르발스(Linus Torvalds)가 공개한 리눅스 커널은 GNU 도구들과 결합해 완전한 자유 운영체제를 이루었고, 인터넷을 통한 대규모 협업 개발의 대표 사례가 되었다.

3.3.'오픈 소스' 용어의 등장

1998년, 실용적 측면을 강조한 '오픈 소스'라는 표현이 채택되고 오픈 소스 이니셔티브(OSI)가 설립되면서 산업계 전반으로 확산되기 시작했다. 이후 웹 서버, 데이터베이스, 프로그래밍 언어, 클라우드 인프라에 이르기까지 오픈 소스는 소프트웨어 산업의 표준적 구성 요소로 자리 잡았다.

4.오픈 소스 라이선스#

오픈 소스 라이선스는 사용·수정·배포의 허용 범위와 조건을 정한다. 같은 공개 코드라도 라이선스에 따라 재배포할 때 지켜야 하는 사항이 달라진다.

  • GNU GPL: GPLv3는 프로그램을 실행하고 개인적으로 수정하는 경우와 수정본 등을 타인에게 전달하는 경우를 구분한다. 전달 방식에 따라 해당 소스 제공과 라이선스 유지 등의 의무가 적용된다. GPL 코드를 사용했다는 이유만으로 모든 개인 수정본을 인터넷에 공개해야 한다고 단정하는 것은 부정확하다.
  • MIT: 사용·수정·배포·판매 등을 허용하면서 소프트웨어의 복사본이나 주요 부분에 저작권 및 허가 고지를 포함하도록 요구한다.
  • Apache License 2.0: 저작권과 특허 허가, 수정 표시, 라이선스 사본 및 관련 고지의 유지 조건 등을 정한다.

허용적 라이선스와 카피레프트 라이선스는 파생물 배포 조건에서 차이가 난다. 여러 코드의 조합과 배포 가능 여부는 각각의 라이선스 및 배포 형태에 따라 검토해야 하며, 오픈 소스라는 이름 하나로 조건을 생략할 수는 없다.

[4][5][6]

5.개발 및 협업 구조#

오픈 소스는 코드를 공개된 저장소에 두고 다수의 개발자가 함께 검토·개선하는 협업 모델을 특징으로 한다. 깃허브 같은 코드 호스팅 플랫폼과 버전 관리 시스템은 이러한 협업을 뒷받침하는 핵심 기반이다.

일반적인 참여 흐름은 다음과 같다.

  • 원본 저장소를 복제(포크)하거나 내려받는다.
  • 기능 추가·버그 수정 등 변경을 만든 뒤 변경 제안(풀 리퀘스트 등)을 올린다.
  • 다른 참여자와 관리자가 코드를 검토하고 논의한다.
  • 검증을 거친 변경이 본체에 병합(머지)된다.

이 과정에서 '충분히 많은 눈이 지켜보면 버그는 드러난다'는 협업의 이점이 발휘된다. 다만 실제 품질은 참여자의 규모와 검토의 성실함, 유지보수의 지속성에 크게 좌우된다.

6.장점과 한계#

6.1.장점

  • 투명성: 코드가 공개되어 동작 방식과 데이터 처리 과정을 직접 확인할 수 있다.
  • 협업과 개선 속도: 다수의 참여자가 오류와 취약점을 빠르게 발견·수정할 수 있다.
  • 종속성 완화: 특정 기업·개인에 대한 종속(벤더 락인)을 줄이고, 프로젝트가 중단되어도 코드를 이어받아 유지할 수 있다.
  • 비용: 소스와 재배포 권한이 있어 도입·검증과 재사용이 가능하다. 오픈 소스도 판매하거나 지원·호스팅 비용을 받을 수 있으므로 모든 비용이 없다는 뜻은 아니다.

6.2.한계

  • 공개의 양면성: 취약점 역시 누구나 열람할 수 있어, 공개 자체가 안전을 보장하지는 않는다.
  • 유지보수 부담: 소수의 자원봉사자에 의존하는 프로젝트는 관리가 끊기거나 업데이트가 지연될 수 있다.
  • 라이선스 준수: 조건을 위반해 사용하면 법적 분쟁의 소지가 있다.
  • 지원의 불확실성: 상용 제품과 달리 공식 기술 지원이 보장되지 않는 경우가 많다.
[7]

7.블록체인과 오픈 소스#

암호화폐와 블록체인 분야에서 오픈 소스는 특히 중요한 위치를 차지한다. 대부분의 주요 블록체인 프로토콜은 소스 코드를 공개하는데, 이는 중앙 관리자가 없는 탈중앙화 시스템에서 신뢰를 확보하기 위한 핵심 요소이기 때문이다. 누구나 코드를 직접 검증할 수 있어야 화폐 발행 규칙, 합의 방식, 거래 처리 로직이 공표된 대로 동작한다는 점을 확인할 수 있다.

비트코인은 사토시 나카모토가 오픈 소스로 코드를 공개하면서 시작되었고, 이후 작업증명 기반의 여러 프로젝트가 이 코드를 참고하거나 분기(포크)하여 만들어졌다. 이더리움을 비롯한 스마트 컨트랙트 플랫폼과 솔리디티 같은 개발 언어, 그리고 지갑 소프트웨어의 상당수도 오픈 소스로 배포된다. 개발자들은 공개된 코드를 테스트넷에서 검증한 뒤 메인넷에 반영하는 방식으로 협업한다.

블록체인에서 공개된 코드는 디앱과 탈중앙화 금융 서비스가 서로의 코드를 재사용하고 조합하는 기반이 되기도 하며, 프로토콜 변경은 탈중앙화 자율 조직을 통한 공개 논의로 결정되는 경우가 많다.

8.활용 분야#

오픈 소스는 오늘날 거의 모든 IT 영역의 토대를 이룬다.

  • 운영체제·서버: 리눅스를 비롯한 오픈 소스 운영체제와 웹 서버 소프트웨어가 인터넷 인프라의 큰 비중을 담당한다.
  • 개발 도구·언어: 다양한 프로그래밍 언어의 처리기, 라이브러리, 빌드 도구가 오픈 소스로 제공된다.
  • 데이터·클라우드: 데이터베이스, 컨테이너·오케스트레이션 도구 등 클라우드 기반 기술의 상당수가 오픈 소스이다.
  • 인공지능: 머신러닝 프레임워크와 일부 모델이 오픈 소스로 공개되어 연구와 응용 확산을 이끈다.
  • 블록체인: 앞서 살펴본 대로 프로토콜, 지갑, 디앱 등 핵심 구성 요소가 오픈 소스로 배포된다.

이처럼 오픈 소스 구성 요소가 다른 소프트웨어에 폭넓게 포함되어 쓰이면서, 어떤 오픈 소스 코드를 어떤 라이선스로 사용하는지 관리하는 일도 점차 중요해지고 있다.

9.비즈니스 모델#

소스 코드를 무료로 공개하면서도 사업을 지속하기 위해 여러 수익 모델이 발전했다.

  • 기술 지원·구독: 소프트웨어 자체는 공개하되, 설치·운영 지원과 보증을 유료로 제공한다.
  • 호스팅형 서비스: 오픈 소스 소프트웨어를 클라우드에서 관리형 서비스로 제공한다.
  • 오픈 코어(open core): 핵심 기능은 오픈 소스로 공개하고, 부가·엔터프라이즈 기능은 상용으로 제공한다.
  • 후원·재단: 개인·기업의 후원이나 비영리 재단을 통해 프로젝트 운영을 지원한다.

블록체인 분야에서는 프로토콜 코드를 오픈 소스로 공개하면서도, 네트워크 토큰과 생태계를 통해 개발과 운영을 지속하는 방식이 나타나기도 한다.

10.유의점#

오픈 소스라는 사실 자체가 보안이나 안전을 보장하지는 않는다. 코드가 공개되어 있다는 것은 취약점 역시 누구나 열람할 수 있다는 의미이므로, 실제 안전성은 코드의 품질과 이를 검토·감사하는 커뮤니티의 활동성에 좌우된다.

또한 공개된 코드라도 라이선스 조건을 위반하여 사용하면 법적 책임을 질 수 있으므로, 각 프로젝트가 채택한 라이선스의 내용을 반드시 확인해야 한다. 특히 블록체인 프로젝트를 검토할 때는 다음을 함께 살피는 것이 바람직하다.

  • 코드가 실제로 공개되어 있고 배포된 버전과 일치하는가.
  • 유지보수가 활발하고 취약점 대응이 이루어지고 있는가.
  • 필요한 경우 외부 감사나 정형 검증 같은 검증을 거쳤는가.

공개된 코드는 검증의 '가능성'을 열어줄 뿐이며, 그 가능성을 실제 신뢰로 바꾸는 것은 커뮤니티의 지속적인 검토와 이용자의 확인이다.

11.연표8건

  1. 1983이정표리처드 스톨먼이 자유로운 운영체제를 목표로 GNU 프로젝트를 시작
  2. 1985설립스톨먼이 자유 소프트웨어 재단(FSF)을 설립
  3. 1989이정표GNU GPL 초기 버전 발표로 카피레프트 라이선스가 공식화
  4. 1991출시리누스 토르발스가 리눅스 커널을 공개
  5. 1998설립'오픈 소스(Open Source)'라는 용어가 채택되고 오픈 소스 이니셔티브(OSI)가 설립
  6. 2004이정표아파치 소프트웨어 재단이 Apache License 2.0을 발표
  7. 2008이정표사토시 나카모토가 비트코인 백서를 공개
  8. 2009출시비트코인이 오픈 소스 코드와 함께 네트워크를 가동

각주

  1. [1]The Open Source Definition — opensource.org · Open Source Initiative
  2. [2]The MIT License — opensource.org · Open Source Initiative
  3. [3]Apache License, Version 2.0 — apache.org · Apache Software Foundation
  4. [4]GNU General Public License version 3 — opensource.org · Open Source Initiative
  5. [5]The MIT License — opensource.org · Open Source Initiative
  6. [6]Apache License, Version 2.0 — apache.org · Apache Software Foundation
  7. [7]The Open Source Definition — opensource.org · Open Source Initiative

이 문서가 도움이 됐나요?

이 문서 인용하기
토큰포스트 위키, “오픈 소스”, 2026-09-26 수정, https://wiki.tokenpost.kr/w/open-source

문단 10개 · 연표 8건 · 각주 7개