오픈소스 라이선스 (open source license)
2023. 11. 30. 19:01ㆍ오픈소스
1. 라이선스
- 소프트웨어의 사용을 장려하도록 하는 것.
- 제품, 코드 제작자의 이익, 이해 관계를 최대가 되는 합의 결과.
- 제작자의 철학, 조건을 존중한다.
2. 오픈소스의 사용의의
- 오픈 소스를 사용함으로써 코드 제작을 효율적으로 할 수 있으며 버전 관리에 용의하다.
- 비슷한 사업, 제작을 할 경우, 먼저 코드를 공개하여 회사의 강인함을 알리고 이미지 상승이 용의하다.
- 공개를 함으로써 기술의 원천지를 증명이 가능하다.
- 코드가 지저분하게 제작되어 있더라도 많을 사람들이 수정을 거치며 더 깔끔한 코드로 완성된다.
- 보안 취약점이 노출 될수 있지만, 더 많은 사람들, 소프트웨어를 사용하게될 회사에서 코드를 수정하며 개선한다.
3. 오픈 소스 라이선스 정의
:소프트웨어 또는 제작물의 저작권이 존재하지만, 공개하여 소스코드를 누구나 자유롭게 사용, 복제, 배포, 수정 활용할 수 있게 하는것.
-
- OSI의 오픈소스 정의이자 책임
4. 오픈소스의 주요 라이선스
대표적인 2가지 방식
- Free software(by 리처드 스톨먼)
- 프로그램을 자유롭게 실행 가능하다.
- 연구하고 수정을 자유롭게할 수 있다.
- 재배포가 자유롭다.
- Open source software(by 에릭 레이먼드)
- 실용적인 개발 방식에 초점을 두었다.
- 프로그램 개발에 참여한 산업계, 개발자, 개인들에게 적절한 권리와 보상을 주는것이 가능하다.
라이선스 분류별 의무사항
라이선스의 대표적인 형태
- Permissive
- 자유로우며 별다른 의무사항이 없다.
- Week copyleft
- 자유롭게 사용가능하지만, permissive 형태에서 추가적인 조항이있다.
- 보통 수정된 코드를 공개하는 것이다.
- Strong copyleft
- Week copyleft에서 추가적인 조항이있다.
- 소스코드 전체 공개, 보호조치, 설지정보의 제공등의 조항이있다.
주요 라이선스의 예시
- GPL 2.0
- 특징
- 자유로운 사용 복제 배포 수정이 가능하다.
- 저작권을 표시해야하며 보증하지 않는다.
- 모든 소스코드가 공개된다.
- 공개범위는 GPL전체이다.
- 의무사항
- 실행파일의 배포
- 기계판독 가능한 모든 소스코드.
- 운영체제 구성요소를 제외한 모든 컴파일 인터페이스 공개.
- 이러한 의무사항을 유지하지 않으면 배포가 불가능하다.
- 실행파일의 배포
- 기타 사항
- 수정파일을 인터넷으로 확인이 볼가하거나 따로 첨부하기 어려운 경우 동등한 접근방식으로 배포하거나 유효소스코드 제공 약정서를 부여하면 가능하다.
- GPL3.0
- 2000년대초 embeded software로 인하여 만들어졌다.
- 장비에도 소프트웨어가 탑제되어 있기 때문이다.
- 차이점
- 기술적 보호조치 금지
- 네트워크 서비스에 관한 조항
- 배포라는 단어를 컨배이라는 단어로 수정하여 범위 확장
- 복제 --> 전파(저작물등 정보통신 관련 모든것)
- 특징
- LGPL 2.0
- 특징
- GPL과 유사하나 라이브러리 링크 방식이며 공개 범위는 모든 라이브러리 코드이다.
- 코드를 제한적으로 공개한다.
- 라이브러리를 수정했을경우 LGPL과 관련된 의무를 이행한다.
- 단순히 링크를 걸었다면 그 코드를 공개할 필요는 없으며 고지만 한다.
- LGPL 3.0
- GPL2.0과 마찬가지로 시대가 변화함에 따라 변화가 발생하였다.
- 특징
- MPL 1.1 (week copyleft)
- 특징
- 만약 수정한다면 공개한다 또한 무상 특허 권리를 보장한다.
- 공개 범위는 수정된 해당 파일이다.
- 독점이나 특허가 불가능 하며, 만약 특허가 발생했을 경우 보복 조치가 이루어진다.
- MPL 2.0
- 동일 조건이 아닌 다른 라이선스 호환이 가능하다.
- 특징
- EPL
- 특징
- MPL과 유사하나 수정된 코드를 모듈단위로 공개한다.
- 특징
- 그외
- apache 2.0(permissive) ex) 안드로이드
- MIT (permissive) --> 상업적 이용 가능
- BSP-2-Clavse (ver 2 3 4가 있다.)
- 등 다양한 라이선스가 존재 한다.
--> 이들을 관리하기 위해 다양한 툴을 활용하여 라이선스를 확인하고 활용한다.
5. 고지의무를 이행하는 방법
- File scope approach
- 개별 파일마다 고지
- Centralized approach
- 중앙파일( ex) lisence.txt)에 종합하여 모두 고지
- Hybrid approach
- 1번과 2번 방식을 사용
- Written offer
- 제품 설명서 또는 다른 다양한 방식으로 코드에 접근할 수 있는 방식을 설명한다.
- 보통 가전제품에 많이 활용되며 연락처, 링크등를 통하여 접근 가능하게 한다.
'오픈소스' 카테고리의 다른 글
오픈 소스의 소스코드 공개 방식 (0) | 2023.12.21 |
---|---|
오픈소스(open source)가 왜 중요한가? (0) | 2023.11.15 |
오픈소스란 무엇인가? (0) | 2023.11.15 |