개인/리눅스

리눅스 주요 라이선스의 특징 및 클러스터

OmeGa2 2020. 1. 24. 18:26

라이선스란?

라이선스라는 말은 어디서든 한 번쯤 들어보셨을 텐데요

사전적인 의미로는 사용권을 말하며 리눅스 같은 소프트웨어 라이선스는

소프트웨어를 사용할 수 있는 권한이나 허가증을 말합니다.

즉 라이선스가 있어야 그 제품이나 기술을 사용할 수 있습니다.

 

라이선스는 소프트웨어 자체의 사용권을 말하기도 하며

해당 소프트웨어의 구성요소나 특정 기술을 말하기도 합니다.

 

리눅스에서 사용되는 주요 라이선스로는 BSD / 아파치 / GPL / LGPL 등

해당 라이선스마다 제공되는 응용프로그램이나 소스코드를

공개해야 한다는 등 기준이 다양하기 때문에 라이선스를 모르고

소프트웨어를 마음대로 사용하는 경우 불이익을 받을 수 있습니다.

 

 

GPL (General Public License) 라이선스

자유 소프트웨어를 추구하는 GNU 프로젝트에서 만든 라이선스인 GPL은

사용 시 저작권적으로 5가지를 의무적으로 지켜야 합니다.

 

첫 번째로 해당 프로그램은 법으로 제한되는 행위가 아닌 이상

어떠한 목적으로든 사용할 수 있습니다.

 

두 번째는 프로그램으로 만든 어떤 것이라도 소스코드와 함께

판매하거나 소스코드를 무료로 배포해야 합니다.

 

세 번째로 소스코드를 용도에 따라 변경할 수 있습니다.

 

네 번째는 변경된 프로그램에도 소스코드를 반드시 공개해야 합니다.

 

다섯 번째는 해당 프로그램으로 변경된 프로그램도 역시

같은 GPL 라이선스를 적용해야 합니다.

 

자유 소프트웨어의 취지에 맞게 GPL 라이선스가 적용된 프로그램은

판매 시에 소스코드를 함께 주거나 무료로 배포되어야 하며 수정이 가능합니다.

이후 2차 저작물 또한 소스코드는 공개되어야 하고

독점적인 소프트웨어와 결합되어선 안됩니다. (상업적인 사용불가)

 

따라서 GPL 라이선스가 적용된 프로그램의 소스코드는 모두 오픈소스로

누구나 볼 수 있고 수정할 수 있습니다.

 

 

LGPL (Library/Lesser General Public License)

GPL 라이선스의 강력한 조건에 대해 단순한 사용허가를 위한 

절충안으로 LGPL 라이선스가 만들어졌습니다.

 

대부분 소프트웨어의 라이브러리에 사용되는 LGPL 라이선스

GPL의 가장 큰 차이점은 독점 소프트웨어에서도 사용이 가능하다는 것입니다.

GPL은 자유 소프트웨어에서만 적용할 수 있었으나

LGPL은 자유 / 사유 소프트웨어 모두에게 적용할 수 있습니다.

 

다만 LGPL 이 적용된 라이브러리가 수정되었을 경우에는

2차 저작물이 되어 소스코드를 공개해야 합니다.

또한 GPL -> LGPL 라이선스 변경은 가능하지만

반대로 LGPL -> GPL 라이선스 변경은 할 수 없습니다.

 

 

BSD 라이선스

공공기관에서 만들어진 BSD 라이선스는 저작권이라고 하기도 

애매할 정도로 미약하며 누구나 수정할 수 있고 배포할 수 있습니다.

 

GPL과 가장 큰 차이점으로는 BSD 라이선스를 가진 소프트웨어로

상용 소프트웨어에서도 사용할 수 있습니다.

프로그램이나 소스코드를 공개하지 않아도 무방합니다.

 

아무런 제약 없이 누구나 사용할 수 있으며 만들어진 프로그램이나

소프트웨어는 개인에게 돌려주자는 의미가 강합니다.

따라서 2차 저작물의 소유권은 본인에게 있으며 사유로 사용할 수 있습니다.

 

하지만 자유롭게 사용할 수 있는 만큼 사용으로 인해 발생되는

모든 리스크나 손해에 대한 책임 또한 사용자에게 있으니

무분별하게 사용할 경우 불이익이 발생할 수도 있습니다.

 

 

아파치 라이선스

아파치 소프트웨어 재단(ASF)에서 자체적으로 만들어진 

아파치 라이선스 또한 BSD와 마찬가지로 누구나 사용할 수 있습니다.

 

개인이나 상업적 목적으로 아파치를 다운로드하여 사용할 수 있으며

이후 수정된 2차 저작물이나 소스코드 또한 공개할 필요는 없습니다.

 

만약 재배포를 하고 싶다면 똑같이 아파치 라이선스가 적용해야 되며

