본문 바로가기

POST/Insight

오픈소스 라이센스 이해하기

Designed by Sophia


오픈소스 라이선스를 이해하는 것은 오픈소스 소프트웨어를 사용하고 제작하는 모든 기업에게 중요합니다. 그러나 가장 최근의 오픈소스 현황 보고서에 따르면, 오픈소스 라이선스에 익숙한 법무팀을 보유하고 있는 기업은 19%에 불과한 것으로 조사되었습니다. 오늘은 오픈소스 라이선스의 옵션을 분석하고 다양한 유형의 오픈소스 라이선스를 정확히 파악하여 조직의 오픈소스 프로젝트에 적합한 라이선스를 선택할 수 있으며, 소프트웨어에 이미 존재하는 라이선스를 식별하여 규정을 준수할 수 있습니다.

오픈소스 라이선스란 무엇인가?

오픈소스 라이선스는 Open Source Initiative에서 정의한 오픈소스 소프트웨어의 조건을 준수하여 자유롭고 개방된 소프트웨어 개발을 가능하게 합니다. 오픈소스 라이선스의 유형에 따라 소프트웨어 코드를 공유할 수 있는 조건과 저작자가 보호 및/또는 인정받는 수준이 결정됩니다.

 

오픈소스 라이선스을 설명하기 위해서는 먼저 소프트웨어에 대한 라이선스의 정의부터 시작해야 합니다. 소프트웨어의 경우, 보편적인 저작권 개념과 연관이 있으며 저작권은 소프트웨어의 코드와 실행, 즉 소스 코드와 바이너리 코드(실행 파일)에까지 확장됩니다. 소프트웨어의 저작자는 저작권을 보유하고 있으므로, 소프트웨어와 그로부터 파생된 모든 작업에 대한 법적 권한을 가집니다.

 

독점 소프트웨어 라이선스는 저작권 소유자가 아닌 다른 사람에게 특정 법적 조건 하에서 소프트웨어를 사용할 수 있는 권한이나 권리를 부여합니다. 반면에 오픈소스 라이선스는 소스 코드, 실행 가능한 바이너리 코드, 그리고 수정된 버전을 사용할 뿐만 아니라 수정하거나 배포할 수 있는 권리를 명시적으로 부여합니다.

 

오픈소스 라이선스에 대한 일관성과 명확성을 유지하기 위해 Open Source Initiative(OSI)는 오픈소스 정의를 만들었습니다. 이 정의는 어떤 라이선스가 오픈소스로 인정될 수 있는지를 판단하는 기준을 제시합니다.

오픈소스 라이선스 유형

모든 오픈소스 프로젝트는 오픈소스 라이선스를 가져야 하며, 유사한 라이선스의 수백 가지 변형이 존재합니다. 오픈소스에서는 완전히 새로운 라이선스 조건을 만들 자유가 있습니다. OSI의 임무는 오픈소스 정의를 관리하는 것이며, "오픈소스"로 표시된 라이선스와 소프트웨어가 오픈소스의 정의에 부합하는지 확인하기 위한 라이선스 검토 과정을 가지고 있습니다. OSI가 승인한 자주 사용되는 오픈 소스 라이선스는 200개 이상입니다.

 

일반적으로 오픈소스 라이선스는 허용적(permissive) 라이선스와 카피레프트(copyleft) 라이선스 두 가지 유형으로 나뉩니다.

 

허용적 라이선스

 

오픈소스 허용적 라이선스는 사용자에게 소프트웨어를 사용, 수정, 배포할 자유를 부여합니다. 개발자가 오픈소스 코드를 독점 소프트웨어를 포함한 자신의 프로젝트에 통합할 수 있게 하며, 저작자 표시나 대체 라이선스 사용에 대한 의무를 부과하지 않습니다.

허용적 라이선스의 예로는 3-Clause BSD 라이선스, MIT 라이선스, Apache 2.0 라이선스가 있습니다.

 

카피레프트 라이선싱

 

두 번째 유형의 오픈소스 소프트웨어 라이선스는 카피레프트 라이선스입니다. 이들은 상호주의 조항으로 알려져 있으며, 모든 파생 작업이 원본 소프트웨어와 동일한 라이선스 하에 배포되어야 하고, 이는 해당 라이선스 하에서 소스 코드를 공개하는 것을 포함합니다. 즉, 카피레프트 라이선스는 파생 소프트웨어에 대해 허용적이나 독점적 라이선스 모델을 사용할 수 있는 능력을 제한합니다.

 

