데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

[빅데이터 실시간 처리와 분석] 실시간 오픈소스에는 어떤 것이 있는가 (1)

데이터 이야기
작성자
dataonair
작성일
2015-07-17 00:00
조회
6123


[빅데이터 실시간 처리와 분석] 실시간 오픈소스에는 어떤 것이 있는가 (1)



지난달 연재를 시작한 후 미국에서 열린 하둡 컨퍼런스 참석을 위한 출장과 여러 가지 행사로 이번 글이 조금 늦어졌습니다. 하둡 컨퍼런스에서 좋은 내용이 많았는데 그와 관련된 내용은 중간중간 언급하도록 하겠습니다.

지난 시간에는 왜 실시간 처리/분석을 해야하는 지와 오픈소스에 환경에서 정의하는 실시간이 어떤 것인지 다루었습니다. 오늘부터 3~4회에 걸쳐서 오픈소스란 무엇인지, 실시간 오픈소스에는 어떤 것이 있는지, 그리고 각각의 특징은 어떻게 되는지 알아보아 필요한 오픈소스를 선택하시는데 도움이 될 수 있도록 하겠습니다.

빅데이터라는 단어가 많이 나오면서 오픈소스에 대한 언급도 많아지고 있는데 ‘실시간 오픈소스’를 알아보기 전에 ‘오픈소스’라는 것 자체에 대한 이해가 필요합니다. 오픈소스란 간단하게 특정 소프트웨어의 코드를 누구나 볼 수 있도록 공개(오픈)되어 있는 것을 의미합니다.

일반적으로 코드가 공개 되어있기 때문에 오해하기 쉬운데 코드가 공개되어 있다라는 것은 해당 소프트웨어가 무료이거나 코드를 무단으로 복제하여 상업용으로 쓸 수 있다는 것을 의미하지는 않습니다. 오픈소스라는 것은 말 그대로 소프트웨어 코드가 공개되어 있다는 것이지 다른 권리까지 명시하지 않았기 때문입니다.

인터넷에는 많은 글들이 공개되어 있지만 어떤 인터넷 기사를 보면 ‘무단 복제 또는 상업용 사용 금지'라는 표시가 되어 있는 경우가 있고 개인 블로그에서는 ‘불펌 금지’ 혹은 ‘무한 공유’처럼 다양한 권한을 주고 있습니다. 이와 같이 내용은 공개하되 권리는(라이선스) 제각각 정의하고 있습니다. 그렇다 보니 인터넷에 있는 자료를 이용할 때 복사해도 되는지, 영리목적으로 활용해도 되는지 애매할 때가 있습니다. 그래서 아래와 같이 표준 가이드를 만들기도 합니다.

dbin_421.jpg

