Open Source SW and License — 오픈소스 소프트웨어와 라이선스

소프트웨어는 전화, 자동차, 의료, 엔터테인먼트 등 거의 모든 산업에서 핵심적인 역할을 담당한다. SDx(Software Defined Everything)라는 용어가 등장할 정도로 소프트웨어가 모든 것을 정의하는 시대다. 이런 환경에서 오픈소스SW를 이해하고 라이선스를 올바르게 다루는 것은 개발자의 기본 소양이다.

개방성(Openness)

정보를 대중에게 공개하는 개방성(Openness)은 과학 및 공학 연구와 발전에서 핵심 요소로 작용해 왔다. 정보를 공개하고 공유함으로써 수많은 사람들이 협업(Collaboration)할 수 있다.

과학 및 공학계에서의 self-correcting process가 대표적이다:

  1. 이론, 실험 및 관찰 데이터를 포함한 원고 제출
  2. 해당 학계의 동료 3명 이상에게 동료 평가(Peer-review) 요청
  3. 평가위원(Reviewer)들의 의견을 바탕으로 수락 또는 거절 결정
  4. 다른 사람들이 실험을 재현하거나 데이터를 재사용 및 수정할 수 있도록 허용

브리태니커(1768)가 전문 작가들에 의해 서술된 10만 개 문서를 가지고 있었지만 2012년 이후로 인쇄본이 절판된 반면, 위키피디아(2001)는 누구나 자유롭게 쓸 수 있으며 2022년 기준 6백만 개 이상의 문서가 존재한다. 개방성의 힘을 보여주는 사례이다.

오픈소스SW란?

오픈소스SW란 소스 코드와 함께 배포되어 소프트웨어의 사용뿐 아니라 수정 및 재배포가 가능한 소프트웨어를 말한다. 소스 코드가 공개되어 있다는 특성상, 전세계 개발자들의 협력을 통해 개발이 이루어지는 경우가 다수이다.

대표적인 예로는 Linux 커널, Apache 웹서버, Firefox 웹브라우저, MySQL 등이 있다.

여기서 중요한 점은, 오픈소스SW에는 다양한 라이선스가 존재하며 각각의 의무 사항이 다르다는 것이다. 소스 코드가 공개되어 있다고 해서 마음대로 쓸 수 있는 것이 아니다.

저작권(Copyright)

소프트웨어에 대한 저작권(Copyright)은 소프트웨어를 창작한 때부터 자동적으로 발생한다. 별도의 절차나 형식의 이행 없이도 원저작자가 해당 권리를 갖는다.

저작권의 핵심:

  • 본 저작물에 대한 타인의 사용, 수정, 재공유 등에 대한 허용 여부를 원저작자가 결정한다
  • 저작권 등록이란 정부가 인증하는 공식 장부에 저작권을 등록하는 행위로, 법적 이슈 발생 시 저작권을 보호받기 위해 필요한 절차이다

라이선스(License)

라이선스(License)는 소유자와 사용자들 사이의 계약으로써 다양한 사항에 대한 허용 여부가 명시되어 있다.

  • OSS의 라이선스는 사용자가 OSS를 사용, 수정, 통합 또는 배포하는 방법에 대한 다양한 의무와 제한을 포함한다
  • 특히, 오픈소스를 활용할 때는 해당 오픈소스의 저작자를 표시해주어야 한다

라이선스가 명시되지 않은 공개 코드가 있다면, 그 코드의 저작권은 원저작자에게 있으므로 사용, 수정, 재배포 전에 반드시 저작자에게 라이선스를 확인해야 한다. 공개되어 있다고 마음대로 활용해도 된다는 것이 아님에 유의한다.

구분 저작권 라이선스
개념 독점적인 권리 사용을 허가하는 조건 및 계약
발생 시점 만들어지는 순간 선택 적용
목적 권리 보호, 무단사용 금지 사용조건, 범위 공유 및 장려
주요 대상 저작자 중심 이용자 중심

독점 소프트웨어(Proprietary Software)

독점 소프트웨어(Proprietary Software)는 소유자가 수정 및 배포 권리를 독점하는 형태의 소프트웨어이다. Non-free software라고도 한다.

