2019년 9월 26일

 

ⓒ LG전자 장학성 책임연구원

 

오픈소스 컴플라이언스 관리 기본

 

소프트웨어를 개발하고 배포하는 기업이라면 오픈소스 컴플라이언스를 위한 관리 체계를 구축해야 한다. 이는 기업이 오픈소스와 관련된 모든 활동을 효과적으로 관리해 오픈소스로부터 최대한의 가치를 창출함과 동시에 법적인 리스크를 감소시키기 위함이다. 오픈소스 관리 체계는 크게 정책, 프로세스 및 도구로 구성된다.

 

1. 정책
정책은 회사 전체에서 오픈소스와 관련한 일을 수행하기 위한 요구사항 및 규칙으로, 아래 사항을 포함한다. 


(1) 개발자가 github 등 외부 저장소에서 찾은 코드를 제품에 추가하기 위한 정책 (기업이 배포하는 모든 소프트웨어가 검사, 검토 및 승인되었음을 보장하기 위한 방법이 포함되어야 함)
(2) 기업의 소프트웨어를 오픈소스로 공개하기 위한 정책
(오픈소스 프로젝트로 기여하거나 사내 프로젝트를 오픈소스로 공개하기 위한 방법이 포함되어야 함) 
(3) 기업이 공개한 오픈소스 프로젝트에 외부 기여를 받기 위한 정책
(외부 개발자가 기여한 것을 수락하기 위한 방법이 포함되어야 함)
(4) 오픈소스 커뮤니티를 성장시키기 위한 정책
(Linux Foundation에서는 기업들이 참고할 수 있도록 Generic FOSS Policy를 제공하고 있음 
(https://wiki.linuxfoundation.org/_media/openchain/lf_compliance_generic_foss_policy.pdf)

 

최근 OpenChain 프로젝트는 Open Source Policy Template for OpenChain Specification을 만들어 공개한 바 있다. 아직 오픈소스 관리 정책이 없는 기업일 경우, 이러한 템플릿 문서를 참고하면 기업에 맞는 정책 문서를 작성하는 데 도움이 될 것으로 보인다. 
(https://www.openchainproject.org/news/2019/09/11/openchain-policy-template-for-openchain-spec-2-0-release-candidate-available)

2. 프로세스
프로세스는 현업에서 정책을 준수하기 위한 실현 가능한 절차로, Linux Foundation이 출간한 Open Source Compliance in the Enterprise에서는 이러한 프로세스에 관해 설명하고 있다. 
(https://www.linuxfoundation.org/compliance-and-security/2018/12/open-source-compliance-in-the-enterprise/)

 

 

더불어 OpenChain 프로젝트에서 제공하는 Curriculum 문서에서도 단계별 프로세스와 주요 활동에 관한 설명을 제공한다. 
(https://www.openchainproject.org/resources)

기업은 이와 같은 참고자료를 참고해 내부 개발 절차 등 기업의 환경에 맞게 오픈소스 컴플라이언스 관리를 위한 프로세스를 구축해야 한다. 단, 이때 소프트웨어 개발 조직의 오버헤드를 최소화하기 위해 노력해야 한다. 아무리 프로세스가 훌륭히 작성되었다고 할지라도 실제 활동을 수행해야 할 소프트웨어 개발팀에 과부하가 발생한다면, 프로세스는 곧 아무 역할도 하지 못하는 단순한 한 장의 페이퍼로 전락할 수 있기 때문이다. 

 

그러므로, 반복적인 검토를 통해 불필요한 절차를 제거하고, 가능한 모든 과정을 자동화하는 개선작업이 필요하다. 또한, 회사의 비즈니스 환경, 오픈소스 사용 및 참여가 변화되는 상황에 맞춰서 정책과 프로세스 역시 발전시키고자 노력해야만 한다.  

 

참고로, Linux Foundation의 OpenChain 프로젝트(certification.openchainproject.org)에서 제공하는 자체 인증 절차(https://certification.openchainproject.org/)를 통해 오픈소스 관리를 위한 기업의 정책과 프로세스에서 미비점과 보완이 필요한 부분을 찾아낼 수 있다.

 

3. 도구
오픈소스 컴플라이언스 프로세스를 가능한 자동화 및 간소화하는 과정에서 알맞은 툴의 활용은 효율적인 측면에서 도움을 줄 수 있다. 도구를 도입하는 방법으로는 (1)자체개발, (2)상용도구 구매, (3)오픈소스 도구 사용 등이 있을 수 있는데, 오픈소스로 공개된 도구를 사용하는 것이 여러 측면에서 유리할 수 있다. 우선 오픈소스 도구는 무료로 사용가능하기 때문에 비용이 발생하지 않으며, 오픈소스 도구를 사용하면서 기업이 자체적으로 수정 및 추가한 부분을 다시 오픈소스 커뮤니티에 기여함으로써 오픈소스 생태계 발전 및 확산에 기여할 수도 있다. 대표적인 오픈소스 도구로는 FOSSology, Software Heritage, SPDX, sw360, ClearlyDefined 등이 있다. 

 

● FOSSology (http://www.fossology.org) : 소스코드 스캐닝 도구 
소스 파일 상단의 문구를 스캔하여 라이선스를 자동으로 확인함

● SPDX (http://spdx.org) : 소프트웨어 정보 교환 방식 표준
SPDX 프로젝트에서는 SPDX 표준과 이를 쉽게 활용할 수 있는 도구를 제공

● Software Heritage (https://www.softwareheritage.org/) : 모든 공개된 소프트웨어를 보존하고 이를 누구나 사용할 수 있도록 API 제공

● SW360 (https://www.eclipse.org/sw360/) : 소프트웨어에 포함된 구성요소를 관리하기 위한 도구

● ClearlyDefined (https://clearlydefined.io) : 오픈소스 데이터베이스 제공. 참여자가 자발적으로 데이터를 개선할 수 있게 함. 

최근에는 이와 같은 오픈소스 도구를 연결해 누구나 자유롭게 사용할 수 있는 하나의 통합 툴 체인을 만들기 위한 오픈소스 활동이 시작되었다. OpenChain 프로젝트의 Tooling Work Group이라는 이름의 활동은 아래 링크를 통해서 확인할 수 있다. 
(https://www.openchainproject.org/news/2019/07/25/openchain-launches-tooling-work-group)

 

 

LG전자의 오픈소스 컴플라이언스 관리 사례 

 

갈수록 소프트웨어를 배포하는 방식과 분야가 거대하고 복잡해지다 보니, 오픈소스 컴플라이언스 활동을 표준화하고 효율화하기 위한 조직, 정책 및 프로세스에 대한 니즈도 증가하고 있다. 

 

LG전자는 일찍이 2000년대 후반부터 오픈소스 컴플라이언스를 위한 활동을 시작한 기업이다. 모바일, TV, 가전과 같이 소비자에게 직접 판매하는 제품부터 자동차 부품 같은 B2B 형태로 공급하는 제품까지 다양한 제품군을 개발하고 있으며, 최근에는 인공지능, 빅데이터 등의 신기술을 활용해 여러 분야에 소프트웨어 기반 서비스를 제공 중이다.

 

1. LG전자 오픈소스 컴플라이언스 조직
LG전자의 오픈소스 컴플라이언스에 대한 전반적인 책임을 갖고 정책 수립 및 프로세스를 구축하여 전파하는 역할을 담당하는 전사 OSC(Open Source Compliance)팀이 있다. 전사 OSC팀은 오픈소스 컴플라이언스 관련 교육 및 평가 방법을 제공하고, 외부 문의와 요청에 대한 공식 창구 역할을 수행한다. 오픈소스 컴플라이언스 활동을 자동화 및 효율화될 수 있도록 도구와 시스템을 개발하여 제공한다. 법무팀, 특허센터 및 준법감시팀과 협업하여 오픈소스와 관련된 라이선스, 특허, CLA(Contribution License Agreement) 등에 대해 검토하고, 필요한 의사결정을 수행한다.

 

소프트웨어를 배포하는 활동을 주기적으로 수행하는 조직은 오픈소스 컴플라이언스를 위한 활동이 필요하며, 이를 위한 OSC 담당 부서가 존재한다. 사업부/연구소 OSC 담당 부서에서는 해당 조직의 OSC 관련 업무를 총괄하여 오픈소스 컴플라이언스로 인한 리스크 예방 활동을 책임지고 이행하는 역할을 수행한다.

 

2. LG전자 오픈소스 정책
LG전자 오픈소스 정책은 소프트웨어를 배포하는 모든 조직이 오픈소스를 사용 혹은 기여할 때 지식 재산을 보호하고 컴플라이언스 리스크를 완화해 오픈소스로부터 최고의 비즈니스 가치를 창출하기 위해 만들어졌다. LG전자 오픈소스 정책은 (1)오픈소스 사용 정책, (2)3rd party 소프트웨어 사용 정책 (3)오픈소스 기여 정책, (4)외부 클레임 대응 정책으로 구성되며, OpenChain 프로젝트(https://www.openchainproject.org/)에서 배포한OpenChain Specification(https://wiki.linuxfoundation.org/_media/openchain/openchainspec-2.0.pdf)의 요건을 충족할 수 있도록 보완되고 있다. 

 

3 LG전자 오픈소스 컴플라이언스 표준 프로세스
LG전자 오픈소스 컴플라이언스 표준 프로세스는 LG전자 소프트웨어 개발 프로세스 단계에 따라 (1)Identification, (2)Approval, (3)Notice & Verification, (4)Distribution 단계로 구분된다. 

Identification 단계에서는 소프트웨어 개발에 사용할 오픈소스와 라이선스를 확인하고 각 오픈소스 라이선스의 사용 사례별 조건을 고려하여 지식 재산 유출을 방지할 수 있도록 소프트웨어를 설계한다. 소스코드 내 저작권 및 라이선스 표기 룰을 준수한다. LG전자의 소스코드 내 저작권 및 라이선스 표기 룰은 Linux Foundation의 SPDX(https://spdx.org)와 FSFE(Free Software Foundation Europe)의 REUSE(https://reuse.software) 규격을 따르고 있다.

Approval 단계에서는 오픈소스 분석을 통해 사용한 오픈소스와 라이선스를 식별한다. 필요에 따라 FOSSology, Black Duck 등의 도구를 이용하여 소스코드 분석을 수행한다.

 

소프트웨어에 포함되는 모든 바이너리의 출처를 확인함으로써 소스코드 분석에서 빠질 수 있는 오픈소스에 대해서도 식별한다. Dependency 관리를 지원하는 소프트웨어 개발 환경에서는 Dependency 목록에 대해 오픈소스 및 라이선스를 식별하기 위한 Dependency 분석을 수행한다. 이러한 Open Source 분석 결과는 LG전자 통합 오픈소스 관리 시스템인 OSC System에 등록된다.

 

Notice & Verification 단계에서는 OSC System에 등록한 오픈소스 분석 결과를 기준으로 공개할 소스코드를 취합해 OSS Package를 생성한다. OSC System을 통해 확인이 완료되면 사용한 오픈소스 및 라이선스를 외부에 고지하고 소스코드 수령 방법에 대해 안내하기 위한 OSS 고지문을 발행한다.

Distribution 단계에서는 OSC System을 통해 OSS 고지문과 OSS Package를 OSS 배포 사이트(http://opensource.lge.com)에 등록해 누구든지 LG전자 제품에 대한 오픈소스 정보 및 소스코드를 다운받을 수 있도록 하고 있다.

 

LG전자는 OpenChain 프로젝트(https://www.openchainproject.org/)의 자체 인증 절차(https://certification.openchainproject.org)를 통해 확인한 미비점을 보완하고 있으며, 2019년 이내에 OpenChain 준수(Conformant) 프로그램을 갖춘 기업으로 등록하는 것을 목표로 삼고 있다. OpenChain KWG(https://wiki.linuxfoundation.org/openchain/openchain-korean-working-group) 활동에 적극적으로 참여해 국내 기업들과 우수 사례를 공유하고, 고충 사항들을 함께 해결해나가고 있으므로, 이후 더 간단하고 일관성 있게 오픈소스 컴플라이언스를 달성할 수 있을 것으로 기대된다.

 

 

크리에이티브 커먼즈 라이선스

 

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.

 

 

2019년 9월 26일
없음
2019
번호 제목 작성자 조회수 작성
공지 [공개SW 월간브리핑] 한국의 개방형 OS, 리눅스 생태계 살아날까 OSS관리자 287 2019-10-25
공지 보안성을 강화한 ‘구름OS’ file OSS관리자 368 2019-10-25
공지 사용자 친화적인 ‘하모니카OS’ file OSS관리자 251 2019-10-25
공지 [공개SW 월간브리핑]오픈소스 컴플라이언스 준수와 OpenChain file OSS관리자 333 2019-09-26
공지 2018년 공개SW 기업 편람 및 솔루션맵 개정판 출간 OSS 2169 2018-06-01
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 2564 2018-04-26
공지 오픈소스 라이선스 해설 (Version 1.0.0)[개발자, 관리자, OS 전문가 및 기업 실무 지침] file OSS 9714 2017-07-05
공지 공공 공개SW 거버넌스 가이드 발간 file OSS 15728 2017-03-22
공지 U2L(Unix To Linux) FAQ 책자 발간 file OSS 15710 2017-03-15
338 오픈소스 컴플라이언스 관리와 LG전자 사례 file OSS관리자 438 2019-09-26
337 “오픈소스 컴플라이언스? 공유와 협업으로 모두 함께 달성할 수 있다!” file OSS관리자 312 2019-09-26
336 [기고] 공개SW 컴플라이언스 준수를 위한 오픈소스 관리 전략 (OpenChain) file OSS관리자 384 2019-09-26
335 [기고] 공개SW 생태계와 성장하는 AI 기술 트렌드 file OSS관리자 527 2019-08-22
334 [공개SW 월간브리핑]인공지능 생태계와 오픈 이노베이션 file OSS관리자 392 2019-08-22
333 [공개SW 월간브리핑]기업의 클라우드 활용과 공개SW file OSS관리자 416 2019-07-30
332 [기고] 엔터프라이즈 공개SW 클라우드 전환 file OSS관리자 442 2019-07-30
331 [공개SW 2019 상반기결산 ⑤]소프트웨어 기업 핵심 전략은 클라우드와 오픈소스 OSS관리자 412 2019-07-03
330 [공개SW 2019 상반기결산 ④]오픈소스 활용 증가에 따라 오픈소스 보안취약점 증가 file OSS관리자 436 2019-07-03
329 [공개SW 2019 상반기결산 ③]특정 OS 종속성 탈피를 위한 정부·공공기관 개방형 OS 단계적 도입 확대 2 file OSS관리자 758 2019-07-03
맨 위로
맨 위로