[공개SW 거버넌스 구축 사례/SK텔레콤] OSPO, 그리고 국제 표준에 기반한 오픈소스 거버넌스 구축 사례 (SK텔레콤)
OSPO, 그리고 국제 표준에 기반한 오픈소스 거버넌스 구축 사례 (SK텔레콤)
- SK텔레콤 장학성 매니저 -
현대의 소프트웨어 개발은 오픈소스를 사용하지 않고서는 불가능하다고 해도 과언이 아니다. 오픈소스를 얼마나 잘 사용하느냐에 따라 소프트웨어의 기능과 품질이 달라진다. 올바른 오픈소스 사용을 위해서는 오픈소스 저작권자가 요구하는 여러 오픈소스 라이선스 의무를 충족하는 것도 필수적이다. 따라서 많은 오픈소스를 사용하는 기업은 오픈소스를 관리하기 위한 조직 구성이 필요하다.
이 글의 전반부에서는 OSPO(Open Source Program Office)를 구축하고자 하는 기업이 참고할 수 있는 주요 내용과 세부 내용을 참고할 수 있는 자료를 제공하고, 후반부에서는 국제 표준 ISO/IEC 5230에 기반한 오픈소스 거버넌스 구축 방안과 기업 사례에 대해 설명한다.
오픈소스를 올바르게 활용하고자하는 한국 기업에게 도움이 되길 바란다.
1. OSPO란?
오픈소스를 적극적으로 활용하는 글로벌 ICT 기업은 OSPO를 설립하여 오픈소스로부터 최대의 가치를 창출하고 동시에 법적인 리스크를 완화하는 활동을 수행한다. OSPO는 기업의 오픈소스 거버넌스 체계를 구축할 뿐만 아니라 기업의 비즈니스 성공을 위한 오픈소스 전략을 수립하고 실행하는데 필요한 정책, 프로세스 및 도구를 제공한다.
자세한 OSPO의 역할과 가이드, 기업 사례는 다음의 SK텔레콤 오픈소스 블로그를 참고할 수 있다.
https://sktelecom.github.io/blog/2021/20210418-ospo-definition/
또한 TODO Group에서 제공하는 OSPO 관리에 대한 모든 것을 포함하는 교육 과정을 참고할 수 있다.
https://github.com/todogroup/ospo101
최근 2021년 9월에는 Linux Foundation과 TODO Group의 주관으로 OSPO에 대한 콘퍼런스도 개최된 바 있다. 이처럼 OSPO는 오픈소스를 적극 활용하는 글로벌 ICT 기업의 필수 조직으로 인식되는 추세이다
https://events.linuxfoundation.org/ospocon/
Microsoft, Google, Twitter, Netflix와 같은 소프트웨어 분야 리더 기업뿐만 아니라 인텔, Comcast와 같은 전통 IT 기업도 OSPO를 운영하고 있다. 2021년 조사 결과에 따르면 통신, Software, IT 분야의 기업의 절반 이상이 OSPO를 운영하거나 설립 예정이라고 한다.
https://github.com/todogroup/osposurvey/tree/master/2021
이와 같이 오픈소스의 활용이 확산되면서 이렇게 OSPO의 역할과 필요성 또한 증가하고 있으며, 국내도 OSPO를 설립하여 점차 증가하고 있다.
SK텔레콤의 OSPO는 오픈소스 전략을 수립하고 올바른 오픈소스의 사용과 오픈소스 프로젝트로의 기여 방법, 오픈소스 공개 방법을 가이드 및 세부 실행 계획을 도출한다.
https://sktelecom.github.io/about/
정보통신산업진흥원(NIPA)에서는 기업의 오픈소스 관리와 OSPO의 중요성을 인지하고, OSPO의 구성 절차와 세부 방법에 대한 내용을 포함하는 '기업 공개 소프트웨어 거버넌스 가이드'를 제작하여 올해 중에 배포할 예정이다. 또한, 국내 기업 대상 공개소프트웨어 매니지먼트 아카데미를 통해 국내 기업이 올바르게 오픈소스를 사용하고 관리하는데 도움이 되는 교육과 자료를 제공하고 있다.
2. 국제표준에 기반한 오픈소스 거버넌스 체계
기업이 OSPO를 구성하는 등 오픈소스 거버넌스 활동을 본격적으로 수행하려고 한다면 오픈소스 컴플라이언스 분야의 유일한 국제표준인 ISO/IEC 5230을 살펴보도록 하자. ISO/IEC 5230은 Software Supply Chain 내 Supplier와 Buyer 간 신뢰할 수 있고 투명한 오픈소스의 사용을 보장하기 위해 Linux Foundation의 OpenChain Project에서 만든 국제 표준이다.
Linux Foundation OpenChain Project: https://www.openchainproject.org/
ISO/IEC 5230은 2020년 12월에 ISO에 공식 등록되었으며, 기업이 오픈소스 컴플라이언스를 위하여 갖춰야 할 가장 핵심 요구사항을 정의하였다.
https://www.iso.org/standard/81039.html
오픈소스 관리 수준을 향상시키고자 하는 기업이라면 이 표준에서 요구하는 바를 하나씩 준수해가며 미흡한 부분을 보완하는게 좋은 방법이다.
ISO/IEC 5230의 요구사항을 모두 준수하는 기업은 이를 공식 선언할 수 있고, 이들은 Software Supply Chain 내에 우수한 오픈소스 프로그램을 구축하였음을 인정받게 된다.
https://www.openchainproject.org
우리나라에서는 2019년 LG전자에 이어 NCSOFT, 삼성전자, 그리고 최근에 SK텔레콤 등이 ISO/IEC 5230 준수를 선언하였다.
2020년 12월, ISO/IEC 5230이 등록된 후 유럽 자동차 제조사가 Supplier에게 ISO/IEC 5230 준수를 요구할 수 있다는 소식이 들려왔으며, 이런 움직임은 자동차 업계를 시작으로 다른 분야의 Software Supply Chain에도 확대될 수 있다는 전망이 나왔다. 실제, 지난 5월 유럽의 한 자동차 제조사는 Supplier는 ISO/IEC 5230 준수해야 함을 회사의 표준에 명시하였다.
Linkedin 캡처
이와 같은 상황에서 국내 기업은 어떻게 ISO/IEC 5230에 기반한 오픈소스 거버넌스 체계 구축을 준비해야 할까? ISO/IEC 5230은 다음과 같은 항목의 준수를 요구한다.
이들 각 항목을 오픈소스 거버넌스 체계의 필수 구성 요소별로 구분하여 살펴보자.
2-1. 조직 (담당자)
기업이 오픈소스 거버넌스 체계 구축을 위해 가장 먼저 필요한 건 오픈소스 프로그램 수행을 위한 역할과 책임을 정의하고 담당자를 지정하는 것이다.
3.1.2.1. 프로그램의 여러 참여자에 대한 역할과 각 역할의 책임을 나열한 문서
3.2.2.1. 프로그램 내 각 역할을 담당하는 인원, 그룹 또는 직무의 이름을 기재한 문서
3.1.2.2. 각 역할을 위해 필요한 역량을 기술한 문서
즉, 기업은 다음과 같은 형태의 역할, 필요 역량을 정의하고, 담당 조직을 지정해야 한다.
https://haksungjang.github.io/docs/openchain/#appendix-1-담당자-현황
SK텔레콤은 법무/IPR, Tech, Infra, HR 부문의 담당자로 구성된 OSRB(Open Source Review Board)를 설립하였다. SK텔레콤 OSRB는 오픈소스 거버넌스 정책을 수립하고 프로세스를 구축하는 역할을 수행하며, 이를 자동화하기 위한 도구를 제공한다.
https://sktelecom.github.io/about/osrb/
이렇게 조직을 구성하고 역할, 필요 역량을 정의까지 하면 아래와 같이 ISO/IEC 5230의 세 가지 항목을 충족할 수 있다(녹색 표시).
2-2. 정책
다음으로 기업은 아래의 내용을 다루는 오픈소스 정책을 만들고 이를 문서화 해야 한다.
- 사용/기여/공개 원칙
- 적용 범위 지정
- 외부 문의 대응 담당자 / 연락처 공개 방법
- 인원, 예산 지원 방법
- 법률 자문 제공 방법
- 내부 책임 할당 절차
- 미준수 사례 대응 절차
3.1.1.1. 문서화된 오픈소스 정책
3.5.1.1. 문서화된 오픈소스 기여 정책
3.1.4.1. 프로그램의 적용 범위와 한계를 명확하게 정의한 문서화된 진술
3.2.1.1. 제 3자가 오픈소스 라이선스 컴플라이언스에 대해 문의 할 수 있는 공개된 방법 (담당자 이메일 주소, 또는 Linux Foundation의 Open Compliance Directory 활용 등)
3.2.2.2. 프로그램 내 각 역할을 담당하는 인원이 적합하게 배치되고, 예산이 적절하게 지원되어야 한다
3.2.2.3. 오픈소스 라이선스 컴플라이언스 문제 해결을 위해 내부 또는 외부의 전문 법률 자문을 이용하는 방법
3.2.2.4. 오픈소스 컴플라이언스에 대한 내부 책임을 할당하는 문서화된 절차
3.2.2.5. 미준수 사례를 검토하고 이를 수정하기 위한 문서화된 절차
오픈소스 정책을 수립하고자 하는 국내 기업은 위의 내용을 모두 반영한 샘플 오픈소스 정책(국문)을 다음 사이트에서 확인할 수 있다.
이를 참고하여 기업의 사업 영역과 비즈니스 상황에 맞게 자신의 정책을 만들 수 있다.
https://haksungjang.github.io/docs/openchain/#부록-1-샘플-오픈소스-정책
SK텔레콤도 이에 기반하여 ISO/IEC 5230이 요구하는 바를 충족할 수 있도록 2021년 오픈소스 정책을 개정하였다.
이렇게 정책까지 수립하고 나면 ISO/IEC 5230 요구사항 중 아래의 녹색으로 표시한 항목을 충족하게 된다.
2-3. 프로세스
오픈소스 정책을 수립하였으면 소프트웨어를 개발 / 배포 과정에서 정책 사항을 준수하기 위한 실행 가능한 절차가 필요하다. 이를 오픈소스 컴플라이언스 프로세스라고 한다. 일반적인 오픈소스 컴플라이언스 프로세스는 다음과 같이 도식화 할 수 있다.
https://www.linuxfoundation.org/wp-content/uploads/OpenSourceComplianceHandbook_2018_2ndEdition_DigitalEdition.pdf
기업은 다음 사항을 포함하는 프로세스를 구축해야 한다.
- 오픈소스 식별 및 검사 절차
- 오픈소스 BOM 식별, 검토, 보관 방법
- 오픈소스 컴플라이언스 산출물 생성 절차
- 외부 문의 대응 방법
- 오픈소스 기여 프로세스
3.1.5.1. 각 식별된 라이선스에 의해 부여된 의무, 제한 및 권리를 검토하고 기록하기 위한 문서화된 절차
3.3.1.1. 배포용 소프트웨어를 구성하는 오픈소스 컴포넌트에 대한 정보를 식별, 추적, 검토, 승인 및 보관하는 문서화된 절차
3.4.1.1. 식별된 라이선스가 요구하는 컴플라이언스 산출물을 준비하고, 이를 배포용 소프트웨어와 함께 제공하기 위한 프로세스를 설명하는 문서화된 절차
3.2.1.2. 제 3자의 오픈소스 라이선스 컴플라이언스 문의에 대응하기 위한 내부의 문서화된 절차
3.5.1.2. 오픈소스 기여를 관리하는 문서화된 절차
다음 사이트에서는 ISO/IEC 5230이 요구하는 바를 반영한 샘플 오픈소스 컴플라이언스 프로세스를 확인할 수 있다.
기업은 이를 참고하여 소프트웨어 개발 절차에 맞게 프로세스를 자신의 프로세스를 구축하면 된다.
https://haksungjang.github.io/docs/openchain/#부록-2-샘플-오픈소스-컴플라이언스-프로세스
SK텔레콤도 이에 기반하여 ISO/IEC 5230이 요구하는 바를 충족할 수 있도록 2021년 오픈소스 컴플라이언스 프로세스를 개정하였다.
이렇게 정책까지 수립하고 나면 ISO/IEC 5230 요구사항 중 아래의 녹색으로 표시한 항목을 충족하게 된다.
2-4. 도구
기업은 프로세스의 모든 과정을 가능한 자동화하고 이슈 추적이 가능하도록 이력을 보관해야 한다. 이를 위하여 기업은 다음과 같은 도구를 지원해야 한다.
- 소스 스캔 도구
- Dependency 분석 도구
- 오픈소스 BOM (Bill of Materials) 관리 도구
- 오픈소스 컴플라이언스 산출물 생성 도구
- 오픈소스 컴플라이언스 산출물 보관 / 배포 환경
3.3.1.2. 문서화된 절차가 적절히 준수되었음을 보여주는 배포용 소프트웨어에 대한 오픈소스 컴포넌트 기록
3.4.1.1. 식별된 라이선스가 요구하는 컴플라이언스 산출물을 준비하고, 이를 배포용 소프트웨어와 함께 제공하기 위한 프로세스를 설명하는 문서화된 절차
3.4.1.2. 배포용 소프트웨어의 컴플라이언스 산출물 사본을 보관하기 위한 문서화된 절차. 산출물 사본은 배포용 소프트웨어의 마지막 배포 이후 합리적인 기간 동안 혹은 식별된 라이선스에서 요구하는 기간 동안 보관해야 한다(둘 중 더 긴 기간을 따름). 이러한 절차가 올바르게 수행되었음을 입증하는 기록이 존재해야 한다
기업은 아래와 같이 오픈소스로 공개되어 있는 도구를 활용할 수 있으며, 모두 오픈소스 라이선스 하에서 자유롭게 무료로 기업 내에서 사용할 수 있다.
- 소스 스캔 도구 : fossology 설치 및 사용 가이드
- Dependency 분석 도구 : ORT (OSS Review Toolkit)
- BOM 관리 도구 : SW360 설치 및 사용 가이드
특히, SK텔레콤은 오픈소스 산출물 보관 / 공개 사이트의 소스 코드와 운영 방법을 공개하였다.
https://sktelecom.github.io/compliance/
GitHub에 공개된 소스 코드와 개발 환경 구성을 위한 안내 문서가 제공되어 있어서 기업은 이를 참고하여 손쉽게 오픈소스 산출물 공개 환경을 구축할 수 있다.
https://github.com/sktelecom/sktelecom.github.io
이렇게 도구까지 준비하고 나면 ISO/IEC 5230 요구사항 중 아래의 녹색으로 표시한 항목을 충족하게 된다.
2-5 교육
아무리 우수한 정책과 프로세스를 구축하였다고 해도 이를 사내에 전달하지 않으면 실제 동작하지 않게 된다. 오픈소스 정책과 프로세스의 효과적인 전파를 위해서는 구성원 교육이 필수이며, 이를 위해 다음 사항을 수행해야 한다.
- 오픈소스 정책 전파
- 오픈소스 기여 정책 전파
- 역량 평가 / 결과 보관
- 사용 사례별 오픈소스 라이선스 가이드 제공
3.1.1.2. 프로그램 참여자가 오픈소스 정책의 존재를 알 수 있게 하는 문서화된 절차 (교육, 내부 위키, 혹은 기타 실질적인 전달 방법 등)
3.5.1.3. 모든 프로그램 참여자가 오픈소스 기여 정책의 존재를 인식하도록 하는 문서화된 절차 (예: 교육, 내부 위키, 또는 기타 실질적인 전달 방법 등)
3.1.2.3. 각 프로그램 참여자의 역량을 평가한 문서화된 증거
3.3.2.1. 배포용 소프트웨어 내의 오픈소스 컴포넌트에 대해 일반적인 오픈소스 라이선스 사용 사례를 처리하기 위한 문서화된 절차
사실 오픈소스 교육 자료를 새로 만드는 것도 쉽지 않은 작업일 수 있다. 고맙게도 우수한 오픈소스 프로그램을 이미 보유한 국내 기업에서 사내 오픈소스 교육자료를 누구나 참고하고 활용할 수 있도록 공개하였다.
NCSOFT가 '알고 쓰자, 바르게 쓰자, 오픈소스'라는 제목의 사내 교육자료를 GitHub에 공개하였다.
https://github.com/ncsoft/oss-basic-training
카카오도 사내 교육자료를 공개하여 다른 기업에서도 참고할 수 있게 하였다.
http://t1.kakaocdn.net/olive/assets/opensource_guide_kakao.pdf
SK텔레콤은 오픈소스의 사용 사례별 라이선스 가이드를 공개하였다. 이 가이드에서는 주요 오픈소스 라이선스 별로 소스 코드 / 바이너리 형태로 재배포, 수정 시 의무 사항, 파생 저작물의 범위, 라이선스 호환성에 대하여 가이드를 제공한다.
https://sktelecom.github.io/guide/use/obligation/
한국 기업은 이렇게 공개된 오픈소스 교육자료와 가이드를 참고하여 ISO/IEC 5230이 요구하는 교육 환경을 쉽고 빠르게 마련할 수 있게 되었다.
ISO/IEC 5230은 교육을 제공하는 것에 그치지 않고, 구성원이 필요 역량을 갖추었는지 평가하고 평가 결과를 보존할 것을 요구한다.
SK텔레콤은 사내 온라인 교육 시스템을 활용하여 소프트웨어 배포와 연관된 모든 구성원을 대상으로 전사 오픈소스 필수 교육 및 평가를 시행하였다.
이렇게 교육 환경까지 준비하고 나면 ISO/IEC 5230 요구사항 중 아래의 녹색으로 표시한 항목을 충족하게 된다.
2-6 ISO/IEC 5230 준수 선언
위와 같이 ISO/IEC 5230의 모든 요구사항을 준수하는 기업은 이를 공개적으로 선언할 수 있다. 먼저, 다음 두가지를 명시하는 문서를 작성하여 정책에 포함시키거나 웹사이트 등을 통하여 게시한다.
- ISO/IEC 5230 OpenChain 규격 2.1의 모든 요구사항을 충족함
- 모든 요구 사항을 충족하는 상태로 18개월 이상 유지할 것을 보장함
이는 ISO/IEC 5230에서 다음과 같이 요구하기 때문이다.
3.6.1.1. 3.1.4조에서 명시한 프로그램이 이 규격의 모든 요구사항을 충족함을 확인하는 문서
3.6.1.2. 프로그램이 적합성 인증을 획득한 후 지난 18개월 동안 이 규격 버전(v2.1)의 모든 요구사항을 충족하고 있음을 확인하는 문서
SK텔레콤은 다음과 같이 오픈소스 포털에 이를 게시하였다.
https://sktelecom.github.io/compliance/iso5230/
여기까지 모두 준수하였다면 드디어 ISO/IEC 5230의 모든 요구사항을 충족하게 된다.
이러한 수준의 오픈소스 거버넌스를 구축한 기업은 OpenChain Project에서 제공하는 웹사이트에서 Self Certification을 수행하여 ISO/IEC 5230 자체 인증을 획득할 수 있다.
https://www.openchainproject.org/featured/2021/09/08/sk-telecom
자세한 절차와 방법은 OpenChain Korea Work Group의 발표 영상을 참고하면 된다.
https://youtu.be/ifauIfkRLT8?t=269
3. 마치며
우리나라에서는 2019년 LG전자를 시작으로 최근 SK텔레콤까지 주요 ICT 기업이 ISO/IEC 5230 인증 획득을 선언하였다.
여기에서 그치지 않고, 앞으로도 Software Supply Chain 내 많은 기업이 ISO/IEC 5230을 준수하여 신뢰성 있고 투명한 오픈소스 개발 문화가 조성되기를 바란다.
다음 가이드에서는 오늘 다룬 내용을 보다 자세히 설명하고, 보다 유용한 샘플과 참조 문서도 제공하고 있어서 관심 있는 기업에는 큰 참고가 될 수 있다.
끝으로, 국내의 여러 ICT 기업이 오픈소스 정신인 공유와 협업으로 오픈소스 거버넌스 관리를 모두 함께 잘 하고자 커뮤니티 활동을 하고 있다. 2019년 시작한 OpenChain Korea Work Group은 현재 11회의 모임을 통해 각 기업의 오픈소스 관리를 위한 Best Practice를 공유하고 있다. 소프트웨어를 개발하고 배포하여 오픈소스 관리가 필요한 기업의 오픈소스 담당자들은 누구나 참여가 가능하다. Welcome! :)
https://openchain-project.github.io/OpenChain-KWG/
이러한 기업의 자발적인 활동이 올바른 국내 오픈소스 문화와 생태계 조성에 기여하고 있음을 믿는다.
번호 | 제목 | 조회수 | 작성 |
---|---|---|---|
321 | [공개SW 거버넌스 구축 사례/SK텔레콤] OSPO, 그리고 국제 표준에 기반한 오픈소스 거버넌스 구축 사례 (SK텔레콤) | 2728 | 2021-10-25 |
320 | [공개SW 활용사례/벤츠 이노베이션랩] 벤츠를 바꾸는 건 소프트웨어…"오픈소스 활용해 독자 개발" | 2129 | 2021-09-27 |
319 | [공개SW 개발자 인터뷰/옥찬호 개발자] “배움·나눔이 원동력”…글 쓰는 개발자의 슬기로운 오픈소스 생활 | 3735 | 2021-08-23 |
318 | [공개SW 활용사례/창업기업] "스마트팩토리 빅데이터, 엣지 환경에서 실시간 분석·정제한다" | 1881 | 2021-07-20 |
317 | [공개SW 활용사례/오픈소스관리] 한 달 걸리던 카카오톡 오픈소스 관리, 이틀이면 충분 | 3320 | 2021-06-28 |
316 | [공개SW 활용사례/오픈소스관리] 오픈소스SW 관리 툴 ‘포스라이트’ 공개한 LG전자, “글로벌 표준 거듭나겠다” | 3741 | 2021-06-28 |
315 | [공개SW 활용사례/게임] 블록체인으로 탄생한 오픈소스 게임…플라네타리움, “참여 보상도 게임의 일부” | 2484 | 2021-05-24 |
314 | [공개SW 활용사례/오픈소스 활용기 5] 테라폼, 복잡한 클라우드 인프라 관리 자동화로 해결 | 2585 | 2021-04-27 |
313 | [공개SW 활용사례/오픈소스 활용기 4] 클라우드 빌드·배포 등 단순업무, 오픈소스로 한 번에 해결 | 2330 | 2021-03-29 |
312 | [공개SW 활용사례/오픈소스 활용기 3]누구나 삼성 IoT 서비스 개발 더 쉽게 ‘SASM’…“오픈소스 없었더라면” | 3050 | 2021-02-22 |
0개 댓글