본문으로 건너뛰기

정책 산출물 Best Practice

policy-generator agent가 생성하는 2개 산출물의 완성 예시입니다. 자신의 output/policy/ 파일과 비교하여 빠진 항목을 확인하는 용도로 활용하세요.

레퍼런스 바로가기: 오픈소스 정책 수립 챕터 가이드


오픈소스 정책

문서: oss-policy.md

  • 회사명: 테크유니콘
  • 버전: 1.0
  • 작성일: 2026-03-23
  • 작성자: DevOps팀 오픈소스 담당자
  • 승인자: DevOps팀장
  • 다음 검토 예정일: 2027-03-23
관련 표준
- 5230 §3.1.1.1·§3.1.4.1·§3.1.5.1·§3.5.1.1·§3.5.1.2
- 18974 §4.1.1.1·§4.1.4.1·§4.1.4.2

1. 목적 및 적용 범위

관련 표준
- 5230 §3.1.1.1
- 18974 §4.1.1.1

이 정책은 테크유니콘(이하 "회사")이 소프트웨어 개발 및 배포 과정에서 오픈소스 소프트웨어를 올바르게 사용하고, 라이선스 의무사항을 이행하며, 보안 취약점을 관리하기 위한 기준을 정한다.

적용 범위

관련 표준
- 5230 §3.1.4.1
- 18974 §4.1.4.1

이 정책은 아래 범위에 적용된다:

  • 대상 소프트웨어: 테크유니콘이 개발·배포·운영하는 전체 소프트웨어
  • 배포 방식: SaaS, 앱스토어(iOS/Android), 임베디드(기기 탑재), 내부용 시스템
  • 적용 대상 인원: 개발자, 관리자, 구매/조달 담당자 등 오픈소스 사용에 관여하는 모든 구성원
  • 적용 제외: 없음

배포 채널별 적용 기준

관련 표준
- 18974 §4.1.4.2
배포 채널주요 위험핵심 기준
SaaSAGPL 네트워크 의무AGPL 도입 시 오픈소스 담당자 사전 검토 필수
앱스토어App Store 정책과 GPL 충돌GPL 계열 원칙적 배제, 담당자 검토 후 예외 허용
임베디드배포 시 소스코드 공개 의무Copyleft 계열 엄격히 제한, Permissive 우선 사용
내부용재배포 의무 없음표준 검토 절차 적용 (완화된 Copyleft 허용)

2. 오픈소스 사용 원칙

관련 표준
- 5230 §3.1.5.1
- 18974 §4.1.1.1

사용 전 검토 의무

오픈소스를 신규 도입하거나 기존 버전을 변경할 때 반드시 아래를 검토한다:

  1. 라이선스 확인: output/policy/license-allowlist.md의 허용 라이선스 목록과 대조
  2. 라이선스 의무 이행 계획: Copyleft 라이선스의 경우 소스코드 공개 의무 등 이행 방법 확정
  3. 알려진 취약점 확인: SBOM 생성 후 CVE 스캔으로 Critical/High 취약점 없음 확인
  4. 담당자 승인: output/process/usage-approval.md 절차에 따라 승인

라이선스 분류 기준

분류예시배포 시 의무사항
Permissive (허용)MIT, Apache-2.0, BSD저작권 표시, 라이선스 고지
Weak CopyleftLGPL, MPL수정 파일 소스코드 공개
Strong CopyleftGPL-2.0, GPL-3.0전체 소스코드 공개 (배포 시)
Network CopyleftAGPL-3.0네트워크 사용 포함 소스코드 공개

개발 언어별 패키지 관리 원칙

회사는 Java(Maven/Gradle), Python(pip), JavaScript(npm/yarn), Go(mod) 등 다양한 패키지 매니저를 사용하며, 모든 패키지 매니저에서 의존성 라이선스가 자동 스캔되어야 한다.


3. 프로그램 적용 범위 및 성과 메트릭

관련 표준
- 18974 §4.1.4.1·§4.1.4.2

성과 메트릭 (KPI)

지표목표
SBOM 최신성모든 릴리즈에 최신 SBOM 첨부
라이선스 준수율신규 도입 컴포넌트 100% 사전 검토
취약점 대응 시간Critical: 24시간, High: 1주일 이내
교육 이수율오픈소스 관련 직군 연 1회 이상 이수
갱신 주기자체 인증 18개월마다 재확인

4. 보안 보증 정책

관련 표준
- 18974 §4.1.1.1