그림. Creative Commons License (출처: http://www.cckorea.org/xe/ccl)

위에서 말씀 드린 것과 같이 오픈소스도 마찬가지 입니다. 코드는 공개되어 있지만 다른 권한까지 허용한 것은 아닙니다. 그래서 다양한 제약이 걸리기도 하는데 오늘날의 오픈소스 열풍이 불게 된 가능하게 한 것은 이러한 제약을 최소화한 아파치 재단과 아파치 라이선스(Apache License) 입니다. 아파치 재단 관리하에 개발자의 자발적인 기여를 통해 오픈소스를 체계적으로 관리해주고 아파치 라이선스를 이용하여 (아파치 라이선스 언급만 한다면) 수정 배포가 매우 자유롭습니다.



아파치 라이선스(Apache License)
아파치 소프트웨어 재단에서 자체적으로 만든 소프트웨어에 대한 라이선스 규정이다.

아파치 2.0 라이선스는 누구나 해당 소프트웨어에서 파생된 프로그램을 제작할 수 있으며 저작권을 양도, 전송할 수 있는 라이선스 규정을 의미한다. 아파치 라이선스에 따르면 누구든 자유롭게 아파치 소프트웨어를 다운 받아 부분 혹은 전체를 개인적 혹은 상업적 목적으로 이용할 수 있으며 재배포시에는 원본 소스 코드 또는 수정한 소스 코드를 반드시 포함시켜야 하는 것은 아니고 아파치 라이선스, 버전 2.0을 포함시켜야 하며 아파치 소프트웨어 재단에 개발된 소프트웨어라는 것을 명확하게 밝혀야 한다.

출처: 위키피디아



아파치 소프트웨어 재단(Apache Software Foundation, ASF)
아파치 HTTP 서버를 포함한 아파치 소프트웨어 프로젝트를 지원하는 비영리 재단이다. 1999년 6월 아파치 그룹과 미 델라웨어사와 합쳐 이루어졌다.

아파치 소프트웨어 재단(이하 재단)은 개발자들의 분산 커뮤니티이다. 그들이 개발하고 있는 소프트웨어는 아파치 라이선스 조항 아래 배포되고 자유 소프트웨어/오픈소스 소프트웨어이어야 한다. 아파치 프로젝트는 공동 제작과 합의에 기반한 개발 프로세스와 오픈 되고 실용적인 소프트웨어 라이선스라는 특징으로 규정된다. 각각의 프로젝트는 프로젝트에 공헌자로 활동하는 기술 전문가들로 구성된, 자발적으로 참여하는 팀에 의해 관리된다. 재단은 능력 위주 사회로, 재단의 멤버십은 아파치 프로젝트에 적극 활동에 기여하는 지원자들에게만 부여된다.

출처: 위키피디아



최근 열풍이 불고 있는 빅데이터의 오픈소스들의 상당 수가 이 아파치 라이선스를 따르고 있고 그 중에 성장 가능성이나 성숙도가 높은 프로젝트들은 아파치 재단에 의해서 관리되고 있습니다. 아래에 그림은 현재 아파치 재단에서 관리되고 프로젝트로써 백엔드 레이어부터 프론트엔드 레이어까지 매우 다양합니다. 게다가 아래의 그림은 아파치 프로젝트중에 완성도 높은 프로젝트만 선별해놓은 것이고 더 많은 프로젝트들(약 350 여 개)이 있습니다.

dbin_422.jpg

그림. 아파치 프로젝트 현황(출처: http://www.apache.org/)

또한, 자발적으로 아파치 라이선스를 채택하여 깃허브(github, https://github.com/)와 같은 코드 공유 사이트 등에 공유하는 프로젝트까지 고려한다면 셀 수 없이 많습니다. 참고로 아파치 프로젝트의 대부분은 이 깃허브에 코드가 공개되어 있습니다. 여기에서 깃(git)은 소스 관리에 사용되는 협업 도구로써 코드 관리 뿐만 아니라 사용자간 의사소통을 위한 도구로도 사용이 됩니다. 이와 비슷한 것으로는 cvs, svn이 있습니다. 깃 사용법을 익히기 위해서는 다음 한글 자료를 참고하시면 좋습니다. (https://github.com/progit/progit/tree/master/ko)

이와 같이 개발자들의 자발적인 기여에 의해서 기술이 전파되고 집단 지성을 통해서 기술이 성숙되고 있기 때문에 지금의 빅데이터 열풍이 가능하게 되었습니다. 참고로 olis에서 (https://www.olis.or.kr/ossw/license/compareGuide.do) 아파치 라이선스 외에 다른 라이선스에 대한 비교 자료를 확인하실 수도 있습니다.

dbin_423.jpg

그림. 라이선스 비교표 (출처: olis)

지금까지 ‘오픈소스’에 대해서 알아보았습니다. 다음 시간에는 ‘실시간’을 위한 ‘오픈소스’에 대해서 이야기하도록 하겠습니다. 아직은 연재 초반부라 개론적인 이야기가 많고 실제 적용하기 위한 디테일한 내용이나 실사례는 언급하지 않았습니다. 긴 호흡을 가지고 지켜봐 주시기 바랍니다.



출처 : 한국데이터베이스진흥원

제공 : 데이터 전문가 지식포털 DBguide.net