본문 바로가기
IT 기술/오픈소스

오픈소스 개괄

by 크라크라 2018. 3. 13.

# 오픈 소스 시장 근황


 최근 들어서 오픈 소스 시장이 점점 더 커지고 있습니다. 2016년 기준 국내시장만 약 700억 수준인데다가 아직도 성장율이 약 30% 선을 유지하고 있으니 국내시장보다 훨씬 빠르게 움직이는 전세계 시장규모는 상당히 빠르게 증가하고 있는 것으로 보입니다. 이러한 오픈 소스 시장은 외국 대기업들이 어마어마한 돈을 쏟아부어서 선도하고 있는데, 특히 구글로 대표되는 IT 공룡들이 본인들의 사업 파트와는 상관이 없는 오픈 소스 전문 인력을 채용해서 일을 시킬 정도입니다. 


 오픈 소스를 이용하여 새로운 플랫폼을 빠르게 구축하고, 사용자와 전문가들의 참여를 유도하며, 낮은 비용으로 인한 확장 가능성을 크게 높일 수 있습니다. 그에 따라서 오픈 소스의 단점이라고 볼 수 있는 빈약한 문서를 대신하여, 기업에게 오픈 소스 관련 기술지원을 해주고 돈을 받는 업체들도 꽤 많이 생겨났습니다. 



# 오픈 소스의 두 진영 Free & Open Source


 한국에서는 사실 오픈 소스라는 명칭으로 혼용해서 부르고 있으나 실질적으로 현재의 코드 공유 경제를 이끌어가고 있는 것은 크게 두 진영으로 구분할 수 있습니다. 바로 Free Software FoundationOpen Source Initiative 라는 단체입니다. (FSF, OSI) 이 두 진영은 아주 대비되는 모습을 보여주는데, Free Software Foundation의 목적은 "사용자에게 자유를" 주는 것이었던 반면 Open Source는 "공개와 협력"이었습니다. 이것이 어떤 식으로 나타나는지는 라이센스의 사용 방식을 통해서 알아볼 수 있습니다. 


 여러분들은 모두 @CopyRight 라는 것을 아실텐데요. 맞습니다. 저작권이라는 것이지요. 사용하는 웹사이트, 프로그램, 광고, 등등 프로그램 세상에서 굉장히 흔하게 볼 수 있습니다. 카피라이트는 처음 어떤 물건이나 콘텐츠를 만들어내는 사람에게 보상을 해주는 원천이기도 하지만, 반대로 사용자들의 자유로운 사용을 가로막는 것이기도 하지요. 


 따라서 Free Software Foundation 의 설립자인 리처드 스톨만은 1985년부터 소프트웨어를 누구나 복제, 수정, 공유 및 배포를 할 수 있도록 하는 운동을 진행하고 있습니다. 통칭 CopyLeft 라고 하지요. 이들이 말하는 Free는 무료를 뜻하는 것이 아니라 '독점' 소프트웨어에 대한 반대의 뜻입니다. 누구나 알고 있는 Microsoft 사의 오피스 프로그램 같은 경우 사용에도 비용을 지불해야 하고, 마음대로 소스코드를  수정할 수 없죠. 이런 것을 독점 소프트웨어라고 합니다. 그렇다면, 누구나 마음대로 사용할 수 있고 수정할 수 있다고 보는 편이 맞겠지요. 따라서 Free Software Foundation 쪽에서는 소스 코드의 공유와 소스코드의 환원이 주요한 이슈입니다. 


 Open Source Initiative는 약간 다른데요. 기본적으로 한 사람이 느린 속도로 소프트웨어를 개발하는 것보다는 다양한 사람들의 사용 및 버그 개선이 훨씬 더 빠르고 정교한 소프트웨어를 구축할 수 있다고 믿었지요. 사실 이 개념은 1998년 캘리포니아 팔로 알토에서 개최된 콘퍼런스에서 시작되었습니다. 이 때의 참석자 중 에릭 레이몬드와 마이클 타이먼(?)은 OSI의 회장직을 맡기도 했었습니다. '백짓장도 맞들면 낫다'라는 우리 속담이 그대로 적용되는 요소라고 생각해보면 비슷할 것 같습니다. 