회사는 배포 소프트웨어의 알려진 취약점(CVE)을 체계적으로 식별·추적·대응한다:

  • 모든 릴리즈 전 SBOM 기반 취약점 스캔 수행
  • Critical/High 취약점은 배포 전 반드시 해소 또는 완화 계획 수립
  • 배포 후 신규 취약점 발견 시 output/process/vulnerability-response.md 절차에 따라 대응
  • 외부 취약점 신고 채널 운영: security@sktelecom.com

5. 오픈소스 기여 정책

관련 표준
- 5230 §3.5.1.1·§3.5.1.2

기여 허용 여부

  • 사전 승인 후 허용 — 오픈소스 담당자 및 법무팀 검토·승인 후 기여 가능

기여 시 준수사항

  1. 사전 승인: DevOps팀 오픈소스 담당자 및 법무팀 검토 후 승인
  2. IP 확인: 기여 내용에 회사 기밀 정보 또는 제3자 IP 포함 여부 확인
  3. 라이선스 동의: CLA(Contributor License Agreement) 서명 필요 여부 확인
  4. 기록 유지: 기여 내역을 output/organization/role-definition.md에 기록

기여 금지 사항

  • 회사 내부 알고리즘, 영업비밀, 고객 데이터를 포함한 기여
  • 법무팀 검토 없이 특허 관련 코드 기여
  • 개인 계정을 통한 회사 업무 관련 기여

6. 외부 납품 소프트웨어 관리

회사는 외부 고객 및 납품처에 소프트웨어를 제공하는 경우 아래를 준수한다:

  • SBOM을 납품물과 함께 제공 (또는 요청 시 즉시 제공 가능하도록 보관)
  • Copyleft 라이선스 의무사항 사전 이행 확인 후 납품
  • 납품 계약서에 오픈소스 관련 고지문 포함
  • 납품 후 신규 취약점 발견 시 고객사에 통보 절차 운영

7. 정책 전파 및 교육

관련 표준
- 5230 §3.1.1.2
- 18974 §4.1.1.2

이 정책은 아래 방법으로 모든 프로그램 참여자에게 전파된다:

  • 신규 입사자 온보딩 교육 포함
  • 연 1회 전체 구성원 대상 교육 (또는 공지)
  • 사내 위키/공유 드라이브에 게시 및 링크 공유
  • 교육 이수 기록: output/training/completion-tracker.md

8. 미준수 처리

관련 표준
- 5230 §3.2.2.5

이 정책을 위반하는 경우:

  1. 오픈소스 담당자에게 즉시 보고
  2. 위반 내용 및 영향 범위 파악
  3. 시정 조치 계획 수립 및 이행
  4. 재발 방지를 위한 정책/프로세스 보완

9. 정책 검토 및 갱신

관련 표준
- 18974 §4.1.1.1

이 정책은 아래 주기 또는 사유 발생 시 검토·갱신한다:

  • 정기 검토: 연 1회 (다음 검토 예정일: 2027-03-23)
  • 수시 검토 사유: 표준 개정, 규제 변경, 주요 사고 발생, 담당자 변경
  • 검토 담당자: DevOps팀 오픈소스 담당자, 법무팀 확인

검토 이력

버전검토일주요 변경 내용승인자
1.02026-03-23최초 작성DevOps팀장

허용 라이선스 목록

문서: license-allowlist.md

  • 회사명: 테크유니콘
  • 버전: 1.0
  • 작성일: 2026-03-23
  • 작성자: DevOps팀 오픈소스 담당자
  • 다음 검토 예정일: 2027-03-23
관련 표준
- 5230 §3.1.5.1·§3.3.1.1·§3.3.1.2

배포 방식 요약: SaaS + 앱스토어(iOS/Android) + 임베디드 + 내부용 임베디드 및 앱스토어 배포가 포함되므로 Copyleft 라이선스는 엄격히 제한한다.


1. 채널별 허용 원칙 요약

배포 채널PermissiveWeak CopyleftStrong Copyleft (GPL)Network Copyleft (AGPL)
SaaS✅ 허용✅ 허용⚠️ 조건부❌ 금지
앱스토어✅ 허용⚠️ 조건부❌ 금지❌ 금지
임베디드✅ 허용⚠️ 조건부❌ 금지❌ 금지
내부용✅ 허용✅ 허용✅ 허용⚠️ 조건부

⚠️ 조건부: 오픈소스 담당자 사전 검토 및 승인 필요 ❌ 금지: 담당자 승인 없이 사용 불가 (예외 허용 시 법무팀 추가 검토 필수)


2. Permissive 라이선스 — 전 채널 허용

의무사항: 저작권 고지 및 라이선스 텍스트 포함

