본문 바로가기
WEB Tech

프로젝트 라이선스(License) 개념 및 비교 (MIT, GPL, BSD, Apache 2.0)

by Devinus 2024. 2. 5.

프로젝트 라이선스란?

라이선스는 소프트웨어 사용에 중요한 역할을 합니다. 특히, 오픈 소스 소프트웨어의 경우 어떤 라이선스가 사용되는지를 이해하는 것이 중요합니다. 이 글에서는 널리 사용되는 MIT, GPL, BSD, Apache 2.0 라이선스에 대해 간략히 살펴보겠습니다.

  1. MIT 라이선스: MIT 라이선스는 매우 관용적이며 유연한 라이선스입니다. 소프트웨어를 수정하고 재배포하는 데 제한이 거의 없으며, 소스 코드를 사용하는 사람이 저작권 고지를 유지하면 자유롭게 사용할 수 있습니다.
  2. GNU 일반 공중 사용 허가서 (GPL): GPL은 수정된 코드의 공개와 사용 조건이 포함된 복잡한 라이선스입니다. GPL 아래에서 개발된 소프트웨어는 동일한 라이선스 하에 배포되어야 하며, 수정된 코드를 공개해야 합니다.
  3. BSD 라이선스: BSD 라이선스는 더욱 자유로운 라이선스로, 소프트웨어를 수정하고 재배포하는 데 제한이 거의 없습니다. 단, 원본 출처와 라이선스 고지가 필요합니다.
  4. Apache 2.0 라이선스: Apache 2.0 라이선스는 비교적 새로운 라이선스로, 수정된 코드의 공개 의무가 없습니다. 하지만 원본 출처와 라이선스 고지가 필요합니다.

이렇게 네 가지 주요 라이선스는 소프트웨어 개발과 배포에 있어 중요한 역할을 합니다. 따라서 프로젝트를 시작할 때 어떤 라이선스를 선택할지 고려해야 합니다.

아래는 4개의 라이선스를 간단하게 비교한 표입니다.

라이선스 비교 표
라이선스 비교 표


라이선스를 선택하지 않으면 어떻게 되나요?

라이선스를 선택하지 않으면 해당 소프트웨어는 기본적으로 저작권에 보호됩니다. 이는 다른 사람이 소프트웨어를 사용, 수정 또는 배포하는 데 제한을 줄 수 있습니다. 일반적으로 소프트웨어를 공개하고 다른 사람이 사용하고 개선할 수 있도록 하려면 명시적인 라이선스를 선택하는 것이 좋습니다. 라이선스를 선택하지 않으면 다른 사람들이 소프트웨어를 사용하거나 수정할 때 불확실성이 발생할 수 있으며, 이는 잠재적인 법적 문제를 초래할 수 있습니다. 따라서 소프트웨어를 공개하는 경우 적절한 라이선스를 선택하여 사용자에게 명확한 권리와 의무를 부여하는 것이 중요합니다.


내 프로젝트에서 라이선스를 선택하지 않고, GPL에 해당하는 라이브러리(ex; fullpage.js)를 사용한다면 어떻게 되나요?

만약 당신의 프로젝트에서 라이선스를 선택하지 않고 GPL에 해당하는 라이브러리인 fullpage.js를 사용한다면, 이는 GPL 라이선스의 조건을 따라야 합니다. GPL은 Copyleft 라이선스로, 사용자에게 해당 소스 코드의 수정본을 공개하고 동일한 GPL 라이선스로 배포해야 함을 요구합니다. 따라서 당신의 프로젝트도 GPL 라이선스로 라이선스되어야 합니다. 이는 당신이 개발한 코드를 오픈소스로 공개하고 GPL 라이선스로 배포해야 한다는 것을 의미합니다.

또한, fullpage.js를 사용하는 경우에도 fullpage.js를 사용한 부분에 대한 소스 코드를 공개해야 하며, 해당 부분이 GPL 라이선스를 따르도록 해야 합니다. 또한 fullpage.js를 사용하는 라이브러리나 모듈의 일부로 포함될 경우, 이 라이브러리나 모듈도 GPL 라이선스를 따르게 됩니다.

따라서 fullpage.js를 사용하기 전에 프로젝트의 라이선스 및 라이브러리의 라이선스를 신중하게 검토하고, 프로젝트의 요구사항과 목적에 맞는 라이선스를 선택하는 것이 중요합니다.

 

하지만 fullpage.js 사이트에서 상업 라이선스를 구매하여 사용한다면 프로젝트의 소스 코드를 오픈 소스 라이선스로 바꾸시지 않고 사용할 수도 있습니다.

참고: https://alvarotrigo.com/fullPage/pricing/


BSD와 Apache 2.0은 거의 비슷한 거 같은데 나눠지는 이유는 뭐에요?

BSD 라이선스와 Apache 2.0 라이선스는 비슷한 목적과 철학을 공유하지만, 몇 가지 중요한 차이점이 있습니다. 이 라이선스들이 서로 분리된 이유는 다음과 같습니다.

  1. 라이선스 텍스트의 구성: BSD 라이선스는 매우 간결하고 직관적인 텍스트로 구성되어 있습니다. 반면에 Apache 2.0 라이선스는 조금 더 복잡하고 상세한 내용을 다룹니다. 이러한 차이는 두 라이선스가 적용되는 환경과 범위를 다르게 정의하고 있습니다.
  2. 특정한 문제에 대한 보호: Apache 2.0 라이선스는 특정한 법적 문제에 대한 더 강력한 보호를 제공합니다. 예를 들어, 소프트웨어의 특허 침해나 상표권 문제 등에 대한 해결책을 명시적으로 다루고 있습니다. 반면에 BSD 라이선스는 이러한 보호를 제공하지 않습니다.
  3. 라이선스 버전: BSD 라이선스는 여러 가지 버전이 있지만, 각각은 상당히 비슷한 내용을 다룹니다. 그러나 Apache 2.0 라이선스는 그 이름에서도 알 수 있듯이 Apache 소프트웨어 재단에 의해 개발되고 유지보수되었습니다. 따라서 이러한 라이선스는 Apache 소프트웨어 재단이 채택한 특정한 라이선스 버전에 대한 차이가 있을 수 있습니다.
  4. 라이선스의 상용 소프트웨어와의 상호 운용성: BSD 라이선스는 상용 및 오픈소스 소프트웨어 간의 상호 운용성을 강조합니다. Apache 2.0 라이선스도 유사한 목적을 가지고 있지만, Apache 소프트웨어 재단의 기술적 및 법적 요구에 더 적합하도록 조정되었습니다.

이러한 이유로 BSD와 Apache 2.0 라이선스는 서로 다른 라이선스로 분류되고 사용되며, 각각의 특성과 용도에 맞게 선택되어야 합니다.


참고 자료