§3.3.2 라이선스 컴플라이언스
Categories:
1. 조항 개요
오픈소스 컴포넌트는 배포 형태(바이너리·소스코드), 수정 여부, 다른 컴포넌트와의 결합 방식에 따라 라이선스 의무가 달라진다. §3.3.2는 공급 소프트웨어에 포함된 오픈소스 컴포넌트에 대해 자주 발생하는 라이선스 사용 사례들을 처리할 수 있는 능력을 프로그램이 갖추도록 요구한다. 이 조항은 단순히 라이선스를 식별하는 것을 넘어, 다양한 배포 시나리오별로 의무 이행 방법을 정의한 절차를 마련하도록 한다.
2. 해야 할 활동
- 바이너리 형태 배포, 소스코드 형태 배포, 수정된 오픈소스 배포 등 주요 라이선스 사용 사례를 식별하고 각 사례별 처리 절차를 수립한다.
- 라이선스 충돌(비호환 라이선스 컴포넌트 결합)이 발생했을 때의 처리 방법을 절차에 포함한다.
- 고지 의무(저작권 고지문, 라이선스 전문 포함)가 필요한 라이선스에 대한 처리 방법을 정의한다.
- GPL 등 소스코드 공개 의무가 있는 라이선스가 포함된 소프트웨어의 배포 절차를 수립한다.
- 절차를 문서화하고 정기적으로 검토하여 새로운 라이선스 유형에 대응한다.
3. 요구사항 및 입증자료
| 조항 번호 | 요구사항 (KO) | 입증자료 |
|---|---|---|
| §3.3.2 | 프로그램은 공급 소프트웨어의 오픈소스 컴포넌트에 대한 일반적인 오픈소스 라이선스 사용 사례를 처리할 수 있어야 한다. 처리해야 할 사용 사례는 바이너리 형태 배포 / 소스코드 형태 배포 / 추가 라이선스 의무를 유발할 수 있는 다른 오픈소스와의 통합 / 수정된 오픈소스 포함 / 공급 소프트웨어 내 다른 컴포넌트와 비호환 라이선스 포함 / 저작권 고지 요건이 있는 오픈소스 포함 등을 포함할 수 있다. | 3.3.2.1 공급 소프트웨어 내의 오픈소스 컴포넌트에 대해 일반적인 오픈소스 라이선스 사용 사례를 처리하기 위한 문서화된 절차 |
영문 원문 보기
§3.3.2 License Compliance The program shall be capable of handling the common open source license use cases for the open source components of the supplied software, which may include the following use cases (note that the list is not exhaustive and some of the below use cases may not apply):
- distributed in binary form;
- distributed in source form;
- integrated with other open source such that it may trigger additional licensing obligations;
- contains modified open source;
- contains open source or other software under an incompatible license interacting with other components within the supplied software; and/or
- contains open source with attribution requirements.
Verification Material(s): 3.3.2.1 A documented procedure for handling the common open source license use cases for the open source components of the supplied software.
4. 입증자료별 준수 방법 및 샘플
3.3.2.1 라이선스 사용 사례별 처리 절차
준수 방법
공급 소프트웨어에 오픈소스가 포함되는 다양한 시나리오별로 라이선스 의무를 어떻게 이행하는지 정의한 절차를 문서화해야 한다. 이 절차 문서가 입증자료 3.3.2.1이다. ISO/IEC 5230은 아래 6가지 주요 사용 사례를 예시로 제시하며, 조직의 비즈니스 환경에 따라 해당되는 사례를 선택하여 처리 절차를 수립한다.
각 사용 사례별 절차에는 ①해당 사례 해당 여부 판단 기준, ②라이선스 의무 항목, ③의무 이행 방법, ④담당자, ⑤산출물(고지문, 소스코드 패키지 등)이 포함되어야 한다. 라이선스 충돌이 발생하는 경우 법무 담당에게 에스컬레이션하는 경로도 명시한다.
고려사항
- 사용 사례 범위 확정: 조직의 소프트웨어 배포 방식에 맞는 사용 사례를 선택하여 절차를 수립한다 (모든 사례가 모든 조직에 해당되지 않을 수 있다).
- 라이선스 충돌 대응: GPL과 Apache-2.0 등 비호환 라이선스 조합 발생 시 처리 방법을 미리 정의해 둔다.
- 고지문 관리: 저작권 고지 의무가 있는 라이선스에 대해 NOTICES 파일 또는 제품 설명서 내 고지문 작성 절차를 수립한다.
- 소스코드 공개 절차: GPL 계열 라이선스의 소스코드 공개 요청 대응 절차를 별도로 정의한다.
- 갱신 주기: 신규 라이선스 유형 도입 또는 배포 형태 변경 시 절차를 갱신한다.
샘플
아래는 라이선스 사용 사례별 처리 절차 요약표 샘플이다.
| 사용 사례 | 라이선스 예시 | 주요 의무 | 처리 방법 |
|-----------|--------------|-----------|-----------|
| 바이너리 형태 배포 | MIT, Apache-2.0 | 저작권 고지문 포함 | NOTICES 파일 또는 앱 내 고지 화면에 고지문 포함 |
| 바이너리 형태 배포 | GPL-2.0, GPL-3.0 | 소스코드 공개 또는 제공 약정서 포함 | 소스코드 패키지 배포 또는 written offer 동봉 |
| 소스코드 형태 배포 | 모든 라이선스 | 원본 라이선스 파일 및 저작권 고지 보존 | 라이선스 파일과 저작권 고지를 그대로 유지 |
| 수정된 오픈소스 포함 | GPL-2.0, LGPL-2.1 | 수정 사항 명시, 수정본 동일 라이선스 적용 | 수정 내역 기록, 수정본 소스코드 공개 |
| 비호환 라이선스 결합 | GPL-2.0 + Apache-2.0 | 라이선스 충돌 해소 | 법무 검토 후 컴포넌트 대체 또는 구조 변경 |
| 저작권 고지 요건 | BSD-3-Clause, Apache-2.0 | 제품 문서 또는 UI에 저작권 고지 포함 | 제품 설명서 또는 About 화면에 고지문 추가 |
아래는 배포 형태별 라이선스 의무 처리 절차 개요 샘플이다.
[바이너리 배포 시 라이선스 의무 처리 절차]
1. SBOM 확인
- 배포 소프트웨어의 최신 SBOM을 기준으로 포함된 오픈소스 목록을 확인한다.
2. 라이선스 의무 분류
- 고지문 의무: MIT, Apache-2.0, BSD 등 → NOTICES 파일 작성
- 소스코드 공개 의무: GPL-2.0, GPL-3.0 → 소스코드 패키지 준비
- LGPL: 동적 링크 여부에 따라 의무 범위 판단 (필요 시 법무 검토)
3. 컴플라이언스 산출물 준비
- NOTICES 파일: 모든 오픈소스의 저작권 고지문 및 라이선스 전문 포함
- 소스코드 패키지: GPL 컴포넌트의 수정된 소스코드 및 빌드 스크립트 포함
4. 검토 및 승인
- 오픈소스 프로그램 매니저가 산출물의 완전성을 최종 검토한다.
- 라이선스 충돌 또는 불확실한 사항은 법무 담당에게 에스컬레이션한다.
5. 배포
- 컴플라이언스 산출물을 소프트웨어와 함께 제공한다.
- 산출물 사본을 보관한다 (§3.4.1 참조).
5. 참고
- 관련 가이드: 기업 오픈소스 관리 가이드 — 3. 프로세스
- 관련 템플릿: 오픈소스 프로세스 템플릿