2026년 하루 평균 보고된 CVE가 전년 대비 131% 증가했습니다.

종속성

오픈 소스 라이선스 컴플라이언스

오픈 소스는 무료로 사용할 수 있지만 조건이 없는 것은 아닙니다. 모든 패키지에는 라이선스가 있으며, 오픈 소스 라이선스 컴플라이언스란 제품에 어떤 라이선스가 들어 있는지 파악하고 그 라이선스가 요구하는 바를 충족하는 것을 뜻합니다. 그런 라이선스의 대부분은 팀의 누구도 선택하지 않은 종속성을 통해 들어옵니다.

업데이트

이 페이지는 일반 정보이며 법률 자문이 아닙니다. 특정 제품에 관한 결정은 변호사와 상의하세요.

오픈 소스 라이선스의 유형

유형 예시 일반적인 요구 사항
허용적 MIT, BSD, Apache-2.0 저작권 및 라이선스 고지를 유지합니다. Apache-2.0에는 특허 조항도 있습니다.
약한 카피레프트 LGPL, MPL-2.0 라이선스가 적용된 구성 요소 자체의 변경 사항을 공유
강한 카피레프트 GPL-2.0, GPL-3.0 함께 배포되는 소프트웨어를 같은 조건으로, 소스와 함께 제공해야 함
네트워크 카피레프트 AGPL-3.0 강한 카피레프트와 같으며, 사용자가 네트워크를 통해 소프트웨어와 상호작용할 때도 적용됨
소스 공개형 BUSL, SSPL 오픈 소스가 아님: 소스는 볼 수 있지만 사용이 제한됨

카피레프트 라이선스란 무엇입니까?

카피레프트 라이선스는 배포하는 것이 같은 조건을 유지한다는 전제로 소프트웨어를 사용, 변경, 공유할 수 있게 합니다. 오픈 소스를 계속 오픈 소스로 유지하는 장치입니다. 상용 제품에 따르는 위험은, 코드에 링크된 강한 카피레프트 구성 요소 때문에 자체 코드도 공개해야 하는지의 문제가 제기될 수 있다는 점입니다.

이것이 적용되는지는 구성 요소를 사용하는 방식과 제품을 제공하는 방식에 따라 다릅니다. 고객에게 배포하는 소프트웨어는 내부 도구보다 노출이 크며, SaaS 제품은 대개 GPL 배포 조건은 피하지만 AGPL 조건은 피하지 못합니다.

흔한 컴플라이언스 위험

  • 전이적 라이선스. 허용적 라이선스 패키지가 카피레프트 패키지에 의존할 수 있습니다. 직접 종속성만 확인하면 이를 놓칩니다.
  • 누락된 고지. 대부분의 라이선스는 저작자 표시 유지를 요구하며, 고지 파일을 빠뜨리는 것이 가장 흔한 실패입니다.
  • 변경된 라이선스. 프로젝트가 새 버전에서 라이선스를 바꿀 수 있으므로, 업그레이드로 조건이 바뀔 수 있습니다.
  • 선언된 라이선스와 실제 라이선스. 패키지의 메타데이터가 틀리거나 불완전할 수 있으며, 벤더링된 코드에는 별도의 라이선스가 있을 수 있습니다.
  • 실사. 인수 기업과 대형 고객은 라이선스 인벤토리를 요구하며, 대개 촉박한 기한을 둡니다.

컴플라이언스를 유지하는 방법

  1. 정책을 작성합니다. 제품 유형별로 어떤 라이선스를 허용하고, 어떤 라이선스에 검토가 필요하며, 어떤 라이선스를 금지할지 정합니다.
  2. 인벤토리를 구축합니다. SBOM은 전이적 종속성을 포함해 각 구성 요소를 라이선스와 함께 나열합니다.
  3. 자동으로 검사합니다. CI에서 정책을 적용해, 새 종속성이 감사 때가 아니라 추가되는 시점에 실패하도록 합니다.
  4. 의무를 이행합니다. 고지 파일을 생성하고, 라이선스가 요구하는 경우 소스를 제공합니다.
  5. 기록을 보관합니다. 릴리스별로 인벤토리를 저장합니다. 질문은 대개 이미 출시한 버전에 관한 것이기 때문입니다.