핵심 특징:

  • 일반적으로 binary code를 사용하기 위해 비용을 지불해야 한다
  • 소유가 아니므로 binary code를 재배포하는 것은 허용되지 않는다
  • 구매하더라도 사용 권한을 구매하는 것이므로, 수정이나 재배포는 금지된다
  • 소스 코드에 접근할 수 없어 기능을 추가할 수 없으며 버그를 고칠 수도 없다

1970~80년대 대부분의 소프트웨어는 독점 소프트웨어 형식이었다. 소프트웨어가 독립적으로 상품성이 있다는 인식이 퍼지면서 산업으로 발전하게 된 것이다.

자유 소프트웨어(Free Software)

독점 소프트웨어에 대한 반대 개념으로써 자유 소프트웨어가 부상했다. 여기서 Free는 무료가 아니라 자유를 의미한다. 소스코드에 대한 사용, 수정, 배포, 개작 배포 권한이 최초 제작자와 동일하게 자유롭다는 뜻이다.

‘자유 소프트웨어’는 1983년 Richard Stallman에 의해 소개되었다.

GNU 프로젝트

Richard Stallman에 의해 시작된 자유 소프트웨어 시스템 프로젝트이다. GNU는 “GNU is Not Unix”의 재귀적 약자로, 당시 지배적인 독점 소프트웨어 시스템이었던 Unix에 대항하는 의미를 담고 있다.

GNU 프로젝트는 컴파일러, 편집기, 디버거 등 프로그래밍과 컴퓨터 운영에 필요한 다양한 도구를 개발했다. 1992년에 GNU 프로젝트의 초기 버전이 거의 완성되었으나 OS 커널이 부재했는데, 1991년 Linus Torvalds에 의해 Linux kernel이 release되면서 GNU 프로젝트 초기 버전이 완성되었다. FSF에서는 GNU의 중요성을 강조하기 위해 리눅스에 대해 GNU/Linux라는 이름을 사용한다.

자유 소프트웨어의 네 가지 자유

자유 소프트웨어는 사용자에게 아래의 네 가지 자유를 보장해야 한다:

  • F0: 원하는 목적으로 프로그램을 자유롭게 실행할 수 있는 자유
  • F1: 프로그램의 소스 코드를 파악하고 변경할 수 있는 자유
  • F2: 정확한 복사본을 배포할 수 있는 자유
  • F3: 복사본을 만들고, 원하는 대로 수정된 버전을 배포할 수 있는 자유

리차드 스톨만은 Free Software Foundation(FSF)을 1985년에 설립하여 copyleft 개념을 널리 전파하였다.

Copyleft 라이선스

자유 소프트웨어로서의 조건에 공유 의무를 더한 라이선스이다.

  • 사용자에게 코드를 자유롭게 실행, 수정 및 배포할 권리를 부여한다
  • 모든 사용자는 재배포 시 자신이 받은 것과 동일한 자유를 해당 재배포 소프트웨어의 사용자들에게 부여해야 한다

즉, copyleft 라이선스는 해당 소프트웨어에서 파생된 모든 소프트웨어를 누군가가 독점하지 못하도록 하고, 똑같이 copyleft 라이선스를 부여하도록 강제한다. 이에 viral 라이선스라고도 불린다.

General Public License (GPL)

GNU General Public License(GPL)은 리차드 스톨만에 의해 제안된 최초의 copyleft 라이선스이다. copyleft 원리를 구체적인 조항으로 만든 개별 라이선스이다.

GPL 라이선스를 따르는 소프트웨어는 아래의 요건을 갖추어야 한다:

  1. 사용자에게 자유 소프트웨어로서의 조건을 만족하는 권리를 부여해야 한다
  2. GPL 라이선스인 소프트웨어에서 파생되는 소프트웨어를 배포할 때는 반드시 동일한 GPL 라이선스에 따라 배포해야 한다

단, 소스코드를 수정하더라도 소프트웨어의 배포 목적이 아니면 개인적으로 수정된 소스코드의 보유는 가능하다.

