본문 바로가기
기타

오픈 소스 라이센스에 대해 (Open Source License)

by 유세지 2023. 9. 17.

 

 

 

 

소프트웨어 개발을 직업으로 하고 있는 사람들이라면 이미 수많은 오픈 소스 라이브러리를 사용했던 경험이 있을겁니다. 시중에는 훌륭한 퀄리티의 오픈 소스 프로그램들이 무료로 배포되고 있기 때문에, 오픈 소스에 대한 경험 자체는 개발자가 아니더라도 한 번쯤은 갖고 있기 마련인데요.

 

오늘은 오픈 소스에서 빠질 수 없는 친구인, 라이센스에 대해 알아보려고 합니다.

 

 

 

오픈 소스 프로그램

오픈 소스 소프트웨어란 소스 코드가 공개되어 누구든 특별한 제한 없이 그 코드를 보고 사용할 수 있는 라이센스를 만족하는 소프트웨어를 통칭합니다. (wikipedia - open source software)

 

대표적으로 응용 프로그램에는 개발자들이 사랑해 마지 않는 IDE인 이클립스(농담입니다)나 버전 관리 프로그램인 Git, 가장 널리 사용되는 웹 브라우저인 크로미움 등이 있고 프로그래밍 언어로는 파이썬, 운영체제로는 리눅스나 안드로이드 등이 있습니다. 이 중 몇몇은 일반 사용자들에게도 너무나 친숙한 이름들입니다.

 

 

아주 유명한 오픈 소스 프로젝트들입니다.

 

 

 

예전에는 무료로 공개된 프로그램들이 오픈 소스 소프트웨어라는 이름 대신 프리웨어나 셰어웨어와 같은 이름으로 불리곤 했었는데, 프리웨어는 무료로 사용이 가능한 소프트웨어를, 셰어웨어는 기능이나 사용 기간에 제약을 둔 소프트웨어라는 점에서 그 궤가 다릅니다. 오픈 소스 소프트웨어와 일견 비슷해보이고 실제로는 겹치는 부분도 많으나, 엄연히는 다른 분류라는 점만 기억하시면 될 것 같네요.

 

다시 돌아와서, 처음 설명에서 알 수 있듯 같은 오픈 소스 소프트웨어라고 해도 라이센스에 따라 사용 범위가 달라지게 된다는 점을 알 수 있습니다. 모두에게 공유되어야 한다는 큰틀에서는 동일하지만, 수정시 어디에서 어디까지 공표해야하는지, 특허에 대한 부분은 어떻게 처리하는지 등 세부적으로 들여다보면 다른 부분들이 존재합니다.

 

 

라이센스

 

JavaScript 기반의 HTTP 통신 라이브러리 'axios'

 

 

당장 Github에 접속해서 자주 사용하는 라이브러리의 저장소를 확인해보면, 소개 문구와 함께 해당 라이브러리에 적용되어 있는 라이센스를 확인할 수 있습니다. axios의 경우 MIT license가 적용되어 있다는걸 알 수 있네요.

 

여러분이 레포지토리를 새로 생성할때도, 라이센스를 선택할 수 있는 드롭다운 버튼이 한 켠에 배치되어 있습니다. 클릭해보면 다양한 라이센스들을 확인할 수 있는데, 스크롤 길이만 봐도 라이센스의 종류가 꽤 많다는게 느껴집니다.

 

 

 

미리 입력된 라이센스들을 중에서 고를 수 있습니다.

 

 

이것들을 전부 살펴보기엔 너무 많으니, 현재 시점에서 널리 사용되고 가장 유명한 것들을 위주로 살펴보겠습니다. 오픈 소스 이니셔티브 (opensource.org) 재단에 등록된 라이센스 목록 중, "Popular / Strong Community" 로 분류된 라이센스만 포함합니다.

 

 

Apache License 2.0

아파치 라이센스는 아파치 웹 서버의 배포를 위해서 만들어진 BSD 계열의 라이센스입니다. 아파치 재단이 운영하는 프로젝트에 의해 만들어진 프로그램들은 해당 라이센스를 따르고 있습니다. 1.0, 1.1 버전을 거쳐 현재 2.0 버전의 라이센스가 사용되고 있습니다.

 

BSD 계열 라이센스의 경우 소프트웨어를 자유롭게 수정하거나 사용할 수 있다는 것이 특징이며, 이렇게 수정된 소프트웨어 또한 마음대로 처분할 수 있도록 라이센스 차원의 어떠한 강제력도 없다는 특징이 있습니다.

 

