공유의 진정한 가치, ‘오픈소스’
상태바
공유의 진정한 가치, ‘오픈소스’
  • 이건한 기자
  • 승인 2020.06.19 09:00
  • 댓글 0
이 기사를 공유합니다

오픈소스 기초 개념과 장단점 정리

[테크월드=이건한 기자] ‘소프트웨어를 독점하지 않고, 모두가 공유할 수는 없을까? 1980년대 한 개발자의 작은 바람에서 비롯된 오픈소스(Open source)는 오늘날 전 세계 개발자, 심지어 오픈소스 운동을 반대하던 기업들마저 돌아서게 만든 시대적 정신으로 성장했으며, 소프트웨어 업계의 당당한 주류로 자리매김했다. 오픈소스란 무엇일까?

오픈소스의 기원 – 소프트웨어는 개방돼야 한다

오픈소스의 모태는 자유 소프트웨어(Free software)다. 개발자 리처드 스톨만(Richard Stallman)이 처음 주창했다. 그는 기업이 소프트웨어를 독점하는 것에 반대하고, “소프트웨어는 누구나 자유롭게 사용할 수 있어야 한다”고 주장하며 1983년 ‘GNU General Public License’ 프로젝트를 시작했다.

이어 1985년 자유소프트웨어재단(FSF)을 설립해 본격적인 카피레프트(Copyleft) 운동에 나섰는데, 카피레프트는 저작권(Copyright)과 정반대의 개념이다. 말 그대로 지식과 정보에 대한 모든 권리를 내려놓고 모두에게 공유하자는 의미다.

오픈소스란 용어가 정식으로 등장한 건 1990년대다. 자유 소프트웨어 운동에 참여했던 자들 중 일부는 Free가 ‘자유’가 아닌 단순 무료 소프트웨어 등으로 인식될 수 있는 부작용을 우려해 1998년 오픈소스란 말을 제안했는데, 여기에 리눅스 창시자인 리누스 토발즈 등이 동조하며 점차 널리 확산되기 시작했다.

다만, 리처드 스톨만이 오픈소스를 거부하면서 그의 자유 소프트웨어와 오픈소스 운동은 비슷하지만 조금 다른 의미로 해석해야 한다. 소스코드 공개와 공유의 가치라는 측면에서는 유사한 반면, 자유 소프트웨어는 GPL 라이선스 기반의 훨씬 강력하고 엄격한 소스 공개, 공유 원칙 등을 적용하고 있다.

자유소프트웨어 운동의 창시자 리차드 스톨만 (출처= Own work)

오픈소스란? 일정한 규칙 아래 공유되는 소프트웨어

오픈소스는 이름 그대로 소스코드를 공개한 소프트웨어다. 주의할 것은 그렇다고 무조건 무료이거나, 마음대로 사용할 수 있다는 의미는 아니란 점이다. 일부 제약없이 사용 가능한 소프트웨어도 있지만 대개는 사용과 공유, 소스 공개에 따른 공적인 규칙이 정해져 있으며, 이는 해당 오픈소스 소프트웨어가 채택한 라이선스에 따라 달라진다. 그만큼 라이선스를 무시한 오픈소스 활용은 법적인 처벌까지 받을 수 있다는 점을 반드시 인지해야 한다.

 

엄격하게, 혹은 느슨하게. 오픈소스 라이선스!

오픈소스에 적용할 수 있는 라이선스 종류는 다양하다. 여기서는 그중 몇 가지 대표적인 것들만 알아보도록 하자.

▲GPL

자유소프트웨어재단(FSF)이 만든 라이선스로, 가장 까다롭고 소스에 대한 구속력도 높다. 이 GPL의 가장 뚜렷한 특징은 바로 ‘전염성’이다. GPL 라이선스 기반의 소스코드가 한 줄이라도 사용된 프로그램은 자동적으로 GPL 라이선스를 따라야 하는 법적 의무가 주어진다.

만약 실수로 상용 프로그램에 GPL 코드를 삽입했다면 해당 제품은 원본의 소스코드를 반드시 공개 배포해야 하는 상황에 놓이므로 사용에 각별한 주의가 요구된다. 그 외에 GPL 프로그램은 어떤 목적으로도 사용할 수 있으며 용도에 따라 자유롭게 개작할 수 있다. 또 GPL 파생 라이선스로, 주로 API나 라이브러리 같은 단순한 코드 링크 선에서 활용할 경우 전염성 특성이 적용되지 않는 ‘LGPL’이란 라이선스도 있다.

GPL 로고
GPL 로고

▲MIT/아파치 라이선스

상기한 GPL의 카피레프트 특성이 너무 확고한 까닭에, 이를 조금 완화한 오픈소스 라이선스들도 등장해 널리 사용되고 있다. 대표적인 것이 ‘MIT 허가서’와 ‘아파치 라이선스’다.

