일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- dft
- 릿코드
- 알고리즘
- DSP
- 알고리즘 문제풀이
- 이산신호처리
- leetcode
- 스위프트
- 알고리즘문제풀이
- 신호처리
- DTFT
- 컨볼루션
- 전자공학
- PYTHON
- 카카오 코딩테스트
- Leet Coding Challenge
- 코딩테스트
- 코테준비
- 백준
- SWIFTUI
- SWIFT
- Trie
- leet code
- 파이썬
- 프로그래머스
- 독서노트
- IOS
- 코테
- 트라이
- backjoon
- Today
- Total
매일 매일 성장하는 섭섭군
오픈소스 소프트웨어 라이센스와 종류 본문
오픈소스 소프트웨어의 라이센스의 종류
오픈소스 소프트웨어란?
SW 공부를 어느정도 했다면 오픈소스라는 단어는 한번쯤 들어봤을 것이라 생각된다.
위키피티디아에 따르면 오픈소스 소프트웨어는 소스코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는
오픈소스 라이선스를 만족하는 소프트웨어를 말한다. 여기서 중요한게 오픈소스 라이선스이다.
다 같은 오픈소스라고 해서 가져다 쓰고 이를 상업적 및 다른 목적으로 이용 할 수 없을 수 있다.
오픈소스 라이센스의 종류
먼저 라이센스를 통해서 어떤것들을 제한하며 허용하는 것일까?(대표적인 것들 일부만 적어봤습니다.)
- 복제, 배포, 수정의 권한 허용
- 배포시 소스코드 공개의 의무
- 저작권 표시의 의무
- 코드에 대한 보증, 책임의 유무
이것들 이외에도 많은 내용들이 있다. 더 알아보기
위 내용들에 대해 허용되는지 의무가 있는지를 비교하면서 라이선스를 바라본다면 보다 쉬운 이해가 될 것 같다.
GPL (GNU General Public License)
GPL은 현재 가장 많은 오픈소스가 채택하고 있다. 하지만 의무사항들이 많아 엄격하니 GPL 라이센스의 소스를 사용할 때에는 주의가 필요하다.
그렇다면 어떤 제한들이 있을까?
- 배포할 시 저작권의 표시와 보증책임이 없다는 표시 및 GPL 라이센스를 준수한다는 사실을 명시해야 한다.
- 코드를 수정하거나 병합하려고 할 경우 소스코드를 제공해야 한다.
- 배포할 시 소스코드 전체를 공개해야 한다.
즉 내가 GPL 라이센스의 오픈소스를 사용해서 프로그램을 개발하고 배포했다면 내 프로그램의 소스코드 전체를 공개해야 한다.
이 프로그램이 상업적 목적이고 프로그램 자체가 경쟁력을 갖춘다면 GPL라이센스의 오픈소스를 사용할 때 추가적인 고려가 필요해 보인다.
LGPL (Lesser GPL)
Lesser를 한국어로 해석하면 적은, 덜한의 의미다.즉 GPL 보다는 의무가 다소 적다.
GPL이 소스코드를 공개해야하는 단점 때문에 라이브러리와 모듈로 링크를 허용한 것이다.
- 배포할 시 저작권의 표시와 보증책임이 없다는 표시 및 LGPL 라이센스를 준수한다는 사실을 명시해야 한다.
- LGPL Libary의 일부를 수정할 경우 수정한 Livary를 LGPL에 의해 소스코드 공개
BSD (Berkeley Software Distribution License)
이름에서도 알 수 있듯이 버클리 대학에서 만든 라이센스이다.
BSD는 허용범위가 GPL가 LGPL보다는 넓다. 그만큼 제약이 적다는 의미이다.
특히 프로그램의 소스코드 공개의 의무가 없다는 것이 가장 큰 차이점이다.
- 배포할 시 저작권의 표시와 보증책임이 없다는 것만 명시해야 한다.
Appache License
아파치라는 재단에서 만든 라이센스이다. BSD와 유사하지만 "Appache"라는 이름에 대한 상표권을 침해하지 말아야 한다.
MIT License
우리가 아는 그 MIT 대학에서 만든 라이센스이다. SW 공학도들을 위해 만든 라이센스인 만큼 저작권과 보증책임만 명시한다면 무제한으로 사용 가능하다.
마치며
오픈소스의 라이센스에 대해서 간략히 알아보았다.
최근 라이센스의 통계를 보니 MIT 라이센스가 압도적이다. 아마 제약이 거의 없어서 그런것 같은 느낌이다.
내가 작성한 코드를 공유하면서 더 나은 프로그램과 세상을 꿈꾸는 개발자들의 마음이 느껴지는 것 같다.
GitHub에서 라이센스를 등록하는 방법은 다음 링크를 참조한다면 수월하게 진행할 수 있을것이라 생각된다. 링크
아래는 오픈소스 라이센스 글을 작성하는데 참조한 링크입니다.
https://github.blog/2015-03-09-open-source-license-usage-on-github-com/
http://guswnsxodlf.github.io/software-license
https://www.olis.or.kr/license/compareGuide.do
https://deepinsight.tistory.com/82
'개발관련 > 개발상식' 카테고리의 다른 글
Jenkins Install 방식 알아보기(서비스 형태, WAR 형태) (0) | 2022.06.29 |
---|---|
Git&GitHub 알아보기 (0) | 2020.08.28 |
일급객체(First Class Citizen)이란? - with Swift (0) | 2020.08.08 |
함수형 프로그래밍이란? (0) | 2020.08.08 |
객체지향 프로그래밍이란?(Object Oriented Programming) (0) | 2020.08.08 |