GPL에서의 라이선스 전파가 핵심이다. GPL 라이선스를 따르는 소프트웨어 재배포 시, 소스 코드에 포함되는 모든 소프트웨어는 물론이고 동적 링크 방식으로 연결되는 소프트웨어도 모두 GPL 라이선스로 재배포되어야 한다.

GPL 라이선스 전파

요약하면, 독점 소프트웨어의 저작권자가 자유 소프트웨어로서의 배포를 허락하지 않는 한 GPL 라이선스 소프트웨어는 독점 소프트웨어와의 결합이 불가능하다. 다만, 네트워크를 이용한 통신 메커니즘으로 엮이는 소프트웨어로는 라이선스 전파가 발생하지 않는다. 예를 들어 Git과 GitHub의 관계가 그렇다.

Lesser General Public License (LGPL)

GPL의 라이선스 전파 조건이 독점 소프트웨어와의 결합을 불가능하게 만들기 때문에, 보다 완화된 LGPL 라이선스가 등장하게 되었다. GPL보다 약한 copyleft 라이선스로 볼 수 있다.

핵심 차이점은, 재배포 시 binary code 안에 포함되는 소프트웨어는 copyleft로 재배포되어야 하지만, 동적 링크로 엮이는 소프트웨어들은 라이선스 전파 대상에서 제외된다는 것이다.

LGPL 라이선스 전파

오픈소스 소프트웨어(OSS)

Copyleft 개념이 널리 전파되는 동안에도 많은 기업들은 자유 소프트웨어로의 배포를 꺼렸다. 리차드 스톨만이 말한 ‘자유’는 사용자의 수정 및 배포에서의 자유를 말하였으나, 용어 상으로 무료 소프트웨어로 오해를 사는 경우가 많아 기업들 입장에서는 받아들이기 어려웠다. 또한 라이선스 전파가 엄격한 GPL 라이선스에 대해 기업들은 부담을 느낄 수밖에 없었다.

이에 1998년 Eric S. Raymond에 의해 Open Source Initiative(OSI)가 설립되었다. ‘자유’라는 용어 대신 ‘오픈소스’라는 용어를 사용하기 시작했다. 오픈소스는 GNU의 대부분의 철학을 이어받았으나, 재배포 시 라이선스를 자유롭게 매길 권한을 포함하여 FSF보다 더욱 실용적인 입장을 취했다.

구분 Free Software Open Source
설립 단체 Free Software Foundation (FSF), 1985 Open Source Initiative (OSI), 1998
설립자 Richard Stallman Eric S. Raymond, Bruce Perens
철학 모든 소프트웨어 사용자들의 권리를 위함 재배포 시 라이선스를 자유롭게 매길 권한을 포함하여 모든 소프트웨어 사용자들의 권리를 위함
라이선스 방향 Copyleft Permissive

Copyleft vs Permissive

오픈소스 라이선스에는 Copyleft(GPL/LGPL/MPL 등)도 있고 Permissive(MIT/BSD/Apache-2.0)도 있다.

Copyleft vs Permissive

  • Copyleft: “같은 자유를 계속 전파하라” — 파생 소프트웨어도 동일한 라이선스를 유지해야 한다
  • Permissive: “라이선스 명시만 유지, 나머지는 자유” — 오픈소스 기반으로 독점 소프트웨어 개발이 가능하다
구분 Copyleft Permissive
대표 라이선스 GPL, AGPL, LGPL, MPL MIT, BSD, Apache-2.0
전파(바이럴) 강함: 수정/결합 산출물 공개 의무 약함: 저작권 고지만 유지하면 재라이선스 가능
링크/결합 GPL은 링크된 전체에 전파 / LGPL은 라이브러리 수정만 공개 제한 없음. 상용 코드와 자유롭게 결합
재라이선스 동일 계열 요구 (예: GPL→GPL) 가능 (사유화 포함), 단 원저작권 고지 유지
특허 조항 GPLv3/AGPLv3 일부 포함 Apache-2.0 특허 라이선스 명시
채택성 전파 의무로 법무 검토 부담 높음 도입 쉬움, 생태계 확장 유리
철학 자유의 보존에 중점 채택과 확산에 중점

Permissive 라이선스 종류

