조직 구성: 오픈소스 담당자 지정과 역할 정의
1. 이 챕터에서 하는 일
이 챕터에서는 오픈소스 관리 담당자를 지정하고, 역할과 책임을 문서화합니다.
organization-designer agent를 실행하면 아래 3개의 산출물이 자동으로 생성됩니다.
output/organization/role-definition.md— 담당자별 역할 정의서output/organization/raci-matrix.md— 활동별 책임 매트릭스(RACI: 활동마다 누가 실행(R)·최종책임(A)·협의(C)·정보공유(I) 대상인지 표로 정리하는 방식)output/organization/appointment-template.md— 담당자 임명 템플릿
이 단계는 ISO/IEC 5230 G1.3 (3.1.2), G2.1 (3.2.2), G2.2 (3.2.1) 및 ISO/IEC 18974 동일 항목 요구사항을 충족합니다.
2. 왜 담당자 지정이 첫 번째인가
오픈소스 관리는 의사결정이 필요한 활동입니다. "이 라이브러리를 써도 되는가?", "이 취약점에 어떻게 대응할 것인가?" — 이런 질문에 누군가는 답해야 합니다. 책임 소재가 없으면 정책도, 프로세스도 실제로는 작동하지 않습니다.
표준이 담당자 지정을 첫 번째로 요구하는 이유도 여기에 있습니다. 조직이 없으면 이후의 모든 활동이 흐지부지됩니다.
실제 오픈소스 분쟁 사례에서 담당자 부재가 야기하는 결과는 구체적입니다.
- GPL 라이선스 위반 발생 시: 대응 주체가 없어 소송 리스크를 그대로 떠안게 됩니다. 누가 소스 코드를 공개할지, 누가 법무 대응을 할지 결정되지 않아 골든타임을 놓칩니다.
- CVE 취약점 발표 시: 자사 제품에 영향을 받는 컴포넌트를 파악하지 못해 대응이 수 주씩 늦어집니다. SBOM이 없고 담당자도 없으면 뒤늦게 이슈를 인지하게 됩니다.
- 납품처 SBOM 요구 시: 계약서에 SBOM 제출 조항이 들어오는 경우가 늘고 있습니다. 담당자와 프로세스가 없으면 제출 자체가 불가능해 계약 차질이 생깁니다.
3. 표준이 요구하는 역할
ISO/IEC 5230과 ISO/IEC 18974는 공통적으로 다음 두 가지를 요구합니다.
- 담당자 지정 (G1.3 / 3.1.2): 오픈소스 프로그램 관리를 책임지는 사람 또는 그룹이 명확히 지정되어야 합니다.
- 외부 문의 수신 채널 (G2.2 / 3.2.1): 라이선스 의무 이행 요청 및 취약점 신고를 받을 수 있는 공식 채널이 있어야 합니다.
두 표준을 모두 충족하기 위해 공통적으로 OSPM(오픈소스 프로그램 관리자), 법무 담당, 보안 담당, 개발 대표 역할이 필요합니다.
각 역할의 상세 책임과 필요 역량 정의는 KWG 오픈소스 가이드 — 조직를 참조하세요. 이 챕터의 구조와 요구사항 설명은 해당 KWG 가이드(CC BY 4.0)를 기반으로 재구성했습니다.
외부 문의 수신 채널 (G2.2 요구사항)
라이선스 의무 이행 요청 및 취약점 신고를 받는 공식 이메일 또는 채널을 반드시 지정해야 합니다. 이것은 표준의 명시적 요구사항이며, 담당자를 지정하는 것만큼 중요합니다.
예시:
opensource@company.com— 라이선스 관련 외부 문의security@company.com— 취약점 신고 수신
두 채널을 통합하여 단일 주소로 운영하는 것도 소규모 조직에서는 현실적인 방법입니다.
기여 및 프로젝트 공개 담당자 (G3L.6 / §3.5.1)
외부 오픈소스 프로젝트에 기여하거나 사내 프로젝트를 오픈소스로 공개할 계획이 있는 경우, RACI 매트릭스에 아래 역할을 추가해야 합니다.
| 활동 | 주 담당자 | 승인자 |
|---|---|---|
| 오픈소스 기여 활동 실행 | 개발 대표 (R) | OSPM (A) |
| 사내 프로젝트 공개 검토 | 개발 대표 (R) | OSPM·법무 (A) |
| 외부 라이선스·보안 문의 종합 대응 | OSPM (R) | — |
AI 코딩 도구 사용 정책 담당
ISO/IEC 5230과 18974가 명시적으로 요구하는 역할은 아니지만, 개발팀이 AI 코딩 도구를 쓰고 있다면 정책을 관리할 사람을 지금 정해 두는 편이 좋습니다. 어떤 도구를 허용할지, 생성된 코드의 라이선스와 출처를 어떻게 확인할지, 외부 프로젝트에 기여할 때 상류 정책을 누가 확인할지가 모두 오픈소스 관리와 겹치기 때문입니다.
| 활동 | 주 담당자 | 승인자 |
|---|---|---|
| AI 코딩 도구 허용 목록 관리 | AI 도구 정책 담당 (R) | OSPM (A) |
| AI 생성 코드 검토 기준 수립 | AI 도구 정책 담당 (R) | OSPM (A) |
| 상류 프로젝트 AI 기여 정책 확인 | 개발 대표 (R) | OSPM (A) |
담당자를 새로 뽑을 필요는 없습니다. 소규모 조직에서는 OSPM이 겸직하면 됩니다. 중요한 것은 AI 도구 도입 결정이 오픈소스 관리 체계 밖에서 따로 이루어지지 않게 하는 것입니다.
AI 경영시스템 인증(ISO/IEC 42001)까지 염두에 두고 있다면 이 역할이 두 체계의 연결점이 됩니다. 자세한 내용은 AI 시스템 컴플라이언스와 오픈소스 관리를 참조하세요.
주기적 검토 증거 수집 (ISO/IEC 18974 §4.1.2.5·§4.1.2.6)
ISO/IEC 18974는 오픈소스 프로그램의 주기적 검토 및 내부 모범 사례 일치 검증 증거를 요구합니다. 초기 인증 시에는 검토 계획 수립으로 부분 충족이 허용되며, 갱신 인증(18개월 후) 시 실제 검토 이력으로 완전 충족됩니다.
role-definition.md 에는 다음 내용을 포함해야 합니다.
- 검토 담당자 지정
- 검토 주기 (연 1회 권장)
- 검토 이력 테이블 (초기에는 빈 행으로 작성, 갱신 시 채움)
4. 회사 규모별 현실적인 구성 방안
| 규모 | 구성 방안 | 최소 인원 | 권장 |
|---|---|---|---|
| 스타트업/소규모 (개발자 10명 이하) | 1인이 OSPM + 법무 + 보안 겸직 가능 | 1명 | CTO 또는 시니어 개발자가 담당 |
| 중소기업 (10~100명) | OSPM 전담 1명, 법무·보안 겸직 | 2~3명 | 법무는 외부 자문 활용 |
| 중견/대기업 (100명 이상) | 전담팀 구성 권장, 역할별 분리 | 4명 이상 | OSPO 공식 설립 |
중요: 소규모 조직에서 역할이 겹쳐도 괜찮습니다. 중요한 것은 누가 책임지는지가 명확한 것입니다.
담당자는 이름으로 지정합니다 — 팀별 챔피언 모델
표준의 입증자료는 담당 "이름"을 요구하므로, 역할 표에 부서명이나 "전원" 같은 표기는 요건을 충족하지 못합니다. 사업 부서 전체가 관여하는 역할은 팀별 1인 챔피언(각 개발팀에서 오픈소스 창구 역할을 맡는 한 사람)을 지정해 이름을 기재하는 방식을 권장합니다.
또한 역할 목록과 프로세스가 실제 모범 사례와 일치하는지 주기적으로 확인하는 내부 모범 사례 검증 담당을 지정해 두면 갱신 인증 시 요구되는 검토 증거를 자연스럽게 쌓을 수 있습니다. 소규모 조직은 오픈소스 담당자가 겸직해도 됩니다.
5. 셀프 스터디
agent와 대화하며 조직 산출물을 생성합니다.
-
이 문서 읽기 — 역할 개념 이해
-
자사 규모와 상황에 맞는 구성 방안 결정 (섹션 4 참고)
-
agent 실행:
실행 전 확인현재 Claude 세션을 먼저 종료(
/exit또는Ctrl+C)한 뒤, 새 터미널에서 아래 명령을 실행하세요.Bashcd agents/02-organization-designer
claude -
Claude 프롬프트가 열리면
시작을 입력하세요. agent가 7개 질문을 순서대로 진행합니다.Agent 대화 예시 (클릭해서 펼치기)
아래는 실제 agent와의 대화 흐름 예시입니다. 사용자가
시작입력 시 이런 형태로 진행됩니다.Agent 안내 메시지:
Text안녕하세요! 조직/담당자 산출물을 생성하는 agent입니다.
7개 질문에 답변하시면 3개의 산출물 파일이 자동으로 생성됩니다.질문 1/7 — 회사명과 담당 부서명을 알려주세요.
예시 답변: (주)테크스타트, 개발팀질문 2/7 — 전체 개발자 수는 몇 명인가요?
예시 답변: 50명질문 3/7 — 오픈소스 업무를 전담할 수 있는 인원이 있나요? (겸무 / 1인 전담 / 2인~5인 / 5인 이상) ("겸무"는 전담자가 없고 필요할 때마다 팀원이 임시로 처리하는 경우를 포함합니다. 지금 아무도 맡고 있지 않다면 이 선택지를 고르세요.)
예시 답변: 겸무질문 4/7 — 법무 자문이 있나요? (없음 / 자체 법무팀 / 외부 법무 법인 활용 중 / 외부 법무 법인 활용 예정)
예시 답변: 외부 법무 법인 활용 중질문 5/7 — 보안팀 자문이 있나요? (없음 / 자체 보안팀 / 외부 보안 컨설팅 활용)
예시 답변: 없음질문 6/7 — 외부 오픈소스 프로젝트에 기여하거나 사내 프로젝트를 오픈소스로 공개할 계획이 있나요? (기여만 / 공개만 / 둘 다 / 없음)
예시 답변: 없음질문 7/7 — 오픈소스 프로그램을 책임질 담당자의 실명을 알려주세요. (미정이면 "미정"이라고 답변)
예시 답변: 김민준 (개발팀장)생성 완료 시 출력 예시:
파일 내용 output/organization/role-definition.md역할과 책임 정의, 외부 문의 채널 output/organization/raci-matrix.mdRACI 매트릭스, 역할별 담당자 output/organization/appointment-template.md담당자 임명장 템플릿 직접 기입이 필요한 항목 (아래는 7개 질문에서 묻지 않으므로, 산출물이 다 만들어진 뒤 파일을 열어서 사용자가 직접 채워 넣어야 합니다):
- 담당자 실명을 질문 7에서 "미정"으로 답한 경우, 확정 후 세 파일의
{담당자 이름} opensource@{회사도메인}형태로 자동 생성된 이메일의{회사도메인}부분을 실제 회사 도메인으로 교체- 오픈소스 도구·교육 예산 현황 (회사마다 달라 agent가 임의로 채우지 않습니다)
- 담당자 실명을 질문 7에서 "미정"으로 답한 경우, 확정 후 세 파일의
-
위 대화 예시의 7개 질문에 자사 상황에 맞게 답변
-
output/organization/생성 확인
처음부터 다시 만들고 싶으면 같은 폴더(agents/02-organization-designer)에서 claude를
다시 실행하고 질문에 새로 답변하세요. 기존 파일은 새 내용으로 덮어써집니다. 파일을 직접
지울 필요는 없습니다.
실습을 완료하면 아래 3개 파일이 생성됩니다.
생성 파일:
output/organization/role-definition.mdoutput/organization/raci-matrix.mdoutput/organization/appointment-template.md
파일 내 반드시 포함되어야 할 항목:
- 오픈소스 담당자 이름과 연락처
- 역할별 책임(R/A/C/I) 정의
- 외부 라이선스 문의 및 취약점 신고 채널(이메일)
생성된 파일에서 {담당자 이름}, {이메일 주소} 등 플레이스홀더가 실제 값으로 채워졌는지 확인하세요.
이 실습을 완료하면 아래 요구사항이 충족됩니다.
5230 §3.1.2, §3.2.1, §3.2.2 · 18974 §4.1.2, §4.2.1, §4.2.2
각 항목의 자체 인증 체크리스트 문항 원문과 입증자료는 요구사항 상세 대조표에 있습니다.
6. 생성되는 산출물 예시
role-definition.md 샘플
## 오픈소스 프로그램 관리자 (OSPM)
**담당자**: 홍길동 (개발팀 시니어 엔지니어)
**연락처**: opensource@example.com
### 주요 책임
- 오픈소스 사용 승인 및 검토
- 정책 문서 유지 관리
- 외부 문의 수신 및 대응
raci-matrix.md 샘플
| 활동 | OSPM | 법무 | 보안 | 개발 |
|---|---|---|---|---|
| 오픈소스 사용 승인 | R, A | C | C | I |
| 라이선스 검토 | A | R | I | C |
| CVE 취약점 대응 | A | I | R | C |
| SBOM 생성 | A | I | C | R |
| AI 코딩 도구 정책 | R, A | C | C | I |
(R=실행, A=최종책임, C=협의, I=정보공유)
7. 완료 확인 체크리스트
-
output/organization/role-definition.md생성됨 -
output/organization/raci-matrix.md생성됨 -
output/organization/appointment-template.md생성됨 - 오픈소스 담당자 이름과 연락처가 정의됨
- 외부 문의 이메일/채널이 지정됨
조직 산출물 Best Practice에서 생성된 파일의 실제 형식을 확인할 수 있습니다.
8. 다음 단계
조직 구성이 완료되면 오픈소스 정책 수립으로 이동합니다.
현재 Claude 세션을 먼저 종료(/exit 또는 Ctrl+C)한 뒤, 새 터미널에서 아래 명령을 실행하세요.
cd agents/03-policy-generator
claude
또는 오픈소스 정책 수립: 법적 보호의 첫걸음으로 이동하여 정책 챕터를 먼저 읽은 뒤 진행할 수 있습니다.