Skip to content

Latest commit

 

History

History
40 lines (34 loc) · 6.37 KB

ThirdParty.md

File metadata and controls

40 lines (34 loc) · 6.37 KB

사용중 외부 라이브러리

FlatBuffers

OpenSSL

MariaDB Connector C

SQLite

License 종류

  • 아파치 라이선스(Apache License) 아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어에 대한 라이선스 규정이다.
  • 아파치 2.0 라이선스는 누구나 해당 소프트웨어에서 파생된 프로그램을 제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이선스 규정을 의미한다. 아파치 라이선스에 따르면 누구든 자유롭게 아파치 소프트웨어를 다운 받아 부분 혹은 전체를 개인적 혹은 상업적 목적으로 이용할 수 있으며 재배포시에는 원본 소스 코드 또는 수정한 소스 코드를 반드시 포함시켜야 하는 것은 아니고 아파치 라이선스, 버전 2.0을 포함시켜야 하며 아파치 소프트웨어 재단에 개발된 소프트웨어라는 것을 명확하게 밝혀야 한다
  • GPLv1
    • GPL의 버전 1은 1989년 1월에 발표되었다(GPLv1 전문). 이것은 자유 소프트웨어에서의 두 가지 중요한 자유를 보장해 주었는데, 하나는 프로그램의 소스 코드를 공개하지 않은 채 바이너리 파일만 배포하는 것을 막는 경우로 이것을 막기 위해 GPLv1에는 프로그램을 GPLv1로 배포할 때는 사람이 이해하기 쉬운 소스 코드를 같이 배포해야 한다는 조건이 들어갔다.
    • 두 번째 문제는 프로그램에 추가적인 제약을 걸 가능성이 있다는 점이었고, 이를 막기 위해 GPLv1 프로그램을 수정한 프로그램은 원래 프로그램과 마찬가지로 GPLv1을 따라야 한다는 조건이 들어갔다.
  • GPLv2
    • GPL 버전 2는 1991년 6월에 발표되었다(GPLv2 전문). 중요한 변경 사항은 "자유냐 죽음이냐"Section 7에 자세히 명시되어 있다. 이 내용은 GPL 프로그램을 배포하는 것을 막는 조건, 예를 들어 특허로 인하여 추가적으로 돈을 지불해야 한다거나 하는 일이 발생하여 소스 코드의 공개가 불가능하고 실행 바이너리 프로그램만 배포하려고 한다면 소스 코드 뿐만 아니라 실행 바이너리 프로그램조차 배포할 수 없도록 보완했다.
    • 그리고 1990년대에 이르러 소프트웨어 라이브러리에 대해서는 조금 약화된 GPL 라이선스가 전략적으로 더욱 유용하다는 의견이 많아졌다. 이에 대한 내용을 LGPL(the Library General Public License)이라고 하여, 1991년 6월에 발표된 GPLv2와 동시에 같이 발표되었다. 이 두 가지의 내용은 1999년 LGPL v2.1로 발전되었고 LGPL(GNU Lesser General Public License)이라고 불렀다.
  • GPLv3
    • GPL 버전 3은 2007년 6월 29일에 발표되었다.
    • 2005년 후반에 자유 소프트웨어 재단에서 GPL의 세 번째 판을 개발할 것이라고 발표했다. 2006년 1월 16일 첫 번째 초안이 발표되었다. 2판과 다른 점도 비공식적으로 나와 있다
    • 2006년 2월 25일 벨기에 브뤼셀에서 열린 FOSDEM 발표에서 리처드 스톨만은 다음과 같이 말했다.
    • 바뀐 점 중에서 가장 중요한 4가지를 말하자면, 소프트웨어 특허에 대처하는 것, 다른 라이선스와의 호환성, 어떤 부분의 원시 코드와 무엇이 GPL이 포함되어야 하는 원시 코드를 구성하는지와 디지털 제한 관리(Digital Restrictions Management)에 신경을 썼다.
    • 2006년, 자유 소프트웨어 재단은 GPL의 바뀔 수 있는 부분에 대해서 열두달간의 공공자문회를 가졌다. 이 과정에서 자유 소프트웨어 재단, 소프트웨어 자유 법률 센터, 유럽 자유 소프트웨어 재단이 의견을 조정했다.
  • GPL과 LGPL의 차이점은 다음과 같다. LGPL은 자유 소프트웨어인지 사유 소프트웨어인지 가리지 않고 (L)GPL이 아닌 프로그램에 저작물을 링크 할 수 있다(라이브러리를 이용할 수 있다)라는 점이다.그 (L)GPL이 아닌 프로그램이 2차적저작물(derivative work)이 아니라면, 어떤 조건으로도 배포할 수 있다. 2차적저작물인 경우에는, 고객 개인의 사용을 위한 변형과 그 변형을 디버깅하기 위한 리버스 엔지니어링(modification for the customer's own use and reverse engineering for debugging such modifications.)을 허용해야 한다. LGPL 프로그램을 이용한 어떤 저작물이 2차적저작물인가 아닌가 하는 것은 법적인 문제가 아니다. 하나의 완전한 실행가능한 프로그램이 동적으로 연결된 라이브러리를 사용하는 것은 2차적저작물이 아닌 것으로 간주하고 있다. LGPL의 5문단에 "라이브러리를 사용하는 작업"(work that uses the library)으로 생각할 수 있다.
  • 본질적으로 프로그램은 "LGPL로 사용된 프로그램의 새로운 버전이 나오더라도 링크가 가능해야 한다"(it must be possible for the software to be linked with a newer version of the LGPL-covered program). 이를 위해 가장 많이 쓰이는 방법은 "링크를 위해 적당한 공유 라이브러리 메커니즘"을 사용하는 것이다. 아니면, 소스 코드나 링크 가능한 대상이 함께 주어지는 경우, 정적으로 링크된 라이브러리를 사용할 수도 있다.
  • LGPL의 한가지 특징은, LGPL로 사용된 소프트웨어를 GPL로 바꿀 수 있다는 것이다 (라이선스 3장). 이 특징은 LGPL로 된 라이브러리를 GPL 라이브러리나 프로그램에서 바로 쓸 수 있어 사적인 용도로 쓰지 못하는 별도의 판을 만들 수 있다는 것이다.