diff --git a/.claude/progress.md b/.claude/progress.md index 8ac9576..9fb2a2a 100644 --- a/.claude/progress.md +++ b/.claude/progress.md @@ -21,7 +21,7 @@ POSITIONING.md 정체성에 맞춰 시스템·콘텐츠 고도화. 계획은 승 | 0 | 거버넌스·품질 기반 | ✅ 완료 | | 1 | 메뉴 구조 + 커버리지 재검 | ✅ 완료 (1A 커버리지 + 1B 메뉴) | | 2 | 용어집 + 콘텐츠 직접 개선 | ✅ 완료 | -| 3 | 실습환경 | ⏳ 대기 | +| 3 | 실습환경 | ✅ 완료 | | 4 | 데모환경 | ⏳ 대기 | > 순서 변경(2026-06-04): IA·커버리지를 먼저 확정해야 콘텐츠·실습·데모 작업 방향이 잡히므로 '메뉴 구조+커버리지 재검'을 Phase 1로 올림. @@ -56,6 +56,16 @@ POSITIONING.md 정체성에 맞춰 시스템·콘텐츠 고도화. 계획은 승 - 관찰: 08-developer-guide는 125줄로 길이 밴드 하한(200) 미달이나, verbose 간결화 스코프 밖이라 최소 변경 원칙상 보류 - 청크 단위로 각각 verify 12/12 통과 후 개별 커밋 +**Phase 3 완료 내역 (2026-06-04):** + +- samples 메타: 3개 README 상단에 학습 메타 표(목표, 예상 시간, 난이도, 선행 조건, 관련 챕터) 추가 + samples/README.md 인덱스 신설(비교 표, 공통 선행 조건, 사용 방법) +- 상태감지 정합 버그 수정: 루트 CLAUDE.md 독자 상태감지 테이블이 05-analyst→vulnerability→management 순서로 어긋나 있던 것을 정본(analyst→management→vulnerability→training)으로 정렬. 근거는 05-vulnerability-analyst 전제조건(sbom-management-plan.md)과 validate-chain.py +- agent 온보딩 메타: 9개 agent CLAUDE.md에 "예상 소요" 한 줄 추가(질문 수 + 검토 시간). 전제조건·다음명령은 기존 보유 +- Docker 미설치 경로: docs/01-setup에 안내 추가(Docker는 05에서만 사용, 미설치 시 샘플 SBOM 경로). 05-sbom-guide·05-sbom-generation의 Docker-없이 경로는 기존 보유 +- 온보딩 동선: docs/intro·README에 정직한 2경로(체계구축 agents vs 개발팀 도구 웹) + 빠른시작(1~2h)/풀코스(8~12h) 구분 추가. 무API키 웹 체험은 미구축이므로 약속하지 않고 Phase 4로 연기 +- 04-process Q5·Q6 입력형식은 agent와 docs 모두 예/아니오로 이미 정합(수정 불필요 확인) +- 청크 7개로 분할(≤4파일/청크), 각각 verify 12/12 통과 후 커밋 + --- ## 현재 단계 — 사용자 테스트 & 버그 리포트 대응 diff --git a/CLAUDE.md b/CLAUDE.md index b20e271..f75df12 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,16 +45,17 @@ ISO/IEC 5230 (라이선스 컴플라이언스)과 ISO/IEC 18974 (보안 보증) "어디서 시작해야 해?" 또는 "다음에 뭘 해야 해?" 질문 시 `output/` 폴더를 스캔하고 아래 표로 안내한다. -| output/ 상태 | 안내 | -| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 비어있음 | "시작하기 전에"(`docs/00-overview/index.md`) 및 "소프트웨어 공급망 보안: 왜 지금 중요한가"(`docs/00-overview/supply-chain.md`) 읽기 → 현재 Claude 세션 종료 후 `cd agents/02-organization-designer && claude` 실행 | -| organization/ 있음, policy/ 없음 | 현재 Claude 세션 종료 후 `cd agents/03-policy-generator && claude` 실행 | -| policy/ 있음, process/ 없음 | 현재 Claude 세션 종료 후 `cd agents/04-process-designer && claude` 실행 | -| process/ 있음, sbom/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-guide && claude` 실행 | -| sbom/ 있음, vulnerability/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-analyst && claude` 실행 → 완료 후 `cd agents/05-vulnerability-analyst && claude` 실행 | -| vulnerability/ 있음, training/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-management && claude` 실행 → 완료 후 `cd agents/06-training-manager && claude` 실행 | -| training/ 있음, conformance/ 없음 | 현재 Claude 세션 종료 후 `cd agents/07-conformance-preparer && claude` 실행 | -| conformance/ 있음 | 완성 축하 → OpenChain 자체 인증 등록: https://www.openchainproject.org/conformance | +| output/ 상태 | 안내 | +| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 비어있음 | "시작하기 전에"(`docs/00-overview/index.md`) 및 "소프트웨어 공급망 보안: 왜 지금 중요한가"(`docs/00-overview/supply-chain.md`) 읽기 → 현재 Claude 세션 종료 후 `cd agents/02-organization-designer && claude` 실행 | +| organization/ 있음, policy/ 없음 | 현재 Claude 세션 종료 후 `cd agents/03-policy-generator && claude` 실행 | +| policy/ 있음, process/ 없음 | 현재 Claude 세션 종료 후 `cd agents/04-process-designer && claude` 실행 | +| process/ 있음, sbom/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-guide && claude` 실행 | +| sbom/ 있음, sbom-management-plan.md 없음 | 현재 Claude 세션 종료 후 `cd agents/05-sbom-analyst && claude` 실행 → 완료 후 `cd agents/05-sbom-management && claude` 실행 | +| sbom-management-plan.md 있음, vulnerability/ 없음 | 현재 Claude 세션 종료 후 `cd agents/05-vulnerability-analyst && claude` 실행 | +| vulnerability/ 있음, training/ 없음 | 현재 Claude 세션 종료 후 `cd agents/06-training-manager && claude` 실행 | +| training/ 있음, conformance/ 없음 | 현재 Claude 세션 종료 후 `cd agents/07-conformance-preparer && claude` 실행 | +| conformance/ 있음 | 완성 축하 → OpenChain 자체 인증 등록: https://www.openchainproject.org/conformance | ## 사용 경로 diff --git a/README.md b/README.md index 4d6bb74..58fe1c1 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,11 @@ cd trustedoss-agents && claude # "어디서 시작해야 해?" 입력 ``` +체계 구축은 두 가지 깊이로 진행할 수 있습니다. + +- **빠른 시작 (1~2시간)**: 시간이 부족하면 개요, 02 조직, 03 정책 세 챕터만 진행해 정책 초안까지 만듭니다. +- **풀 코스 (8~12시간)**: 00~07 챕터를 순서대로 진행해 자체 인증 선언문까지 완성합니다. + --- ## Agent 목록 @@ -241,6 +246,11 @@ cd trustedoss-agents && claude # "어디서 시작해야 해?" (meaning: "Where should I start?") ``` +You can build your program at two depths: + +- **Quick start (1–2 hours)**: short on time? Cover just the Overview, 02 Organization, and 03 Policy chapters to reach a policy draft. +- **Full course (8–12 hours)**: work through chapters 00–07 in order to complete your self-certification statement. + --- ## Agent List diff --git a/agents/02-organization-designer/CLAUDE.md b/agents/02-organization-designer/CLAUDE.md index 37a0821..5b87887 100644 --- a/agents/02-organization-designer/CLAUDE.md +++ b/agents/02-organization-designer/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 02-organization-designer +> **예상 소요**: 약 15분 — 질문 6개에 답변하고 생성된 산출물을 검토하는 시간입니다. + ## 역할 조직/담당자 산출물을 자동 생성하는 agent다. diff --git a/agents/03-policy-generator/CLAUDE.md b/agents/03-policy-generator/CLAUDE.md index 2d7f844..0a71898 100644 --- a/agents/03-policy-generator/CLAUDE.md +++ b/agents/03-policy-generator/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 03-policy-generator +> **예상 소요**: 약 15분 — 질문 5개에 답변하고 생성된 정책 문서를 검토하는 시간입니다. + ## 역할 회사 맞춤 오픈소스 정책 문서를 생성하는 agent다. diff --git a/agents/04-process-designer/CLAUDE.md b/agents/04-process-designer/CLAUDE.md index bc7e724..d6ee581 100644 --- a/agents/04-process-designer/CLAUDE.md +++ b/agents/04-process-designer/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 04-process-designer +> **예상 소요**: 약 20분 — 질문 7개에 답변하고 생성된 프로세스 문서와 흐름도를 검토하는 시간입니다. + ## 역할 오픈소스 프로세스 문서 및 Mermaid 흐름도를 생성하는 agent다. diff --git a/agents/05-sbom-analyst/CLAUDE.md b/agents/05-sbom-analyst/CLAUDE.md index ffa664e..749c33e 100644 --- a/agents/05-sbom-analyst/CLAUDE.md +++ b/agents/05-sbom-analyst/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-sbom-analyst +> **예상 소요**: 약 10분 — 질문 2개에 답변하고 생성된 라이선스 분석 리포트를 검토하는 시간입니다. + ## 역할 SBOM 파일을 분석하여 라이선스 리포트와 Copyleft 위험도 리포트를 생성하는 agent다. diff --git a/agents/05-sbom-guide/CLAUDE.md b/agents/05-sbom-guide/CLAUDE.md index 0f79a5c..ef0e5c7 100644 --- a/agents/05-sbom-guide/CLAUDE.md +++ b/agents/05-sbom-guide/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-sbom-guide +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 SBOM 생성 스크립트를 실행하는 시간입니다. 처음 실행 시 Docker 이미지 풀링으로 10~15분이 더 걸릴 수 있습니다. + ## 역할 프로젝트 SBOM 생성 안내 및 실행 스크립트를 제공하는 agent다. diff --git a/agents/05-sbom-management/CLAUDE.md b/agents/05-sbom-management/CLAUDE.md index 2de1c72..2393f39 100644 --- a/agents/05-sbom-management/CLAUDE.md +++ b/agents/05-sbom-management/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-sbom-management +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 생성된 SBOM 관리 계획을 검토하는 시간입니다. + ## 역할 SBOM 관리 계획 및 외부 공유 템플릿을 생성하는 agent다. diff --git a/agents/05-vulnerability-analyst/CLAUDE.md b/agents/05-vulnerability-analyst/CLAUDE.md index 68c698d..c3c7246 100644 --- a/agents/05-vulnerability-analyst/CLAUDE.md +++ b/agents/05-vulnerability-analyst/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 05-vulnerability-analyst +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 생성된 취약점 분석 리포트를 검토하는 시간입니다. + ## 역할 SBOM 기반 취약점 분석 리포트 및 대응 계획을 생성하는 agent다. diff --git a/agents/06-training-manager/CLAUDE.md b/agents/06-training-manager/CLAUDE.md index c619c30..e85d8f7 100644 --- a/agents/06-training-manager/CLAUDE.md +++ b/agents/06-training-manager/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 06-training-manager +> **예상 소요**: 약 10분 — 질문 3개에 답변하고 생성된 교육 커리큘럼과 이수 추적표를 검토하는 시간입니다. + ## 역할 직군별 교육 커리큘럼과 이수 추적 시트, 무료 교육 리소스 목록을 생성하는 agent다. diff --git a/agents/07-conformance-preparer/CLAUDE.md b/agents/07-conformance-preparer/CLAUDE.md index b290fac..7722cd6 100644 --- a/agents/07-conformance-preparer/CLAUDE.md +++ b/agents/07-conformance-preparer/CLAUDE.md @@ -1,5 +1,7 @@ # Agent: 07-conformance-preparer +> **예상 소요**: 약 15분 — 질문 3개에 답변하고 생성된 갭 분석과 인증 선언문을 검토하는 시간입니다. + ## 역할 전체 산출물을 스캔하여 갭 분석을 실행하고, 자체 인증 선언문과 제출 가이드를 생성하는 최종 agent다. diff --git a/docs/01-setup/index.md b/docs/01-setup/index.md index 8ff6682..a43b448 100644 --- a/docs/01-setup/index.md +++ b/docs/01-setup/index.md @@ -26,6 +26,10 @@ | Claude Code | AI 기반 실습 보조, agent 실행 | 필수 | 최신 버전 | | Node.js | Docusaurus 문서 사이트 빌드 | 선택 (문서 사이트 필요 시) | v18 LTS 이상 | +:::tip Docker를 설치할 수 없다면 +Docker는 챕터 05(SBOM·취약점 도구 실습)에서만 사용합니다. 회사 정책 등으로 설치가 어렵다면, 챕터 05의 "Docker 없이 진행하는 경우" 경로에서 미리 만든 샘플 SBOM으로 실습을 이어갈 수 있습니다. 나머지 챕터(02 조직~04 프로세스, 06 교육~07 인증)는 Docker 없이 agent 대화만으로 진행됩니다. +::: + ## 3. 설치 안내 (OS별) ### macOS diff --git a/docs/intro.md b/docs/intro.md index 618cb45..a6d3165 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -59,11 +59,22 @@ cd trustedoss-agents && claude ## 사용 경로 -### 셀프 스터디 (8–12시간) +처음 담당자는 **체계 구축** 경로로 시작합니다. 개발·보안팀은 필요할 때 **개발팀 도구** 경로를 병행합니다. -혼자서 며칠에 걸쳐 진행합니다. 각 챕터의 **배경 지식** 섹션을 충분히 읽고 실습합니다. +| 경로 | 누구에게 | 무엇을 | 소요 | +| ----------------------------------- | --------------- | ----------------------------------------- | ------------------------------------ | +| **체계 구축** (이 가이드 + agents) | OSS 관리 담당자 | 정책·프로세스·SBOM·인증까지 ISO 체계 완성 | 풀 코스 8~12시간 / 빠른 시작 1~2시간 | +| **개발팀 도구** (DevSecOps·AI 코딩) | 개발·보안팀 | 수립한 정책을 코드·CI에 자동 적용 | 선택 | -→ [시작하기 전에](./00-overview/index.md)부터 시작하세요 +### 빠른 시작 (1~2시간) — 핵심만 + +시간이 부족하면 [개요](./00-overview/index.md), [02 조직](./02-organization/index.md), [03 정책](./03-policy/index.md) 세 챕터만 진행해 정책 초안까지 만듭니다. + +### 풀 코스 (8~12시간) — 자체 인증까지 + +[시작하기 전에](./00-overview/index.md)부터 00~07 챕터를 순서대로 진행해 자체 인증 선언문까지 완성합니다. 각 챕터의 **배경 지식**을 충분히 읽고 실습합니다. + +개발·보안팀이라면 정책 수립 후 [DevSecOps 가이드](/devsecops/intro)와 [AI 코딩 가이드](/ai-coding/intro)로 코드·CI 적용을 이어갈 수 있습니다. --- diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 0000000..27abc6f --- /dev/null +++ b/samples/README.md @@ -0,0 +1,23 @@ +# 실습 샘플 프로젝트 + +trustedoss 가이드 [챕터 05 — 도구 실습](../docs/05-tools/sbom-generation/index.md)에서 분석 대상으로 사용하는 샘플 3개입니다. 각 샘플에는 학습을 위한 결함(취약점·라이선스 리스크)을 의도적으로 심어 두었습니다. SBOM 생성과 라이선스·취약점 분석 실습의 입력이 됩니다. + +| 샘플 | 언어 | 학습 포인트 | 난이도 | 예상 시간 | +| ----------------------------------------------- | ------------- | ---------------------------------------------- | ------ | --------- | +| [java-vulnerable](./java-vulnerable/) | Java (Maven) | Log4Shell(CVE-2021-44228) Critical 취약점 탐지 | 입문 | 약 20분 | +| [python-mixed-license](./python-mixed-license/) | Python (pip) | GPL + Permissive 혼재 Copyleft 리스크 | 입문 | 약 20분 | +| [nodejs-unlicensed](./nodejs-unlicensed/) | Node.js (npm) | 라이선스 미명시(UNLICENSED) 패키지 처리 | 중급 | 약 25분 | + +## 공통 선행 조건 + +- **Docker Desktop 실행** (`docker ps`가 오류 없이 동작). 설치하지 않았다면 [챕터 05](../docs/05-tools/sbom-generation/index.md)의 "Docker 없이 진행하는 경우" 경로로 미리 만든 샘플 SBOM을 사용할 수 있습니다. +- 처음이라면 **java-vulnerable**부터 권장합니다. 취약점 탐지 결과가 가장 직관적입니다. +- nodejs-unlicensed는 SBOM 생성 전 `npm install`이 필요합니다. + +## 사용 방법 + +1. [챕터 05 — SBOM 생성](../docs/05-tools/sbom-generation/index.md)을 진행하며 분석 대상으로 샘플 경로를 선택합니다. +2. 각 샘플 README의 "SBOM 생성 명령어"를 실행해 `output/sbom/`에 SBOM을 만듭니다. +3. 라이선스·취약점 분석 agent로 결과(Copyleft 리스크, CVE)를 확인합니다. + +각 샘플의 상세한 학습 목표·예상 결과·실제 조치 방법은 해당 폴더의 README를 참고하세요. diff --git a/samples/java-vulnerable/README.md b/samples/java-vulnerable/README.md index 1803b64..b84d2ae 100644 --- a/samples/java-vulnerable/README.md +++ b/samples/java-vulnerable/README.md @@ -1,5 +1,13 @@ # java-vulnerable — Log4Shell 취약점 탐지 실습 +| 항목 | 내용 | +| --------- | ------------------------------------------------------------------------------------ | +| 학습 목표 | SBOM·취약점 분석 도구가 Critical 취약점(Log4Shell)을 어떻게 탐지하는지 확인 | +| 예상 시간 | 약 20분 | +| 난이도 | 입문 | +| 선행 조건 | Docker Desktop 실행 (없으면 docs 05 챕터의 "Docker 없이 진행" 경로로 샘플 SBOM 사용) | +| 관련 챕터 | 05 SBOM 생성, 취약점 분석 | + ## 실습 목적 이 샘플 프로젝트는 **Log4Shell 취약점 (CVE-2021-44228) 탐지 실습용**입니다. @@ -7,8 +15,8 @@ SBOM 생성 도구와 취약점 분석 도구가 어떻게 Critical 취약점을 ## 의도적으로 포함된 취약점 -| CVE | 컴포넌트 | 버전 | CVSS | 심각도 | -|-----|---------|------|------|--------| +| CVE | 컴포넌트 | 버전 | CVSS | 심각도 | +| -------------- | ---------- | ------ | ---- | -------- | | CVE-2021-44228 | log4j-core | 2.14.1 | 10.0 | Critical | **Log4Shell 취약점이란?** @@ -18,9 +26,11 @@ Apache Log4j 2의 JNDI 조회 기능을 악용하여 원격 코드 실행(RCE) ## 예상 실습 결과 ### SBOM 생성 시 + - `log4j-core 2.14.1` 컴포넌트 탐지 ### 취약점 분석 시 + - **CVE-2021-44228 Critical 탐지** - 즉시 조치 권고 (2.15.0 이상으로 업그레이드) diff --git a/samples/nodejs-unlicensed/README.md b/samples/nodejs-unlicensed/README.md index f674b5d..52c4c7d 100644 --- a/samples/nodejs-unlicensed/README.md +++ b/samples/nodejs-unlicensed/README.md @@ -1,5 +1,13 @@ # nodejs-unlicensed — 라이선스 미명시 패키지 리스크 시연 +| 항목 | 내용 | +| --------- | ----------------------------------------------------------------- | +| 학습 목표 | 라이선스 미명시(UNLICENSED/NOASSERTION) 패키지의 법적 리스크 처리 | +| 예상 시간 | 약 25분 (npm install 포함) | +| 난이도 | 중급 | +| 선행 조건 | Docker Desktop 실행, Node.js·npm 설치(npm install 필요) | +| 관련 챕터 | 05 SBOM 생성·라이선스 분석, 03 정책(license-allowlist) | + ## 실습 목적 이 샘플은 **라이선스가 명시되지 않은 패키지를 포함**할 때의 @@ -7,11 +15,11 @@ ## 포함된 패키지 현황 -| 패키지 | 버전 | 라이선스 | 상태 | -|--------|------|---------|------| -| express | ^4.18.2 | MIT | 명확 — 상업적 사용 가능 | -| lodash | ^4.17.21 | MIT | 명확 — 상업적 사용 가능 | -| nightmare | ^3.0.2 | UNLICENSED | **위험 — 사용 권한 불명확** | +| 패키지 | 버전 | 라이선스 | 상태 | +| --------- | -------- | ---------- | --------------------------- | +| express | ^4.18.2 | MIT | 명확 — 상업적 사용 가능 | +| lodash | ^4.17.21 | MIT | 명확 — 상업적 사용 가능 | +| nightmare | ^3.0.2 | UNLICENSED | **위험 — 사용 권한 불명확** | > **참고:** 이 프로젝트(package.json) 자체에도 license 필드가 없습니다. > SBOM 생성 시 NOASSERTION으로 표시됩니다. @@ -19,10 +27,12 @@ ## 예상 실습 결과 ### SBOM 생성 시 + - `nightmare` 패키지의 라이선스 필드: `UNLICENSED` 또는 `NOASSERTION` - 프로젝트 자체 라이선스: `NOASSERTION` ### 라이선스 분석 시 + - **라이선스 확인 필요 항목 표시** - 상업적 사용 위험 표시 @@ -38,6 +48,7 @@ ## 실제 조치 방법 1. **패키지 저장소(GitHub)에서 라이선스 직접 확인** + ```bash # npm 패키지 라이선스 정보 확인 npm view nightmare license diff --git a/samples/python-mixed-license/README.md b/samples/python-mixed-license/README.md index df6d19f..22d454a 100644 --- a/samples/python-mixed-license/README.md +++ b/samples/python-mixed-license/README.md @@ -1,5 +1,13 @@ # python-mixed-license — GPL + Permissive 라이선스 혼재 시연 +| 항목 | 내용 | +| --------- | ------------------------------------------------------------------------ | +| 학습 목표 | GPL과 Permissive 라이선스가 혼재할 때의 Copyleft 리스크를 식별 | +| 예상 시간 | 약 20분 | +| 난이도 | 입문 | +| 선행 조건 | Docker Desktop 실행 (없으면 docs 05 챕터의 "Docker 없이 진행" 경로 사용) | +| 관련 챕터 | 05 SBOM 생성·라이선스 분석, 03 정책(license-allowlist) | + ## 실습 목적 이 샘플은 **GPL 라이선스와 Permissive 라이선스가 혼재**할 때 발생하는 @@ -7,19 +15,21 @@ ## 포함된 라이선스 현황 -| 패키지 | 버전 | 라이선스 | 배포 시 의무사항 | -|--------|------|---------|----------------| -| PyYAML | 6.0.1 | MIT | 저작권 고지 | -| requests | 2.31.0 | Apache-2.0 | 저작권 고지, NOTICE 파일 | -| celery | 5.3.4 | BSD | 저작권 고지 | -| mysql-connector-python | 8.1.0 | GPL-2.0 | **소스코드 공개 의무** | +| 패키지 | 버전 | 라이선스 | 배포 시 의무사항 | +| ---------------------- | ------ | ---------- | ------------------------ | +| PyYAML | 6.0.1 | MIT | 저작권 고지 | +| requests | 2.31.0 | Apache-2.0 | 저작권 고지, NOTICE 파일 | +| celery | 5.3.4 | BSD | 저작권 고지 | +| mysql-connector-python | 8.1.0 | GPL-2.0 | **소스코드 공개 의무** | ## 예상 실습 결과 ### SBOM 생성 시 + - `mysql-connector-python` GPL-2.0 컴포넌트 탐지 ### 라이선스 분석 시 + - **Copyleft 위험 항목 표시** (GPL-2.0) - 소스코드 공개 의무 검토 필요 표시 @@ -32,6 +42,7 @@ ## GPL 라이선스 리스크 상세 설명 GPL-2.0 의 "카피레프트(Copyleft)" 특성: + - GPL 라이선스 코드를 포함하여 배포 시, 전체 소프트웨어의 소스코드를 공개해야 할 수 있다 - 상업용 소프트웨어에 GPL 컴포넌트를 포함하는 것은 법적 검토 필수 - LGPL은 라이브러리 형태로 링크 시 소스공개 의무가 완화됨 @@ -40,10 +51,10 @@ GPL-2.0 의 "카피레프트(Copyleft)" 특성: GPL 컴포넌트를 동등한 기능의 Permissive 라이선스 패키지로 교체 검토: -| 현재 (GPL) | 대안 (Permissive) | 라이선스 | -|-----------|-----------------|---------| -| mysql-connector-python (GPL-2.0) | PyMySQL | MIT | -| mysql-connector-python (GPL-2.0) | aiomysql | MIT | +| 현재 (GPL) | 대안 (Permissive) | 라이선스 | +| -------------------------------- | ----------------- | -------- | +| mysql-connector-python (GPL-2.0) | PyMySQL | MIT | +| mysql-connector-python (GPL-2.0) | aiomysql | MIT | 또는 법무 검토 후 소스코드 공개 준비.