아파치 라이선스가 적용된 소프트웨어로 만든 프로그램의 개발자는

사용자에게 특허권을 행사할 수 없습니다.

즉, 비공개가 가능한 소스코드를 공개해놓고 다른 사용자가 해당 소스코드를

사용할 경우 자신의 특허권을 침해했다고 말할 수 없습니다.

 

다만 다른 사용자가 소스코드를 사용할 경우

같은 아파치 라이선스를 포함시켜야 합니다.

 

 

MPL (Mozilla Public License) 라이선스

모질라 재단에서 만든 라이선스로 BSD와 GPL 라이선스가 혼합되어 있습니다.

 

MPL의 소스코드를 사용하거나 수정했다면 반드시 

오픈소스로 공개되어야 합니다. 

하지만 만약 다른 소스코드와 결합해서 만든 경우에는

MPL코드만 공개하며 다른 코드는 공개하지 않아도 무방합니다.

 

 자체 개발한 코드나 다른 소스코드와 MPL코드의 비율이 9:1이라도

MPL코드의 비율인 1만 공개하면 아무런 문제가 없습니다.

 

이는 firefox나 모질라재단에서 만들어진 여러 프로그램에

적용되어있으며 소스코드와 실행파일의 저작권이 분리되어 있습니다.

실행파일의 저작권은 개발자 본인에게 있으며 실행파일에 대해서는

개발자가 독점 라이선스를 가질 수 있습니다.

 

MIT 라이선스

가장 느슨한 조건을 가진 라이선스 중 하나입니다.

해당 소프트웨어를 공부하는 학생들을 돕기 위해 만들어진 라이선스로

BSD 라이선스를 기초로 작성되었기 때문에 BSD와 유사한 성격을

가지고 있으며 라이선스와 저작권 관련 명시만 지켜주면 됩니다.

 

MIT라이선스가 적용된 소프트웨어는 누구나 수정할 수 있고

수정된 소스코드는 재배포 시에 비공개가 가능합니다.

 

GNU의 엄격한 규정을 피하기 위한 사용자들에게 인기가 많으며

대표적으로 X window와 JQuery 등이 있습니다.

 

 

 

 

 

리눅스의 클러스터 (Cluster)

리눅스에서 클러스터는 대부분 서버 분야에서 사용되며

그 의미로는 여러 대의 컴퓨터를 연결해서

하나의 컴퓨터를 사용하는 것처럼 구성된 시스템을 말합니다.

 

사용하는 목적에 따라 클러스터의 종류가 총 3가지로 나뉩니다.

 

 

고계 산용 클러스터 (HPC)

주로 과학계산용으로 사용되는 HPC는 슈퍼컴퓨터의 구성으로

많이 사용되며 '베어울프 클러스터'라고도 부릅니다.

 

보통 스위치/허브 역할을 하는 장비가 한대 있으며

그 아래 여러 대의 node(장비)가 연결되어 있습니다.

이는 하나의 큰 작업을 여러대의 병렬컴퓨터가 나눠서 작업이 이루어지며

컴퓨터 한 대로 작업하는 것보다 아래 node의 수에 따라

작업시간이 단축되어 고성능의 효율을 만들어낼 수 있습니다.

 

 

부하분산 클러스터 (LVS)

LVS는 보통 Linux Virtual Sever로 불리며 이는 말 그대로

가상의 서버를 의미합니다.

 

대규모 서비스를 제공하기 위해 사용되며 이용자가 많은

대형 웹사이트에 가장 많이 사용하는데요 

보통 대규모 서비스의 경우 서버를 여러 개 두고 관리하게 되는데

여러 개의 서버에 균일하게 사용자들이 접속하기 위해 사용됩니다.

 

사용자의 컴퓨터는 웹사이트에 접속할 때 로드밸런서를 통해 접속하며

로드밸런서 아래 실제 서버들을 여러개 두고 

하나의 서버에 사용자가 몰리지 않도록 로드밸런서가 관리합니다.

 

 

고가용성 클러스터 (HA)

지속적인, 장기적인 서비스 제공을 목적으로 사용하는 클러스터입니다.

 

LVS에서 사용자를 여러 개의 실서버에 균일하게 배포시키는

로드밸런서에 만약 문제가 생길 경우, 실서버에는 이상이 없더라도

서버의 정상적인 서비스를 제공하지 못하게 됩니다.

 

대규모 서비스에 갑자기 서비스가 중단될 경우

대형사고로 이어지며 서비스 운영자는 막대한 손해를 보게 됩니다.

이를 방지하기 위해 LVS에서 HA와 연동되어 많이 사용됩니다.

 

HA는 LVS의 로드밸런서에 다른 하나의 backup node를 연결시켜 상태를 관리하는데

만약 로드밸런서에 이상이 발생할 경우 backup node에서

작업을 그대로 이어받아 서비스를 진행합니다.