아파치 라이센스는 이러한 BSD에 기반을 두고, 수정과 사용을 자유롭게 풀어주되 이 소프트웨어가 아파치 라이센스가 적용되어 있다는 것을 밝히도록 하고 있습니다. 이를 통해 GPLv3 이라고 불리는 GNU General Public License version 3.0 과도 호환(둘 이상의 라이센스를 함께 적용)이 가능합니다. 단, Apache 2.0 만 GPLv3과 호환이 가능하며, 이전 버전인 1.0과 1.1은 호환되지 않습니다. 또한 Apache 2.0 이라 할지라도 이전버전의 GPL과는 호환되지 않습니다. 

 

 

자료 출처 : 한국저작권위원회 OLIS

 

 

 

GNU General Public License version 3

위에서 잠깐 소개했던 GNU GPL 3.0 (이하 GPLv3)은 자유 소프트웨어 재단에서 배포하는 GPL 계열의 라이센스입니다. 소프트웨어의 사용과 수정을 자유롭게 할 수 있지만, 수정한 사항을 반드시 외부에 공개해야하며 이렇게 수정된 소프트웨어 또한 같은 라이센스를 적용하도록 하는 것이 특징입니다.

 

마지막 문장에서 알 수 있듯, GPLv3는 자유 소프트웨어 재단이 생각하기에 "컴퓨터 사용자들이 마땅히 누려야 하는 자유"에 가장 잘 부합하는 라이센스입니다. 누구나 소프트웨어를 쉽게 사용하고, 작동 원리에 대해 연구할 수 있으며 전체의 이익을 위해 다시 환원할 자유를 갖는다는 자유 소프트웨어 운동(Free Software Movement)에 기반을 둔 라이센스이기도 합니다.

 

이러한 움직임은 초창기 컴퓨터가 보급된 이후, 하드웨어를 편리하게 이용할 수 있는 소프트웨어가 제작되거나, 자유롭게 나누어 쓸 수 있는 환경이 만들어지는 것을 못마땅하게 바라봤던 하드웨어 제조사들의 으름장(?)에서 비롯되었습니다. 제조사들은 사용자들이 함부로 소스 코드를 뜯어볼 수 없도록 소프트웨어를 바이너리 형태(101001010110....) 로 배포하거나 하는 기술적인 방법을 사용했고, 이에 반발한 리처드 스톨만(Richard Stallman)을 중심으로 자유 소프트웨어 재단을 설립하여 GNU GPL 라이센스가 탄생하게 되었습니다.

 

 

자료 출처 : 한국저작권위원회 OLIS

 

 

The MIT License

MIT 라이센스는 이름처럼 매사추세츠 공과 대학(MIT, Massachusetts Institute of Technology) 에서 소프트웨어 공학도들의 연구와 개발을 돕기 위해 만들어진 BSD 계열의 라이센스입니다.

 

바로 위에서 설명한 GNU GPL 계열의 경우 자신이 수정한 소프트웨어의 코드를 반드시 환원해야 한다는 조항이 있었습니다. MIT 라이센스는 이러한 제한이 없는, 상대적으로 느슨한 라이센스라고 볼 수 있겠습니다. 때문에 저작권 소유를 포기하는 카피레프트 계열의 라이센스로 볼 수는 없으며, 해당 라이센스 소프트웨어로 인해 발생한 모든 문제는 사용자 자신에게 있다는 조항이 붙어 있습니다.

 

현재는 오픈 소스 진영에서 널리 사용되고 있습니다. 대표적으로 가장 위에서 제가 소개했던 axios 라이브러리를 포함하여 Node.js, Ruby on Rails, Visual Studio Code 와 같이 언어와 프로그램, 라이브러리를 가리지 않고 적용되어 있습니다.

 

 

자료 출처 : 한국저작권위원회 OLIS

 

 

 

마치며

오늘은 라이센스에 대한 내용을 알아보았습니다. 우리가 사용하고 있던 많은 프로그램과 라이브러리들에도 이러한 라이센스가 적용되어 있는데, 정확히 어떤 내용을 담고 있었는지 파악할 수 있는 좋은 기회가 되었습니다.

 

그동안 개발을 하면서도 라이센스에 대한 큰 고민 없이 MIT 라이센스를 선택하여 적용하곤 했었는데, 다행히 별다른 문제는 일어나지 않을 것 같아 한 편으로는 마음이 놓이네요.

 

두서없는 글 읽어주셔서 감사합니다.

 

 

참고 자료

 

 

반응형

댓글