라이선스

기술노트

📜 라이선스 (License)

소프트웨어 라이선스는 저작권자가 다른 사람들에게 해당 소프트웨어를 어떤 조건 하에서 사용, 수정, 배포할 수 있는지를 명시한 법적인 계약 또는 허가서입니다. 특히 오픈소스 소프트웨어를 사용할 때는, 각 라이선스의 특징과 의무 사항을 정확히 이해하는 것이 매우 중요합니다.


📚 주요 오픈소스 라이선스 종류

오픈소스 라이선스는 크게 '허용적인(Permissive) 라이선스'와 '카피레프트(Copyleft) 라이선스'로 나뉩니다.

  • 허용적인 라이선스 : 소스 코드 공개 의무 없이, 누구나 자유롭게 사용, 수정, 배포할 수 있는 매우 관대한 라이선스입니다.

> * `Apache License` : 아파치 재단에서 사용하는 라이선스. 특허권에 대한 내용이 포함되어 있습니다. > * `MIT License` : 가장 제약이 없고 이해하기 쉬운 라이선스 중 하나로, 매우 널리 사용됩니다. > * `BSD License` : MIT 라이선스와 유사하지만, 저작권자의 이름을 광고에 사용하지 못하도록 하는 조항 등이 있습니다.

  • 카피레프트 라이선스 : 원본을 수정하여 2차 저작물을 만들 경우, 그 2차 저작물도 반드시 동일한 라이선스로 소스 코드를 공개해야 한다는 '전염성' 조항이 있는 라이선스입니다.

> * `GPL (GNU General Public License)` : 가장 대표적인 카피레프트 라이선스. GPL 코드를 사용한 소프트웨어는 반드시 전체 소스 코드를 GPL로 공개해야 합니다. (강한 카피레프트) > * `LGPL (GNU Lesser General Public License)` : GPL의 전염성을 완화한 라이선스. LGPL 코드를 라이브러리 형태로 동적 링크하여 사용할 경우, 내가 만든 애플리케이션의 소스 코드는 공개하지 않아도 됩니다. (약한 카피레프트) > * `MPL (Mozilla Public License)` : LGPL과 유사하게, 파일 단위의 소스 코드 공개를 요구합니다.


💡 개발자 핵심 Point

  • 오픈소스를 사용하여 상업용 제품을 개발할 때는, 라이선스 준수 여부가 법적인 문제로 이어질 수 있으므로 매우 신중해야 합니다.
  • 특히 GPL 계열의 라이선스를 사용할 때는, 우리 회사의 소중한 소스 코드를 의도치 않게 공개해야 하는 상황이 발생할 수 있으므로 반드시 법무팀이나 전문가의 검토가 필요합니다.
  • 새로운 프로젝트를 시작할 때, 어떤 오픈소스 라이브러리를 사용할지 결정하는 단계에서부터 해당 라이선스를 미리 확인하는 습관이 중요합니다.
  • 내가 만든 코드를 오픈소스로 공개할 때도, 어떤 라이선스를 적용할지 신중하게 선택해야 합니다. 다른 사람들이 내 코드를 어떻게 사용하기를 바라는지에 따라 적절한 라이선스를 선택해야 합니다.