# FOSS의 세력 판도 변화 (Free And Open Source Software)


 이 두 진영을 통틀어서 FOSS라고 말하고 있는 추세입니다. 사실 10년전 스마트폰의 등장으로 그 어느때보다 공유, 협력의 기치가 세력을 불려가고 있는데, 그에 맞춰서 이 두 진영의 세력 판도도 달라지고 있습니다. FOSS에는 수많은 라이선스들이 있고, 우리들은 그 라이선스들이 요구하는 사항들을 지켜야 합니다. 


 크게 이 라이선스들은 GPL(General Public License) 계열과 BSD 계열로 구분할 수 있습니다. 비슷하게로는 반환 라이선스(Reciprocal License)와 허용 라이선스(Permissive License)라고 부르기도 합니다. 위에서 언급한 것으로 추측해보면 반환 라이선스들은 Free Software Foundation에서 허용 라이선스들은 Open Source Initiative 에서 관리하고 있다는 것을 알 수 있습니다. 라이선스에 어떤 식으로든 GPL 이라는 단어가 들어가 있다면 기본적으로 GPL 계열이라고 생각하시면 됩니다. 



2015년 기준 FOSS의 라이선스 점유율은 다음과 같습니다. GPL 2.0이 가장 높은 순위를 지키고 있고, 그 다음이 MIT 라이선스네요. 이 둘은 각각 반환 라이선스와 허용 라이선스들의 대표주자입니다. 

 



하지만, 옛날과의 비교를 해보면 어떨까요? 2009년에서 2015년에 이 라이선스들의 비율은 극심한 변화가 일어났습니다. 다음 그림을 보시면 지난 6년간 GPL 라이선스는 약 20%가 감소한 반면 MIT 라이선스는 약 16% 정도가 증가한 것을 확인할 수 있습니다. 이것은 스마트폰이 생기고 난 후의 관점의 변화하고도 일맥상통하는 것이지요.






# 라이선스 사용시 유의사항


 프리소프트웨어든, 오픈소스 소프트웨어든 여러 분이 소스 코드를 획득하는 것에는 아무런 문제가 없습니다. 획득하고, 수정하고, 그것을 이용해서 무엇을 만들건 상관없습니다만 중요한 것은 바로 외부에 배포할 때에 특정한 사항들을 지키지 않는다면 심각한 경제적인 문제가 발생할 수가 있습니다. 특히 개인보다도 이미 이름있는 기업이 빠른 진출을 위해서 이용하였을 경우 막대한 손해배상 또는 출시한 프로그램 또는 제품을 철수해야하는 경우도 발생할 수 있기 때문입니다. 간단하게 주의사항을 정리해보자면 다음과 같습니다. 




 (1) 이 모든 지켜야하는 사항은 외부에 배포할 때 발생합니다. 따라서 개인적인 용도로 개발했거나, 회사 내부에서만 쓴다면 전혀 해당 사항이 없습니다. (단, 납품하거나 전세계에 팔거나는 예외)


 (2) 허용 라이선스는 비교적 제약 사항이 간단해서 지키기도 쉽습니다. 하지만 반환 라이선스를 사용하게 되었을 경우에는 반드시 정확한 조건을 따져봐야 합니다. (소송이 걸릴 수 있습니다.)


 (3) 허용 라이선스와 반환 라이선스, 상용 라이선스(독점 소프트웨어)들은 혼용할 수 있습니다. 단, 라이선스끼리 허용하지 않는 것은 라이선스의 충돌이 있으므로 사용할 수 없습니다.


 바로 아래의 그림은 기본적으로 어떤 식으로 라이선스 충돌을 관리해야하는지 보여줍니다. 기본적으로 모든 라이선스는 언제나 강한 라이선스를 따라야합니다. 


  허용 라이선스 <  반환 라이선스 != 전유(독점), 상용 또는 상업용 라이선스


- 허용 라이선스는 허용, 반환(CopyLeft), 전유 라이선스에 사용될 수 있습니다.

