Visual Studio의 옵션에서 접한 라이선스
프레임워크나 라이브러리를 사용하다 보면 라이선스를 흔하게 볼 수 있습니다. Visual Studio에서도 GitHub, Azure DevOps에 있는 로컬 Git 리포지토리 기능을 사용할 때면 라이선스 템플릿 항목을 볼 수 있습니다. GNU, 아파치, 모질라, MIT 등 익숙하고 유명한 단어들이 보이고, 살다가 주워들은 이야기들로 조합해서 라이선스 템플릿이 살짝 무엇을 말하는지 느낌을 알 것 같았습니다. UNIX 시스템 수업을 듣다가 GNU 프로젝트, 오픈 소스(OSS)와 라이선스의 관계와 배경을 알게 되면서 다시 새롭게 보였습니다.
GNU 프로젝트란?
등장 배경
유닉스 시스템 등장은 운영체제의 이식성을 높이려고 고급 언어인 C언어를 채택하여 개발되었습니다. 이후 여러 버전의 유닉스가 개발되었고 그중 버클리 대학에서 만든 BSD(Berkely Software Distribution) 유닉스 버전이 무료로 많은 학생과 기업들에게 공유되었습니다. 많은 사용자들이 소프트웨어를 자유롭게 만들었고 유용한 사용환경으로 많이 발전되었습니다. 그러나 UNIX 코드 복제와 영업 비밀의 도용으로 소송을 당하였고, 오픈소스 커뮤니티가 위축되었고 자유소프트웨어재단에서 GNU 프로젝트가 등장하게 되었습니다.
GNU(GNU is Not Unix) 프로젝트
자유소프트웨어 운동을 지원하기 위해 많은 개발자들이 유닉스 운영체제 전체를 다시 코딩하여 유닉스 운영체제와 호환되는 새로운 운영체제를 개발하려는 의도로 시작되었습니다. 그렇기에 GNU는 GNU is Not Unix이며. GNU 프로젝트는 유닉스와 호환되는 소프트웨어의 시스템을 구현하기 위해 진행되고 있는 프로젝트 자체를 의미합니다.
GNU 프로젝트의 자유와 오픈소스 개념의 등장
- 프로그램을 목적에 상관없이 실행할 수 있는 자유
- 복사하고 공유할 수 있는 자유
- 프로그램을 학습하고 소스 코드를 자신의 필요에 맞게 수정하고 개발할 수 있는 자유
- 개작된 프로그램을 배포할 수 있는 자유
오픈 소스는 GNU 프로젝트의 자유 개념을 포함하였습니다. 오픈 소스는 소프트웨어 저작권자인 개발자가 소프트웨어의 코드를 공개하여 누구나 자유롭게 사용, 복제, 수정, 재배포할 수 있도록 개방한 소프트웨어를 말합니다.
오픈 소스 소프트웨어 라이선스란?
오픈 소스는 코드를 공개하는 것으로 개발된 소프트웨어는 지식재산권으로 권리를 보호받을 수 있습니다. 그렇기때문에 개발자는 사용자에게 오픈소스 소프트웨어의 사용, 수정 및 공유 등에 관한 방법과 조건을 명시하여 사용허가권(License)을 부여할 수 있습니다. 그러므로 사용자는 코드가 공개되어 있다 해도 라이선스에 따라 소프트웨어를 사용해야 하며 위반하면 처벌을 받습니다.
주요 오픈소스 소프트웨어 라이선스 조건
라이선스명 | 무료 사용 | 코드 수정 | 재배포 | 2차 저작물 공개의무 | 독점 소프트웨어와 결합 허용 |
GPL | Y | Y | Y | 모두 공개 | X |
LGPL | Y | Y | Y | GPL 보다 유연 | Y |
MPL | Y | Y | Y | 파일 공개 | Y |
BSD | Y | Y | Y | X | Y |
Apache | Y | Y | Y | X | Y |
GPL : General Public License
LGPL : Lesser General Public License
MPL : Mozilla Public License
BSD : Berkely Software Distribution
위의 라이선스 조건 표에는 없지만 부트스트랩 라이브러리 포함된 MIT 라이선스 파일을 확인할 수 있습니다.
MIT 라이선스 양식 : https://opensource.org/license/mit-0/
The MIT License (MIT)
Copyright (c) 2011-2021 Twitter, Inc.
Copyright (c) 2011-2021 The Bootstrap Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
오픈 소스의 더 자세한 사항은 OSI (https://opensource.org/)에서 확인할 수 있습니다.
참고
UNIX 시스템
https://opensource.org/
'개발 > Computer Science' 카테고리의 다른 글
[데이터 모델링] ERD(Entity Relationship Diagram) 알고 그려보기 (1) | 2023.10.09 |
---|---|
클라우드 컴퓨팅이란? (0) | 2023.09.04 |
[네트워크] SSH와 SFTP(SSH 파일 전송 프로토콜) (0) | 2023.07.18 |
[C프로그래밍] HTML 생성 프로그램 만들기 (0) | 2023.06.20 |
[C프로그래밍] 나의 Tistory 카테고리 알파벳 순서로 정렬하기 (0) | 2023.05.09 |