Permissive(허용적) 라이선스는 BSD(Berkeley Software Distribution)-스타일 라이선스라고도 한다. OSS의 자유로운 사용, 수정 및 재배포를 허용하며, Copyleft와 달리 재배포 시 어떤 라이선스를 부여할 것인지에 대한 자유를 부여한다.

  • BSD 라이선스: UC 버클리에서 개발. 가장 제한사항이 적은 허용적 라이선스
  • MIT 라이선스: BSD와 유사하며 MIT에서 개발
  • Apache 라이선스: 2004년 Apache Software Foundation에서 개발. 특허 라이선스를 명시하는 것이 강점

대표 프로젝트 예시

구분 Copyleft 라이선스 Permissive 라이선스
라이선스 AGPL, GPL, LGPL, MPL BSD, MIT, Apache
대표 프로젝트 Linux (GPL v2), GCC (GPL v3), Firefox (MPL) Android (Apache), Apache (Apache), PHP, Python

FOSS, Freeware, Shareware

FOSS (Free and Open Source Software)

자유 소프트웨어와 오픈소스 소프트웨어를 모두 포괄한 개념이다. 가격은 상관없다 — 무료든 유료든 가능하며, 자유(권리)가 핵심이다.

FOSS의 장점:

  • 소프트웨어 사용 비용 절감: 유사한 상용 소프트웨어 대신 OSS를 사용하여 라이선스 비용을 피할 수 있다
  • 개발 시간 및 비용 절감: 기존의 OSS 기반으로 개발을 진행하여 처음부터 모든 기능을 개발하는 것보다 빠르게 저비용으로 개발 가능하다
  • 신뢰성: 소스 코드가 공개되어 많은 사람들에 의해 테스트되고 버그나 취약점이 보완된다
  • 외부 지원: 많은 OSS는 커뮤니티를 갖추고 있어 질문 및 답변이 활발하다
  • 락인(Lock-in) 완화: 특정 소프트웨어 제작사에 대한 종속성을 줄일 수 있다

FOSS의 단점:

  • 개발자 친화적이나 사용자 친화적이지는 않을 수 있다
  • 지적재산권 관련 리스크: GPL처럼 강한 제약 및 의무를 요구하는 라이선스가 있다
  • 숨겨진 비용: OSS 설치/교육 비용, 기존 시스템과의 통합 비용, 수정 비용 등이 발생할 수 있다

Freeware

무료로 사용할 수 있는 소프트웨어이다. 보통 소스 코드를 제공하지 않는다. Adobe Acrobat Reader, Skype 등이 대표적이다.

Shareware

평가판은 무료이지만 이후 비용이 드는 소프트웨어이다. 무료 배포될 수 있어도 오픈소스/자유SW가 아니다.

구분 FOSS Freeware Shareware
가격 무료/유료 모두 가능 무료 무료 체험 + 유료 전환
소스 공개 공개 비공개 (대부분) 비공개 (대부분)
수정/재배포 라이선스에 따라 허용 대개 불가/제한적 대개 불가/제한적
철학/목표 자유/개방, 협업 보급/사용자 확대 체험 후 구매 전환

사용 비용이 FOSS이냐 아니냐를 구분짓는 것이 아님에 유의한다. 핵심은 소스 코드의 공개 여부와 공개된 소스 코드의 수정 및 재배포 허용이다.

라이선스 카테고리 정리

라이선스 카테고리

모든 소프트웨어는 크게 저작권 보호 대상(Copyright protected)공개 도메인(Public Domain)으로 나뉜다.

저작권 보호 대상 안에는 FOSS독점 소프트웨어(Proprietary)가 있다. FOSS는 다시 Copyleft의 강도에 따라 분류된다:

  • Strong Copyleft: GPL, AGPL
  • Weak Copyleft: LGPL, MPL, EPL
  • Permissive (No Copyleft): MIT, BSD, Apache

공개 도메인 소프트웨어(Public Domain)는 저작권 보호 대상이 아닌 소프트웨어이다. 저작권 보호 기간이 만료되었거나, 익명의 저작물인 경우에 해당한다. 오픈소스나 Copyleft와는 별개의 개념이다.