OSS Flashcards
오픈소스 소프트웨어
[정의] 공개된 소스코드를 의무사항 준수시, 수정, 복제, 재배포 가능한 소프트웨어
[필요성] 제품에서 SW비중&중요성 확대, Time to Market 개발속도 압박, SW 보안&안전성 이슈
[유형] 2차 저작물 공개여부 따라 허용적/카피레프트로 구분
1. 허용적 라이선스 : 소스코드 비공개 허용, 다른 라이선스 전환가능 (MIT-jQuery, 부트스트랩, BSD-NginX, Apache 2.0-안드로이드, 하둡 2.0)
2. 카피레프트 라이선스 : 원본코드 + 2차 저작물 코드 공개
- [약한] 다른라이선스 전환가능 (MPL-FireFox v1.1, LGPL-Mozila, FireFox v2.1)
- [강한] 다른라이선스 전환 불가능 (GPL 2/3-Mozila, Git, MariaDB, AGPL 3-MongoDB)
[라이선스 유형]
- BSD 계열 : BSD (SW 재배포시 저작권 표시, 준수조건/보증부인 대한 고지사항을 소스코드에 포함 요구), Apache(저작권, 특허,상표를 소스코드/NOTICE 포함)
- GPL 계열 : GPU 2.0 (복제본에 저작권 표시) GPL 3.0(인증키, 설치정보 제공, 차별적 특허라이센스 계약 체결 금지) LGPL( LGPL 라이브러리 사용 사실 명시)
- MPL 계열 : MPL (MPL 코드 미포함 새 파일, 소스코드 제공 의무 X), CDDL (솔라리스 오픈소스로 배포 라이선스) CPL/EPL (파생저작물 저작자가 새로 생성한 부분 기존 모듈 아닌경우 미공개 가능)
OSS 라이선스 양립성
[정의] OSS 라이선스에 포함된 카피레프트(Copyleft) 조항과 추가제한금지 조항 때문에 OSS 라이선스 양립성 문제 발생
[원인] 카피레프트, 추가제한 금지 조항, 라이선스 미확인 후 배포 카추라
[사례] 1. 신버전과 구버전의 양립성(GPL2.0, LGPL2.1) 2.LGPL과 GPL(LGPL은 조항 완화) 3.AGPL과 GPL (AGPL이 적용범위 확대)
[해결방안]
<도구측면> 코블
- CodeEye : 한국저작위원회에서 개발한 라이선스 준수 여부 검사 툴
- Black Duck Hub : Black Duck에서 개발한 라이선스 준수 여부 검사 툴
<정책측면> 재양추
- 특정 라이선스로의 재라이선싱 허용 : LGPL을 GPL로 배포 허용
- 특정 라이선스와 양립성 허용 : 상호 양립성을 예외적으로 인정
- 추가제한금지 조항 탄력적 운영 규정 : GPL 3.0에서 일정한 범위 내에서 예외적 추가 제한 조항 허용
</정책측면></도구측면>
오픈소스 거버넌스 프레임워크
[정의] OSS 컴플라이언스와 구축/운영 효율성 확보 위한 소프트웨어 라이프사이클 기반 거버넌스 체계
[필요성] 지적재산권 침해 가능성 제거, 공개 SW 도입 Risk 최소화, 목표/조직 최적화, OSS 보안취약점 증가
[내부사용] 외부 코드, 벤더 통해 도입 [외부배포] 기존 OSS 및 개발 S/W 개작, 배포
[서비스유형] 내부S/W 외부 서비스, 외부S/W 외부 서비스
프레임워크 컨정조 요조분평 계설개패시배 설운유기커 컴교모
- 정책수립(저작권 Risk최소화 전략, 조직 구성) →획득(ISO9216기반 OSS 수준평가) →적용(설계,개발, 패키징 시험/배포) → 운영(설치, 운영/유지보수,기술지원 커뮤니티) → 관리/개선(컴플라이언스,교육, 모니터링)
[거버넌스 구현위한 요소기술] 라보 코문라야
- 라이선스 분석 : 코드스캔(code Eye,OpenLogic, Protecode), 문자열 검색(FOSSology(GPL 2.0), Ninka(GPL 3.0), TripleCheck(AGPL 3.0))
- 보안 취약점 분석 : RATS, Yasca
[도입시 고려사항] 법비기
- 법률 측면 : (규모큰 OSS)라이선스범위, 소스코드 권리/획득, 지적재산권법
- 비즈니스 측면 : 사업취지 적합성, 재정적/경제적 타당성, 도입솔루션 합리성
- 기술 측면 : 기술지원/유지보수, 개방형 표준지원(기업 lock-in 방지), 기술지속성
오픈소스 프로젝트 관리 소프트웨어
[정의] 프로젝트 계획,일정,의사소통 등 프로젝트 관리를 효율적, 생산적으로 지원해주는 오픈소스 SW
[유형] 통의일형
- 프로젝트 통합관리 : Redmine, Open Project
- 의사소통 관리 : Slack, 잔디
- 일정 관리 : 프로젝트 리브레, toggle
- 형상 관리 : Git, SVN
* 오픈소스 SW는 라이선스에 따른 사용상 주의가 필요
[라이선스 유형] GPL, MPL(LGPL, MPL), BSDL(BSD, MIT, Apache)