라이선스 컴플라이언스 소프트웨어가 하는 일

라이선스 컴플라이언스는 소프트웨어 구성 분석의 표준 요소입니다. 도구는 구성 요소를 식별하고, 라이선스를 보고하며, 정책 위반을 표시합니다. 도구마다 깊이가 다릅니다.

  • 선언된 라이선스: 대부분의 도구는 각 패키지가 메타데이터에 선언한 내용을 읽습니다. 빠르고 일반적인 경우를 다룹니다.
  • 심층 라이선스 스캔: FOSSA와 Black Duck은 코드 안의 라이선스 텍스트까지 분석하고, 저작자 표시 보고서와 법률 검토를 지원합니다. CRACI와 FOSSA 비교 및 CRACI와 Black Duck 비교를 참고하세요.
  • 무료 도구: 많은 SBOM 생성기와 SCA 스캐너가 선언된 라이선스를 무료로 보고합니다. 최고의 SCA 도구를 참고하세요.

CRACI의 역할

CRACI는 빌드에서 선언된 라이선스를 다룹니다. GitHub Actions 러너로서 작업이 가져오는 모든 패키지를 기록하며, 각 패키지에는 선언된 라이선스가 함께 담기므로 카피레프트 라이선스가 제품에 들어가기 전에 잡아낼 수 있습니다. 라이선스 정책 규칙으로 특정 라이선스를 기준으로 빌드를 차단할 수 있으며, CycloneDX 및 SPDX SBOM 내보내기에는 각 구성 요소의 선언된 라이선스가 포함됩니다. CRACI는 패키지가 선언한 내용을 바탕으로 작동하므로, 법률 검토 워크플로나 라이선스 텍스트 분석이 필요하다면 전문 도구를 함께 사용하세요.

오픈 소스 라이선스 컴플라이언스: 자주 묻는 질문

오픈 소스 라이선스 컴플라이언스란 무엇입니까?

사용하는 소프트웨어에 어떤 오픈 소스 라이선스가 적용되는지 파악하고, 고지 유지나 소스 코드 공유 같은 조건을 충족하는 것을 뜻합니다.

카피레프트 라이선스란 무엇입니까?

배포하는 것이 같은 조건을 유지한다는 전제로 소프트웨어를 사용하고 변경할 수 있게 하는 라이선스입니다. GPL이 가장 잘 알려진 예입니다.

상용 소프트웨어에 GPL 코드를 사용할 수 있습니까?

가능합니다. 하지만 GPL 코드가 포함된 소프트웨어를 배포한다면, 해당 소프트웨어의 소스를 GPL로 제공해야 할 수 있습니다. 코드를 결합하는 방식이 중요하므로, 해당 사례에 대해 법률 자문을 받으세요.

카피레프트는 SaaS에도 적용됩니까?

GPL 조건은 일반적으로 배포에 의해 적용되며, SaaS는 대개 배포에 해당하지 않습니다. AGPL은 네트워크를 통해 소프트웨어와 상호작용하는 사용자에게까지 조건을 확장해 이 빈틈을 메웁니다.

상업적 사용에 가장 안전한 오픈 소스 라이선스는 무엇입니까?

MIT, BSD, Apache-2.0 같은 허용적 라이선스가 요구하는 것이 가장 적습니다. 그래도 고지는 유지해야 합니다.

종속성의 라이선스는 어떻게 확인합니까?

전이적 종속성과 선언된 라이선스를 포함하는 SBOM을 생성하거나 SCA 도구를 사용하세요. CI에서 정책을 적용해 새로운 위반이 빌드를 실패시키도록 하세요.

출시 전에 카피레프트를 잡아내세요

GitHub Actions 작업이 가져온 모든 패키지의 선언된 라이선스를 확인하고, 정책에 따라 빌드를 차단하세요.

데모 예약