- 반환 라이선스는 반환 라이선스에 사용될 수 있습니다. 

- 하지만 전유 라이선스와 반환 라이선스는 서로 사용이 불가능합니다.(CopyRight vs. CopyLeft)





허용 라이선스와 반환 라이선스끼리의 관계는 기본적으로는 위의 관계와 같지만, 사실은 조금 더 복잡합니다. 허용 라이선스 중에서는 다른 의무는 없지만 광고의 의무가 있는 것도 있습니다. 이런 경우에는 반환 라이선스와는 함께 사용할 수가 없지요. 마찬가지로 반환 라이선스끼리도 여러 버전이 있기 때문에 충돌이 발생하는 경우들이 있습니다. 아래 그림은 화살표대로 사용할 수 있는 방식을 뜻합니다. 


 - GPL v3 과 LGPL v2.1은 동시에 사용할 수가 없습니다.

 - GPL v2와 BSD-new 는 동시에 사용할 수 있습니다.

 - Apache 2.0과 BSD-new , LGPL v2.1은 동시에 사용할 수 없습니다.

 - Public Domain, Apache 2.0, Affero GPL v3은 동시에 사용할 수 있습니다.  




다시 정리하자면 크게 세 가지의 의무사항을 지켜주시면 됩니다. 


(1) 라이선스의 고지 + 라이선스 전문 포함

(2) 라이선스의 충돌 제거

(3) (반환 라이선스의 경우) 소스 코드의 공


 


#고지 예시 - 곰플레이어


 고지하는 방법은 각자 하기 나름입니다. 그 중에서 곰플레이어의 방식을 소개하겠습니다.

 

 곰플레이어는 FFmpeg 라는 LGPL 라이선스를 가지고 있는 소스 코드를 변경해서 사용했습니다. 또 zlib 라는 허용 라이선스 계열의 소스 코드도 사용했습니다. (그 외에 여러 가지가 있지만 생략하겠습니다.) 


 따라서 곰플레이어 프로그램 자체는 LGPL 라이선스를 가지게 되었습니다. 

그래서 곰플레이어는 

(1) 라이선스를 곰플레이어 설치 화면에서 고지하였습니다. 여기에서는 어떤 이름을 가진 소스 코드(또는 소프트웨어)를 사용했고, 어떤 사이트에 가면 받을 수 있는지, 이 소스 코드는 어떤 라이선스를 따르는지를 명시했습니다. 그리고 설치 폴더에 LGPL.TXT 라는 파일에 라이선스 전문을 포함했습니다.


(2) 라이선스끼리는 LGPL과 허용 라이선스만 사용했기 때문에 라이선스의 충돌은 없었습니다.


(3) LGPL의 경우 반환 의무가 약한 라이선스에 해당됩니다. 그래서 소스 코드를 라이브러리 형태로 바로 사용했을 경우에는 아무런 반환 의무가 없습니다만, 곰플레이어는 해당 소스 코드를 수정해서 사용했기 때문에, 수정한 부분을 인터넷 웹 사이트에 게시했습니다.





 이외의 예시 : 

  전자정부 프레임워크 : http://egovframe.go.kr 

  Sight call : https://sightcall.com/open-source-licenses/




 # 한국에서 FOSS 사용 지원받기


 오픈 소스가 점점 더 활력을 얻어가면서, 오픈 소스 사용에 대한 지원을 일정 부분해주고 있습니다. NIPA나 한국저작권위원회에서 제공하는 사이트에 들어가면 오픈 소스 사용에 대한 각종 기본적인 사항이 정리된 PDF 파일을 배포하고, Q&A 및 컨설팅을 진행해주고 있습니다. 



 정보통신산업진흥원(NIPA) : https://www.oss.kr/oss_license_qna?page=1


'IT 기술 > 오픈소스' 카테고리의 다른 글

ITEXT, PDFSharp (PDF 오픈소스)  (0) 2018.01.04
EPPlus (엑셀 Excel 오픈 소스)  (0) 2018.01.04

댓글