GNU (일반 공중 사용 허가서(GPL)) 계열의 라이선스는 카피레프트 라이선스의 대표적인 예시입니다: GPLv2, GPLv3, LGPLv2, LGPLv3, AGPL 등이 있습니다. 이들은 소프트웨어를 복사, 수정, 배포할 권리를 부여하지만, 그 결과물인 소프트웨어가 다시 동일한 GPL 라이선스 하에 배포되어야 하며 소스 코드를 공유해야 한다는 조건이 있습니다. 일부 카피레프트 라이선스는 특정 사용 사례에 대해 이 조건에 예외를 두기도 합니다.

 

Linux 배포판에 대한 GPLv2 라이선스는 최근 2023년 6월에 발생한 Red Hat의 RHEL 소스 코드 가용성 공개 제한으로 인해 논의의 주제가 되었습니다.

어떤 오픈소스 라이선스를 사용해야 할까?

라이선스를 선택함에 있어 몇가지 고려사항이 있지만, 가장 중요한 요소는 다른 사람들이 내가/자사가 개발한 코드로 무엇을 할 수 있게 하고 싶은가입니다: 오픈소스로 유지할 것인지, 아니면 코드를 독점 또는 상업 소프트웨어로 사용할 것인지 고민해야 합니다. 또한 저자로 라이선스에 표시되기를 원하는지(저작자 표시)도 고려해야 합니다.

 

오픈소스 소프트웨어에 대한 오픈소스 라이선스를 선택할 때 고려해야 할 사항은 다음과 같습니다:

  • 다른 사람이 내가/자사가 개발한 오픈소스 프로젝트의 버전을 개발, 호스팅, 판매 또는 배포하는 것에 대한 허용 여부입니다. 허용할 의사가 있다면, ‘허용적 라이선스’가 적합하며, MIT, Apache 또는 다른 허용적 라이선스 간의 차이점을 비교해보고, 적절한 라이선스를 선택할 수 있습니다.
  • 소스 코드에 대한 변경 사항이 오픈소스로 유지되기를 원한다면, 카피레프트 라이선스를 고려해야 합니다.

오픈소스 라이선스 준수

모든 규모와 모든 산업의 조직들은 오픈소스 준수를 유지하기 위해 모든 소프트웨어에서 오픈소스 구성 요소의 존재를 식별하고 모니터링하는 체계적인 접근 방식을 수립해야 합니다. 조직은 오픈소스 구성 요소의 출처, 버전, 오픈소스 라이선스를 사전에 확인하지 않고는 어떤 오픈소스 구성 요소도 다른 소프트웨어에 통합되거나 사용되지 않도록 정책을 정의해야 합니다.

 

앞서 설명한 바와 같이, 카피레프트 라이선스는 소프트웨어가 상업화될 경우 제한을 가할 수 있습니다. 조직은 오픈소스 라이선스 정보를 포함하는 소프트웨어 구성 목록(SBOM)을 생성해야 합니다. 이 과정은 소프트웨어 개발 관행 내에서 오픈소스 라이선스 요구사항에 대한 투명성과 준수를 보장합니다.

오픈소스 라이선스가 변경되면 어떻게 되나요?

흔한 관행은 아니지만 가끔 오픈소스 커뮤니티와 오픈소스 프로젝트의 메인테이너들은 오픈소스 라이선스의 전환을 결정합니다. 오픈소스 라이선스에서 비 오픈소스 라이선스로의 변경은 항상 주목할 만한 뉴스가 되며, 더 이상 오픈소스가 아닌 소프트웨어를 상업화하거나 의존하는 다른 오픈소스 프로젝트와 조직에 영향을 미칩니다.

 

HashiCorp가 인기 있는 오픈소스 프로젝트(Terraform, Consul, Vault)를 Business Service License (비즈니스 서비스 라이선스(BUSL))로의 전환은 "source available" 라이선스가 상업화를 금지하기 때문에 많은 논란을 일으켰습니다. 이 라이선스는 재판매, 서비스로서의 호스팅, 상업 소프트웨어와의 번들링 등의 활동이 허용되지 않습니다. 즉, 더 이상 오픈소스 라이선스가 아닙니다. 이러한 라이선스 변경은 프로젝트 포크를 발생시키며, Terraform의 포크인 OpenTofu가 Linux Foundation의 지원을 받고 빠르게 관심을 끌고 있습니다.

 