라이선스SPDX ID주의사항
MITMIT없음
Apache License 2.0Apache-2.0특허 종료 조항 있음 (일반적 사용 무관)
BSD 2-ClauseBSD-2-Clause없음
BSD 3-ClauseBSD-3-Clause홍보/광고 사용 제한
ISCISC없음
UnlicenseUnlicense퍼블릭 도메인 유사
CC0 1.0CC0-1.0소프트웨어 코드 외 문서·데이터에 주로 사용
Boost Software License 1.0BSL-1.0없음
zlibZlib수정 시 원본과 구별 명시 필요

3. Weak Copyleft 라이선스 — 채널별 조건부 허용

수정한 파일의 소스코드 공개 의무 발생 가능. 담당자 검토 필요.

라이선스SPDX IDSaaS앱스토어임베디드내부용주의사항
LGPL-2.1LGPL-2.1-only⚠️⚠️동적 링크 시 의무 완화. 정적 링크 시 담당자 검토 필수
LGPL-3.0LGPL-3.0-only⚠️⚠️LGPL-2.1과 동일. 임베디드는 설치 정보 제공 의무 추가
MPL-2.0MPL-2.0⚠️⚠️수정한 파일만 공개. 파일 단위 Copyleft
CDDL-1.0CDDL-1.0⚠️⚠️GPL과 비호환. 혼용 주의
EPL-2.0EPL-2.0⚠️⚠️특허 종료 조항, 수정 소스 공개 의무

4. Strong Copyleft 라이선스 — 임베디드·앱스토어 금지

전체 소스코드 공개 의무 발생. 임베디드 및 앱스토어 배포에서는 원칙적으로 금지.

라이선스SPDX IDSaaS앱스토어임베디드내부용비고
GPL-2.0GPL-2.0-only⚠️배포 시 전체 소스 공개. SaaS는 배포 미해당으로 조건부 허용
GPL-3.0GPL-3.0-only⚠️GPL-2.0 + 특허·티보이제이션 조항 추가

SaaS에서 GPL 조건부 허용 근거: SaaS는 소프트웨어를 고객에게 "배포"하지 않으므로 GPL 소스 공개 의무가 직접 발생하지 않음. 단, 서비스에 사용된 GPL 코드를 수정하는 경우 내부적으로도 GPL 조건을 준수해야 함.


5. Network Copyleft 라이선스 — SaaS 금지

네트워크를 통한 서비스 제공만으로 소스코드 공개 의무 발생.

라이선스SPDX IDSaaS앱스토어임베디드내부용비고
AGPL-3.0AGPL-3.0-only⚠️SaaS 제공 시 소스 공개 의무 발생. 내부용도 외부 노출 가능성 있으면 담당자 검토
EUPL-1.2EUPL-1.2⚠️네트워크 사용 조항 포함. SaaS 사용 시 담당자 검토 필수

6. 사용 금지 라이선스

아래 라이선스는 법적 불명확성 또는 비호환성으로 인해 모든 채널에서 사용 금지한다.

라이선스금지 이유
SSPL-1.0 (Server Side Public License)MongoDB가 만든 라이선스, OSI 미인증, 서비스 전체 공개 의무
BUSL (Business Source License)일정 기간 후 오픈소스 전환이나 상업적 사용 제한 존재
Commons Clause 추가 라이선스오픈소스 정의 위반, 상업적 판매 금지 조항
Proprietary / Unknown라이선스 미식별 컴포넌트는 사용 전 반드시 담당자 확인

7. 라이선스 호환성 주의사항

패키지 매니저별 라이선스 스캔 도구

패키지 매니저스캔 도구비고
Maven (Java)License Maven Plugin, FOSSApom.xml 의존성 분석
Gradle (Java)License Gradle Pluginbuild.gradle 의존성 분석
pip (Python)pip-licenses, FOSSArequirements.txt 분석
npm/yarn (JS)license-checker, FOSSApackage.json 의존성 분석
Go modgo-licensesgo.mod 의존성 분석

혼용 금지 조합

조합이유
GPL-2.0 + Apache-2.0GPL-2.0과 Apache-2.0 특허 조항 비호환
GPL-2.0 + GPL-3.0버전 비호환 (GPL-3.0 only 라이선스와 혼용 불가)
CDDL + GPL라이선스 비호환 (Mozilla 공식 확인)

8. 예외 처리 절차

허용 목록에 없는 라이선스 또는 금지 라이선스를 사용해야 하는 경우:

  1. 오픈소스 담당자에게 사용 사유 및 범위 서면 제출
  2. 법무팀 법률 검토
  3. 담당자 및 법무팀 공동 승인
  4. 승인 내역 기록 및 차기 정책 검토 시 목록 반영 여부 결정

9. 검토 이력

버전검토일주요 변경 내용검토자
1.02026-03-23최초 작성DevOps팀 오픈소스 담당자