오픈소스(Open Source)란 ? 개념과 라이선스 종류

클라우드 컴퓨팅오픈소스(Open Source)란 무엇일까? 개념과 대표적인 라이선스 종류 완벽 정리

현대 소프트웨어 개발 생태계에서 '오픈소스(Open Source)'를 빼놓고는 아무것도 이야기할 수 없습니다. 우리가 매일 쓰는 스마트폰의 안드로이드 운영체제(OS)부터 세계적인 기업들의 대규모 데이터 시스템까지, 오늘날의 IT 세상은 오픈소스라는 거대한 주춧돌 위에 세워졌다고 해도 과언이 아닙니다.

하지만 많은 사람이 오픈소스를 단순히 "아무나 공짜로 가져다 쓰는 소스코드"로 오해하곤 합니다. 오픈소스에는 엄격한 규칙과 '라이선스'가 존재하며, 이를 어길 경우 법적 분쟁에 휘말릴 수도 있습니다. 이번 글에서는 오픈소스의 정확한 개념과 함께 개발자라면 반드시 알아야 할 대표적인 라이선스 종류를 알기 쉽게 정리해 드리겠습니다.


오픈소스

1. 오픈소스(Open Source)의 정확한 정의

오픈소스란 소프트웨어의 '소스코드(설계도)'를 무상으로 공개하여, 누구나 자유롭게 확인하고, 수정하며, 재배포할 수 있도록 허용한 소프트웨어를 말합니다.

반대 개념으로는 마이크로소프트의 윈도우(Windows)나 어도비의 포토샵처럼 소스코드를 철저히 비밀로 부치고 돈을 받고 파는 '폐쇄소스(Closed Source) 또는 상용 소프트웨어'가 있습니다.

오픈소스는 단순히 "공짜"라는 점에 의의가 있는 것이 아닙니다. 전 세계의 수많은 천재 개발자들이 자발적으로 참여해 코드를 개선하고 버그를 수정하기 때문에, 발전 속도가 상용 소프트웨어보다 훨씬 빠르고 안정성이 높다는 강력한 장점을 지니고 있습니다.


2. 오픈소스는 무조건 마음대로 써도 될까? (라이선스의 중요성)

"오픈소스는 '자유(Liberty)'를 의미하는 것이지, '무법(Lawlessness)'을 의미하는 것이 아닙니다."

가장 많은 사람이 하는 실수가 "공개된 코드니까 내 마음대로 가져다가 프로그램을 만들어서 비싸게 팔아도 되겠지?"라고 생각하는 것입니다. 오픈소스는 소스코드가 공개되어 있을 뿐, 이를 사용할 때는 원작자가 제시한 '오픈소스 라이선스(Open Source License)'라는 가이드라인을 반드시 준수해야 합니다.

만약 기업에서 오픈소스 라이선스를 위반하고 제품을 출시했다가 적발되면, 어렵게 만든 프로그램의 소스코드를 강제로 전 세계에 공개해야 하거나 막대한 배상금을 물어야 할 수도 있습니다.


3. 개발자라면 필수! 대표적인 오픈소스 라이선스 4가지

오픈소스 라이선스는 크게 규제가 느슨한 '허용적(Permissive) 라이선스'와 규제가 엄격한 '카피레프트(Copyleft) 라이선스'로 나뉩니다. 가장 널리 쓰이는 4가지를 표로 비교해 보았습니다.

라이선스 이름분류소스코드 공개 의무독점(상용) 프로그램에 사용 가능 여부대표적인 예시
MIT허용적없음 (가장 자유로움)가능jQuery, React, Vue.js
Apache 2.0허용적없음 (특허권 보장 추가)가능Android, Kubernetes
GPL 3.0카피레프트무조건 공개해야 함불가능 (수정한 프로그램도 GPL로 공개)Linux 커널, Git
AGPL카피레프트웹 서비스만 해도 공개해야 함불가능 (가장 엄격함)MongoDB (과거버전), Grafana

① MIT 라이선스 (가장 관대한 라이선스)

매사추세츠 공과대학교(MIT)에서 개발한 라이선스로, 소프트웨어를 복제, 수정, 명의 변경, 판매 등 거의 모든 행위를 자유롭게 할 수 있습니다. 딱 하나의 조건은 "이 소프트웨어를 썼고, 원작자는 누구이다"라는 저작권 고지문만 남기면 됩니다. 기업들이 가장 선호하는 라이선스입니다.

② Apache 라이선스 2.0

아파치 소프트웨어 재단에서 만든 라이선스입니다. MIT와 마찬가지로 매우 자유롭지만, 한 가지 중요한 차이점은 '특허권'에 대한 조항이 포함되어 있다는 것입니다. 이 라이선스가 적용된 코드를 쓰다가 발생할 수 있는 특허 소송 리스크를 방지해 주므로 대기업 중심의 프로젝트에서 자주 쓰입니다.

③ GPL 3.0 (대표적인 카피레프트)

리눅스의 기반이 되는 라이선스로, 매우 엄격한 철학을 가지고 있습니다. GPL 코드를 단 한 줄이라도 가져다 쓰거나 수정해서 새로운 프로그램을 만들었다면, 그 프로그램 역시 소스코드를 무료로 전 세계에 공개(GPL 적용)해야 합니다. 상업적인 비밀을 유지해야 하는 기업용 소프트웨어 개발 시 가장 주의해야 할 라이선스입니다.

④ AGPL (네트워크 제한 보완)

GPL의 빈틈을 보완하기 위해 나온 가장 강력한 라이선스입니다. GPL은 프로그램을 '배포(다운로드 제공)'할 때만 소스코드 공개 의무가 생기는데, 요즘은 다운로드 없이 서버에서 웹 서비스(SaaS) 형태로만 제공하는 경우가 많습니다. AGPL은 다운로드를 제공하지 않고 네트워크를 통해 서비스하기만 해도 소스코드를 공개하도록 강제합니다.


4. 마치며: 오픈소스를 현명하게 활용하는 방법

오늘날 인공지능, 빅데이터, 블록체인 등 최첨단 IT 기술의 성장은 오픈소스 생태계가 있었기에 가능했습니다. 개발 기간을 획기적으로 줄이고 고품질의 서비스를 만들기 위해 오픈소스 활용은 선택이 아닌 필수입니다.

다만, 내가 가져다 쓰는 오픈소스가 어떤 라이선스를 품고 있는지 확인하는 습관을 지녀야 안전하고 건강한 개발을 이어갈 수 있습니다. "돌다리도 두들겨 보고 건너라"라는 말처럼, 라이선스 규정을 명확히 이해하고 활용하는 지혜가 필요한 시점입니다.