오픈소스 라이선스를 선택하기 전에 철저한 조사를 해야 합니다. 오픈소스를 유지보수하는 커뮤니티의 규모, 릴리스 주기, 기여자의 수와 출처 등을 살펴보아야 합니다. 또, 단일 영리 조직이 주도하는 오픈소스 프로젝트의 경우, 라이선스 조건을 변경이나 오픈소스 프로젝트의 아키텍처와 로드맵에 대해 일방적인 결정을 내릴 위험도가 더 높다는 점을 고려해야 합니다.

 

오픈소스 소프트웨어의 사용이 급증하면서 기업들은 오픈소스 라이선스 관리의 중요성을 인식하고 있습니다. 그러나 앞서 언급한대로 2024 오픈소스 현황 보고서에 따르면, 오직 19%의 조직만이 오픈소스 라이선스에 익숙한 법무팀을 보유하고 있어, 대다수의 기업이 오픈소스 라이선스 관리에 어려움을 겪고 있습니다.

 

오픈소스 전문가와 팀을 보유하거나 믿을만한 파트너를 통해 오픈소스 라이선스, 운영, 유지보수 등을 강화하는 방법을 고민할 필요가 있습니다.

 

오에스씨코리아는 클라우드 네이티브와 마이크로서비스 아키텍처에 필요한 40여종의 오픈소스에 대한 기업형 기술지원인 ‘오픈소스 케어팩’을 제공하고 있습니다. 오픈소스 케어팩은 기업을 위한 종합적인 오픈소스 기술지원 서비스로, 오픈소스 라이선스 관리에 있어 다음과 같은 이점을 제공합니다

  1. 전문가의 오픈소스 자문: 오픈소스 케어팩은 15년 이상의 경험을 가진 아키텍트와 엔지니어들의 지원을 받을 수 있습니다. 이들 전문가는 다양한 오픈소스에 대한 깊이 있는 이해를 바탕으로, 기업이 사용 중인 오픈소스 소프트웨어의 라이선스, 유지보수 상태 등 포괄적인 관점에서 검토하고 적절한 조언을 제공합니다.
  2. 오픈소스 패키지를 통한 전체 기술스택 통합: 오픈소스 기술 스택을 구성하는 모든 오픈소스 소프트웨어 간의 통합 및 상호 운용성에 대한 지원이 가능합니다. 오픈소스 기술 스택 전체의 설계와 통합 배포에 대한 경험을 제공합니다.
  3. 오픈소스 교육 및 워크샵: 오픈소스 케어팩은 기업 내 개발자와 관리자를 대상으로 오픈소스 전반에 대한 교육과 워크샵을 제공합니다. 이를 통해 조직 전체의 오픈소스, 오픈소스 라이선스 이해도를 높이고 효과적인 관리 문화를 조성할 수 있습니다.
  4. 지속적인 모니터링 및 업데이트: 오픈소스 생태계는 빠르게 변화하며, 이에 따라 라이선스 조건도 변경될 수 있습니다. 오픈소스 케어팩은 이러한 변화를 지속적으로 모니터링하고 기업에게 필요한 업데이트 정보를 제공하여 항상 최신의 라이선스 규정을 준수할 수 있도록 지원합니다.
  5. 고객의 인프라와 IT 환경에 맞는 기업형 오픈소스 기술지원: 온프레미스, 하이브리드 환경까지 고객의 인프라 환경과 무관하게 다양한 기술지원 서비스를 서비스 레벨별로 제공합니다.

오에스씨코리아는 다양한 국내 고객을 대상으로 오픈소스 중심의 데브옵스, 마이크로서비스 아키텍처 구축 및 유지보수 실무경험을 보유하고 있습니다. 오픈소스 케어팩에 대해 문의가 있다면 오에스씨코리아로 언제든지 연락주세요.

 

 

원문링크: 

How does open source licensing work

 

참고링크: 

OSC코리아에 오픈소스를 맡겨야 하는 7가지 이유

🔍OSS케어팩 톺아보기🔍