두 라이선스 모두 소스코드 공개 의무를 갖지 않고 2차 저작물 개발을 허용한다. 다만 MIT 허가서의 경우 저작권자를 광고 등의 목적으로 쓰는 것을 금지하고 있으며, 특허 범위에 대한 상세한 서술이 없는 만큼 역시 사용에 주의할 부분들이 있다. 아파치 라이선스 2.0 버전은 사용 시 프로그램 배포에 아파치 라이선스 2.0을 반드시 포함하고, 아파치 재단에서 만든 소프트웨어임을 명시하도록 한다.

▲크리레이티브커먼즈(CCL)

CCL은 자신의 창작물에 대해 일정한 조건을 충족할 경우 다른 사람의 자유로운 이용을 허락하는 내용의 라이선스다. 허락조건은 크게 ▲저작자 표시 ▲비영리 ▲변경금지 ▲동일조건변경허락으로 구분한다.

의미가 명확한 저작자 표시, 비영리 표시를 제외하고 ‘변경금지’의 경우 원작을 변경하거나 그를 활용한 2차 저작물 제작을 금지한다는 의미다. 원본 그대로만 활용하란 의미다. ‘동일조건변경허락’의 경우 2차 저작물 제작을 허용하되, 해당 저작물에는 원 저작물과 동일한 라이선스를 적용해야 한다.

만약 원 저작물이 비영리+동일조건변경허락이라면 2차 저작물 역시 형태와 관련없이 무료로 배포해야 한다는 의미가 된다. CCL은 알아보기 쉽도록 저작물 하단에 라이선스 이미지를 함께 표시하는 경우가 많으므로, 이 뜻을 잘 알아 두면 CCL 위반으로 낭패 볼 일이 줄어든다.

CCL 저작권 표기법
CCL 저작권 표기법

오픈소스의 장점 – 자생하는 생태계

오픈소스 사용의 가장 큰 장점은 ‘집단지성’의 효과를 톡톡히 누릴 수 있다는 점이다. 소스코드에 누구나 접근할 수 있는 만큼, 특정 코드에 다양한 개발자가 달라붙어 문제점을 찾아내거나 보완/개선할 수 있다. 대개의 경우 소수 개발자들이 투입되는 독점 코드보다 개선과 발전 속도가 빠르다.

다양한 2차 저작물을 통해 관련 생태계가 보다 풍성해지는 이점이 함께하며, 그런 오픈소스의 장점을 잘 보여주는 대표적인 사례가 바로 리눅스 OS다. 무료지만 강력한 기능과 유연성을 지닌 리눅스는 현재 전 세계에서 가장 널리 쓰이는 서버용 운영체제이며, 안드로이드 OS의 모태이기도 하다.

또 거의 모든 오픈소스가 그렇듯 ‘무료’가 지닌 효과도 강력하다. 오픈소스를 통해 솔루션 도입 비용을 최소화하고, 언제든 새로운 오픈소스로 교체하거나 수정해 기업에 최적화된 환경을 구축할 수 있다는 점도 장점이다.

 

오픈소스의 단점 – 불안정한 사용 환경

물론 단점도 있다. 많은 오픈소스 생태계가 개발자들의 자발적인 참여와 기여로 운영되는 만큼, 어떤 이유로 해당 생태계의 활성도가 저해되면 앞서 언급한 코드 개선과 보완 역시 늦어지거나 중단될 수 있다.

코드의 품질 또한 균일하지 않을 수 있고, 원칙적으로 사후지원을 요청할 권리도 없다. 문제가 발생해도 도움을 받지 못할 수 있다는 의미다. 따라서 체계적이고 엄격한 유지관리가 필요한 경우 내부에 실력 있는 개발자가 있지 않은 이상 오픈소스 사용을 지양하는 것이 좋고, 그렇지 않으면 유료 유지보수 서비스를 사용해야 한다.

 

생각보다 다양한, 오픈소스 수익모델

오픈소스 개념을 처음 접하는 사람들이 가장 궁금해하는 것은 대부분 ‘코드를 무료로 공개하면서 어떻게 돈을 벌지?’ 같은 것이다. 물론 오픈소스로도 돈을 벌 수 있다. 앞서 말한 것처럼 오픈소스로 개발한 프로그램은 무료로 공개하되, 사용에 따른 기술지원/유지보수 서비스에는 비용을 청구하는 방식이 일반적이며, 대표적으로 레드햇 같은 기업이 이런 수익모델을 채택하고 있다.

혹은 프리미엄(Freemium) 전략을 택해 기본 제품은 무료로 공개하고, 핵심 기능은 유료 애드온으로 제공하는 것도 한 방법이다. 이 밖에도 수요와 공급을 활용한 수익화 등 무료 프로그램 기반의 다양한 수익화가 가능하다. 오픈소스 시장이 음으로나 양으로나 지속해서 파이를 키워갈 수 있는 이유다.

테크월드 - 월간<EMBEDDED> 2020년 6월호 中


관련기사

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
0 / 400
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.