빅데이터(Big Data)의 불편한 진실

빅데이터와 관련한 포스팅은 그만 쓴다고 하고서는 또 빅데이터에 대한 글을 쓰게 되었습니다.

게다가 제목마저 개그 프로의 제목처럼 “불편한 진실” 이라니.

네 맞습니다. 빅데이터에 대해서 혹시나 너무 많은 기대를 하고 있거나 혹여나 이와 관련하여 과제나 지시를 받고 당장 무언가를 해야만 하는 분들에게 드리는 제 “개인적” 견해에 대한 글을 쓰고자 합니다. 특히 최근 국내에서 여기저기 빅데이터라는 말이 나오면서 이건 아닌데 하는 생각도 들고 더 정확히는 현실은 좀 똑바로 봐야 하지 않을까 하는 생각에서 제 나름의 견해를 쓰고자 합니다. 사실 제가 작년 12월에 쓴 “누구나 다 아는 대용량 데이터 분석 기술” 라는 포스팅에서도 어느정도 언급을 했고 지난번 포스팅인 빅데이터에 필요한 역량에 대한 글을 보시면 아시겠지만 소위 빅데이터라고 하는 것을 한다는게 그렇게 쉬운 것이 아닙니다. 더욱이 아무데나 빅데이터라는 말을 붙이는 것도 아니라고 생각됩니다.

그런데 작년 가을부터 시작해서 여러 기술 컨퍼런스, 벤더들의 기술 세미나에서는 “빅데이터” 라는 말이 쉽게 인용되고 회자되는 것 같습니다.  한동안 클라우드 컴퓨팅이라는 말로 시끄럽더니 어느새 이와 더불어 빅데이터라는 말을 여기저기 인용하고 있습니다. 재밌는 것은 빅데이터 분야에 대해서도 무턱대고 클라우드 컴퓨팅이라는 말을 가져다 붙이더니 이제는 빅데이터라는 말을 여기저기 가져다 붙이고 있습니다.

빅데이터에 대해서 생각해보기전에 우선 스스로에게 이러한 질문을 해보는 것은 어떨까요?

“내가 몸담고 있는 회사에 또는 내가 하고자 하는 사업에 있어서 빅데이터를 가지고 있는가?”

“빅데이터라고 할만큼 큰 데이터는 아니지만 빅데이터와 관련된 기술을 활용해서 가치를 얻어낼 수 있는 유즈케이스나 사업의 요구사항이 있는가?”

그전에 다음과 같은 생각을 해보셨나요?

“지금 자신들이 가지고 있는 데이터를 활용해서 사업에 제대로 활용은 하고 있었는가?”

아니, 더 간단하게

“꼭 빅데이터이어야 하는가?”

그럼 또 다른 질문을 해볼까요?

도대체 국내의 유수의 빅데이터 솔루션 벤더들은 어디에다가 어떻게  자신들의 솔루션을 팔 생각들을 하고 있는 걸까요? 게다가 하둡(Hadoop)  관련한 엔지니어는 정작 국내에는 관련 인력들이 별로 있지도 않은 상황에서 말이죠.

해외, 특히 미국에서의 빅데이터 시장은 분명 하둡과 그 기술을 가진 회사들이 중심이 되어서 돌아가고 있습니다. 그런데 국내는 어떤가요? 이제 많은 분들이 하둡이라는 것과 기본적인 기술에 대한 이해들을 가지고들 있습니다. 하지만 이를 능수능란하게 다루고 실제로 이러한 기술과 마이닝 기법들을 제법 큰(?) 데이터에 적용해서 활용하는 회사가 몇이나 있다고 생각하나요?

그렇다면 자연스럽게 다음과 같은 의문을 가져볼만합니다.

지난 번 포스팅에서도 말씀드렸지만 국내에서 정말 빅데이터라고 할만한 데이터를 저장하고 다루는 회사가 몇이나 있을까요?

테라바이트급 데이터를 처리하고 그로부터 의미있는 데이터를 만들어내고 사업에 활용하는 경우는 얼마나 될까요?  그럼 페타바이트급은?

구글, 페이스북, 야후, 트위터등이 말하는 수억명의 사용자, 수백억건의 웹문서에 대한 정보를 긁어모으고 이를 이용해서 광고에 활용할만큼 기술력과 데이터를 확보하고 있는 회사가 국내에 몇이나 있기는 할까요?

수천대의 하둡 클러스터는 고사하고 수백대 규모의 클러스터를 구축해서 데이터를 구축하고 활용하고 있는 회사가 국내에 있다고 생각하세요? 아니 수십대 규모의 클러스터들은 가지고들 계신가요?

이러한 질문에 여러분들은 몇개의 국내 회사가 떠오르시나요?

당장 제 머리속에 떠오르는 회사는 네이버, 다음, 네이트, SKT, KT, 삼성전자 정도입니다.

물론 스마트 그리드, 바이오인포매틱, 기상예측, 과학분야에서는 이미 많이들 사용하고 있을거라고 추측도 하고 관련된 분들이 많은 관심들을 가지시고 있다고 알고 있습니다만,  비지니스라는 관점 특히 기업 시장이라는 측면에서 본다면 국내에서는 역시나 매우 제한적이긴 합니다.

이러한 이유 때문에 저는 하드웨어업체들, DW업체들, 데이터 마이닝업체들, 소셜미디어(?) 솔루션 업체들 등이 요즘 습관적으로 빅데이터라는 말을 붙여서 활동하는 것에 대해서 다소 거부감이 있습니다. 머랄까 혹세무민? 이거 적당한 말인지 모르겠습니다만 아무튼 가트너 자료에 의하면 포춘500대기업 85%가 빅데이터 활용에 실패할 것이라고 예상하고 있다고도 하니 신중하게 빅데이터에 대해서 접근하셨으면 합니다.

물론 이러한 다양한 활동이나 마케팅이 시장을 키우고 사람을 키우고 기술을 성장시키게 하는 긍정적인 측면이 없다고는 말할 수 없겠지만, 실질적인 기술의 축적이나 기술 인력 양성을 이끌어나갈 것이라고 낙관하지도 않습니다.

얘기가 다른 곳으로 새는 것 같지만 사람에 대한 얘기를 좀더 해보면, 앞서 포스팅한 빅데이터를 하기 위해서 필요한 역량이라는 것이 결코 빅데이터만 필요한 역량이 아닙니다. 그 자체가 소프트웨어를 제대로 이해하고 개발할 수 있는 역량입니다.

그래서 빅데이터라고 하는 것을 통해서 좀더 근본적인 수학이나 알고리즘, 프로그래밍, OS , 네트워크등에 대해서 더욱 관심을 가지게 되고 이러한 역량을 갖춘 소프트웨어 인재들이 많이들 나올 수 있게 되는 계기가 되었으면 하는 바램입니다.

글을 쓰다보니 저를 포함해서 국내의 많은 소프트웨어 개발자들은 여전히 외국 벤더가 제공하는 플랫폼, 툴, SDK에 의존해서 조립식 제품을 만들어버리는 기능공이 되어버린것은 아닌가 하는 생각이 또 드네요.  이미 많이 알려진 사실이지만 국제기능올림픽에서 늘 우수한 성적을 내는 국내 기술자들이 대접을 제대로 못받고 있죠. 저는 그 원인중 하나가  결국 기반기술이 아닌 그네들이 제공하는 표준플랫폼(선반,lathe)위에서 밖에 일할 수 없는 단순 기능공으로 취급받게 되버리는 현실과 크게 다르지 않다는 생각을 하곤 합니다. 즉 인력의 대체가 도구가 좋아질 수록 쉬워지기 때문입니다. 이건 제가 종종 주위에 얘기하는 “선반론” 인데요. 물론 이들도 제대로 대접받아야 하겠지만 현실은 그렇게 녹녹치 않잖아요. 같은 관점에서  현재 국내의 소프트웨어 개발자라고 해서 크게 다르지 않죠.

빅데이터라고 하는 분야는 이러한 측면에서 분명 소프트웨어 개발자들에게는 새로운 기회가 될 것입니다. 하지만 이것도 시간이 많이 남질 않았습니다. 점점 쓰기 쉬운 도구들이 이미 나왔고 더욱 좋은 도구와 솔루션들이 나오게 될 것입니다.

그래서 더욱 데이터(꼭 빅데이터가 아니여도 상관없습니다) 라고 하는 것을 제대로 이해할 수 있는 역량 (데이터 과학자)  또는 그 데이터 프로세싱을 효과적으로 프로그래밍하고 운영할 수 있는 기술과 노하우(Devops) 를 갖추는 것이 중요하다고 다시 한번 말씀드리고 싶네요.

 

Posted in IT | 댓글 9개

빅데이터를 하기 위해서는 어떤 역량이 필요한가? 데이터 과학자(Data Scientist) 그리고 Devops

지난 포스팅을 마지막으로 빅데이터에 대한  글은 그만 쓸까 했는데 사람에 관한 얘기, 즉 빅데이터를 하기 위해서 필요한 인력, 역량에 대한 얘기가 쏙 빠져 있었네요. 기술이라는 것이 결국 사람에 의해서 수행되고 발전해 나가는 것일텐데 말이죠. 그래서 다시한번 빅데이터와 관련한 포스팅을 한번 더 하기로 했습니다.

1. 데이터 과학자 (Data Scientist)

빅데이터라고 하면서 최근 데이터 과학자라는 새로운 직업이 생겼습니다. 2009년도에 Beautiful Data 라는 책을 보면서 처음 이러한 용어를 접하게 되었는데 작년 말부터 해외의 빅데이터 관련 컨퍼런스등에서 이러한 직업군에 대한 소개와 더불어 미국에서는 관련한 교육과정등도 생겨나고 있는 것 같습니다.

통계학자, 데이터 마이너, CRM전문가 등 해서 유사한 직종이 있지만 데이터 과학자라는 직군은 통계, 데이터마이닝, 머신 러닝등 데이터 분석에 대한 기초적인 지식과 더불어 프로그래밍 기술을 함께 갖춘 인력을 생각하시면 될 것 같습니다. 좀더 자세히 설명하자면  데이터를 분석하고 이를 통해서 패턴을 찾아내고 추천, 추정, 예측 모델링을 함으로써 인터넷 비지니스 같은 경우에는 서비스에 활용할 수 있는 추천 엔진을 만들어내거나 전력선 분석을 분석해서 보다 효과적인 전력 분배 (스마트 그리드라고들 말하죠) , 생산 공정상의 각종 센서등에서 발생하는 데이터를 수집해서 수율을 예측하거나 해서 문제점을 미연에 방지해서 수율을 높일 수 있도록 하는 업무등 다양한 도메인에 적용될 수 있는 데이터 프로세싱 알고리즘과 마이닝, 통계적 기법등을 활용할 수 있는 역량을 갖춘 사람들을 데이터 과학자라고 할 수 있습니다.

이를 위해서 빅데이터를 처리할 수 있는 하둡과 같은 분산컴퓨팅과 관련 도구 (pig, hive 등) 및 스크립트 언어등도 자유자재로 활용하고 특히 강조되는 것은 각 도메인에서 요구하는 니즈를 이해하고 이에 맞추어서 분석하고 모델링 할 수 있는 커뮤니케이션 스킬이 매우 중요하다고 할 수 있습니다.

이런 측면에서 데이터 과학자는 서비스 또는 제품에 직접적인 영향을 미치는 위치에 있는 만큼 이러한 서비스(도메인)에 대한 이해 역시 충분히 할 수 있어야 하겠습니다. 이런 친구들을 도대체 어디서 구하거나 교육을 시킬 수 있겠어 하겠지만 제 주위에 젊고 유능한 소프트웨어 개발자들 중에는 이러한 역량을 갖추고 일하는 분들이 몇몇 있습니다.

기존의 어플리케이션이나 시스템 소프트웨어 엔지니어와는 좀 구별되지만 제 생각에는 소프트웨어 개발자인 분들이 데이터 과학자로써 성장할 수 있는 게 더 쉽다는 생각을 하게 됩니다. 특히 마이닝이나 머신 러닝관련해서는 관련 지식에 대한 백그라운드를 갖추게 된다면  소프트웨어 개발을 하신 분들이 통계나 데이터 마이닝쪽을 전공하신 분들보다 좀 더 유리할 것으로 생각되네요. (가재는 게편인가요? ^^)

정리하면 데이터 과학자는 programming, Information Retrieval, machine learning, prototyping, big data technology (pig,hive,hadoop), data mining, recommender system, visualization 과 더불어 communication skill 까지 요구하고 있습니다. 솔직히 과학자인지 슈퍼프로그래머인지 구별이 잘 안가긴 합니다만…

아래의 링크는 링크드인의 Senior Data Scientist 와의 인터뷰입니다. 한번 일독을 권합니다.

http://www.forbes.com/sites/danwoods/2011/11/27/linkedins-monica-rogati-on-what-is-a-data-scientist/

2. Devops = Developer + Operator

데이터를 다루는 분야에서 필요로 하는 데이터 과학자와 같은 역할과 더불어서 함께 등장하는 또다른 방법론, 역할이 최근 회자되고 있습니다. 바로 Devops 라는 것인데요. Developer (소프트웨어 개발자) 와 operator (시스템 운영자)의 역할을 둘다 할 수 있는 또는 조율할 수 있는 역할과 방법론에 대한 것을 Devops 라고들 말하고 있습니다.  작년에 가을쯤 이 단어를 처음 듣게 되어서 이건 또 뭐지 하고 찾아보고 나서 정말 개발자든 운영자든 IT하는 사람은 정말 먹고 살기 힘들겠다는 생각을 했습니다.

결국 소프트웨어 개발, 품질관리 그리고 운영을 아울러 관리하고 이를 조율할 수 있는 역량을 조직내에 키우자는 얘기인데 애자일 방법론을 소프트웨어 개발의 영역뿐 아니라 이렇게 개발된 소프트웨어를 애자일하게 구축하고 운영할 수 있는 체계를 갖추어 나갈 수 있도록 하는 하자는 취지에서 나온 거겠죠.

이를 위해서 개발자에게는 시스템에 대한 것을 가르치고 시스템 운영자에게는 프로그래밍을 익히게 함으로써 설계, 개발, 구축 , 운영에 이르는 사이클을 단축하면서 동시에 소프트웨어, 운영 품질을 확보하겠다는 것이겠죠.

그렇다면 왜 갑자기 이러한 역할과 역량을 더욱 강조하게 된 것일까요?

그 전에 전통적인 IT 조직에서의 소프트웨어 개발과 구축에 대해서 생각해보도록 하죠. 여전히 많은 기업들은 초기 요구사항을 정리해서 개발팀에서는 상위설계, 상세설계를 거친 후 개발에 본격적으로 착수하고 이렇게 개발이 완료된 결과물은 QA팀을 통해서 품질검증을 받게 되면 시스템 운영쪽에서는 시스템에 설치 구축하고 운영하게 되는 소위 폭포수 모델이라는 방법론으로 소프트웨어 개발과 구축, 운영이 이루어지고 있습니다.

더불어 많은 소프트웨어 개발자들은 정해진 데이터베이스와 어플리케이션 프레임워크상에서 주어진 요구사항에 맞는 영역만 개발을 하고 맡은 모듈을 딜리버리하는 것으로 자신들의 역할을 다하는 경우가 많고 서버 시스템에 데이터베이스 설치, 어플리케이션 서버 설치, 각종 서비스 프레임워크 자체의 설치와 최적화에 대한 부분은 각각의 프레임워크 또는 서버 벤더들의 엔지니어에 의해서 별도로 수행되고 있는 것이 현실입니다. 어느 개발자는 자신이 사용하는 어플리케이션서버 , 데이터베이스 설치를 할 줄 모르는 경우도 있습니다. 해당 시스템 엔지니어가 서버에 관련 모듈을 설치해주기전까지는 자신이 개발한 모듈을 제대로 테스트하지 못하는 상황도 발생하는 것이죠. 금융 부문등의 대형 SI 프로젝트에서는 이러한 일들이 실제로 벌어집니다.  이러다보니 자신이 개발한 모듈에 대한 충분한 테스트와 검토가 정확하게 이루어지지 않게 되기도 하게 됩니다. 물론 시스템의 규모가 커서  수십, 수백명이 투입되는 소프트웨어 프로젝트인 경우에는 이러한 명확한 역할 분담과 체계가 매우 중요하겠지만요.

하지만 잦은 변경과 서비스 업데이트를 해야 하는 인터넷 비지니스와 같은 경우에는 이렇게 프로젝트를 하게 된다면 매우 심각한 리소스 낭비와 품질 문제가 발생할 수 밖에 없게 됩니다. 따라서 잦은 서비스 릴리즈에도 견딜 수 있는 릴리즈 관리와 소프트웨어 품질 확보를  Devops 라는 역량을 갖춤으로써 강화하고자 하는 것이 큰 목적중에 하나라고 생각됩니다.

다시 말하면 시스템 운영자 , 시스템 엔지니어 입장에서는 서버시스템뿐 아니라 그 위에서 실행되는 다양한 데이터베이스, 웹프레임워크등에 대한 지식이 함께 수반되고 심지어 그 위에서 실행되는 어플리케이션에 대한 이해도 요구되는 것입니다. 마찬가지로 개발자들도 자신들이 개발한 모듈과 어플리케이션에 대한 지식 뿐 아니라 자신들이 실행되어야 할 시스템 환경, 특히 여기서는 클라우드 컴퓨팅 환경에 대한 추가적인 지식이 필요하게 된 것이죠. 이러다보니 이러한 접점에서 효율적으로 업무를 조율하고 리소스를 관리하고 보다 빠르게 개발에서 검증, 설치, 운영에 이르는 프로세스를 자동화하고 최적화할 수 있는 역량과 체계가 요구되고 있기에 DevOps 라는 역할과 방법론이 등장했다고 생각됩니다.

제가 빅데이터에 대한 얘기를 하면서 이 Devops 에 대해서 언급하는 것은 실제 빅데이터를 수행하기 위한 인프라 라는 것이 수십, 수백대 심지어 수천대 이상의 서버와 네트워크 장비들 또한 그 위에 설치된 리눅스 운영체계 뿐 아니라 다시 그 위에서 동작하는 자바 가상머신 , 하둡 프레임워크에 대한 지식에서과 더불어 cron, shell, programming 에 이르는 온갖 시스템 운영상의 노하우가 어우러져야 되는 것이기 때문입니다.

결국 빅데이터라는 것이 시스템에서부터 데이터를 다 아울러 다루는 것이기에 데이터 과학자 , Devops와 같은 인력과 역량이 모두 갖추어져야 제대로 수행될 수 있는 일이라고 생각됩니다.

너무 힘들겠죠? ^^

Posted in IT | 댓글 9개

빅데이터(Big Data) 솔루션 업체간의 관계와 하둡(Hadoop)기반의 스타업들

빅데이터와 관련해서는 확실히 관심들이 있으신 것 같습니다. 기술적으로 어렵고 이와 관련해서 업무를 하는 분들이 분명 제한되어 있는 국내에서 게다가 거의 포스팅을 하지 않는 제 블로그에도  꾸준히 빅데이터로 검색해서 들어오시는 분이 매일 100명 남짓 있는 것을 보면 빅데이터에 대한 관심이 얼마나 큰 지 알 수 있게 되었습니다.

아래 그림은 전통적인 BI,DW 기존 솔루션업체들이 협력하고 있는 하둡 솔루션 업체와의 관계를 간단히 정리해 본 것입니다. 보통 하둡시장에서는 대표적으로 Cloudera 와 Hortonworks 두 업체를 들지만 최근 엔터프라이즈 시장의 니즈에 맞게 하둡을 개선한 MapR 역시 주목을 받고 있습니다.

하둡의 코어에 대한 기술력과 차세대 아키텍쳐 개선등은 야후!에서 분사한 Hortonwork 가 주도하고 있다지만 하둡을 기반으로 하는 빅데이터 시장에 대한 리드는 기업시장과 클라우드 시장에 대한 기술지원과 교육 및 최적의 배포판을 만들어 제공하고 있는 Cloudera 가 하고 있다고보면 됩니다.

Hortonworks 조만간 자신들의 배포판을 만들 것으로 생각되고 IBM 역시 Apache Hadoop 을 기반으로 자신들의 Basic 과 Enterprise 배포판을 갖추고 있습니다. EMC 의 Greenplum 의 경우에는 기업시장을 위해서 MapR 의 배포판을 자신들의 DW 솔루션과 통합해서 제공하고 있으며 Apache Hadoop 을 기반으로 Community Endition 을 제공하기도 합니다.

한동안 오라클이 Hortonworks 와 협력을 하는가 싶더니 결국 Cloudera 를 선택, 자사의 하드웨어와 결합한 하둡 어플라이언스 제품을 최근 발표했습니다.

이밖에 Apache Hadoop 을 기반으로 빅데이터 시장에 뛰어든 회사 몇군데를 소개하니 참고하세요.

아마도 이 포스팅이 빅데이터와 관련해서는 마지막이 되지 않을까 싶네요. 하둡에 대한 기술적인 디테일을 제가 다 언급할만한 실력도 안되거니와 최근 관련한 책들도 많이들 나오고 있고 MapReduce 을 이용한 마이닝 알고리즘을 소개하는 책들도 더불어 소개되고 있으니 구글링이나 책을 직접 보시면 더욱 이해가 되시리라 생각됩니다.

Posted in IT | 댓글 4개

마이크로소프트의 IT트렌드 2012

마이크로소프트가 최근 국내 IT의 전문가들과 함께 2012년 트랜드를 소개하였습니다.  최근 제가 빅데이터에 관하여 포스팅하게 된 글들이 사실 이번 트랜드를  의논하고 결정하는  자리에 참석할 수 있는 기회가 주어져서 말씀들을 나누면서 나름 정리될 수 있었습니다.

이번 트랜드 키워드들은 어느 정도 IT 의 동향에 대해서 아시는 분이라든가 관련 기사들을 꾸준히 보시는 분들에게는 그다지 새로운 내용이 아닐 수 있습니다만 이 키워드들이 가지는 의미는 4-5년 후를 내다보는 중장기적인 기술과 트랜드를 선정했다기보다는 바로 ’12년에 당장 핫하게 시장과 사용자들에게 다가갈 수 있는 것들로 뽑았다고 생각됩니다.

그래서 그런지 딱 부러지게 기술만을 뽑은 것도 아니고 어떤 서비스를 뽑은 것도 아니고 그렇게 되어버렸지만 플랫폼과 전체 IT 생태계라는 관점에서 앞과 뒤, 위와 아래에서 받쳐주는 기술들로 정리가 되어 있고, 무엇보다도 이러한 기술들이 더이상 독립인 것이 아니라 매우 긴밀이 연결되어서 기술과 서비스와 이를 받쳐주는 플랫폼이라고 하는 것이 얼마나 중요해지는지를 잘 표현하고 있다고 생각됩니다.

매우 간단히 생각한다면 세계 수준의 플랫폼, 서비스, 앱, 디바이스, 솔루션이 되기 위해서는 그 어느 하나 소흘히 할 수 없게되었고 특히나 플랫폼 비지니스라는 것을 한다면 이 모두를 갖추는게 충분조건이라는 점을 잊지 말아야 하겠죠. 그래서 일까요. 성공적인 플랫폼을 가진 기업이 사실 그렇게 많지 않고 플랫폼을 가지게 된 기업의 영향력은 우리는 이미 알고 있죠.

특히 IT에서의 마이크로소프트, 구글, 애플, 아마존 등등 말이죠.

자세한 내용은 업계 전문가들과 한국마이크로소프트가 함께 전망하는 IT트렌드 2012   을 참고하세요.

Posted in IT | 댓글 남기기

빅데이터(Big Data) 왜 뜨는걸까?

의외로 지난번 포스팅에 많은 관심을 가져 주셔서 좀더 쉽게 왜 빅데이터에 대한 관심들이 높아졌고 그 주위 환경과 아쉬움들에 대한 글을 써봐야겠다는 생각을 가지다가 이 글을 포스팅 합니다. 지난 번 포스팅과 마찬가지로 빅데이터 분야의 선수분들은 안보셔도 될 것 같구요. “그래서 빅데이터가 무엇인데 이리 시끌한거야?” 하는 분들에게는 도움이 되지 않을까 싶네요.

왜? 지금 이 빅데이터에 대한 관심들이 높아지고 있는 것일까요? 더불어 왜 NoSQL 이라는 것들에 사람들은 관심들을 가지게 된 것일까요?

웹2.0 시대를 넘어서 각종 인터넷 서비스와 더불어 스마트폰의 보급으로 모바일 인터넷시대가 성큼 다가오면서 온갖 종류의 데이터가 갑자기 쏟아져 나와서 그런것일까요? 그럼 그전에는 빅데이터라는 것이 없었는데 이제 처리해야 할 데이터들이 폭증하니까 이러한 데이터를 처리할 기술에 대한 급관심이 생겨서 일까요?

대부분의 빅데이터 시장 조사 자료를 보다보면 빅데이터에 대한 시장 환경에 대해서 설명을 할때 스마트폰 보급 확대, SNS 서비스 활용 증가에 따라 발생하는 데이터의 규모가 급격하게 늘어나게 되었고 , 소위 Yottabyte라고 말하게 되는  환경속에서  이러한 대규모의 데이터를 효율적으로 분석할 수 있는 빅데이터에 대한 기술과 시대가 열리게 되었다고들 하면서 이야기를 풀어가죠 그러면서 온갖 시장자료와 어마어마하게 쌓여가는 데이터들의 숫자들을 나열하고 겁을 줍니다.

Yottabyte : 10^24승, 즉 terabyte(10의12승) x 10의12승 아마 이래도 별로 감이 없으실거에요.

하지만 현재의 빅데이터 시장을 촉발한 결정적인 요인은 구글이 공개한 몇개의 논문과 이를 기반으로 만들어지게 된 아파치 하둡및 관련된 여러 오픈소스에 힘입은 바가 매우 큽니다.

기존 빅데이터라고 하면 특히 DW라고 하는 분야에서 이러한 빅데이터를 주로 다루어왔는데 자신들만의 독자적인 기술과 하드웨어를 갖춘 상용솔루션 업체들이 대기업의 빅데이터 처리시장에 진입해서 많은 수익을 얻고 시장을 장악해왔습니다. 대표적으로 EMC의 테라데이터, IBM 네티자, 오라클 엑사데이터와 같은  솔루션들은 빅데이터 분석을 위하여 개발된 전용 하드웨어위에 소프트웨어를 구현하여 아예 어플라이언스 형태로 패키지화하여 기업에 제공함으로써 각 기업들은 이들 회사의 솔루션에 락-인 될 수 밖에 없는 구조였습니다. 물론 이들 솔루션의 완성도와 성능은 매우 뛰어나겠죠. 제가 직접 써보지 않았으니 객관적인 평가를 할 수 없으니 이정도로만 정리하겠습니다. ^^

그런데 하둡 이라는 것이 소개되면서 소위 전용 하드웨어 필요없이 일반 x86급 서버와 일반 기가급 스위치를 이용해서 빅데이터를 처리할 수 있는 프레임워크를 사람들이 쉽게 가질 수 있게 되었습니다. 더군다나 이 소프트웨어는 오픈소스로 공개되었으니 소프트웨어 비용은 전혀 필요없었구요. 이것이 불과 4-5년전 상황입니다. 2009년도 제가 이쪽을 맡게 될때만해도 여전히 부정적인 시각들이 있었습니다. 유지보수에 대한 어려움, 전문가 부족, 안정성의 떨어짐 등 말이죠. 2012년 지금도 유효한 문제점이기도 하고 업계의 솔루션 업체들은 이점을 들어서 다소 폄훼하거나 기업시장에는 맞지 않다고들 했었습니다.

그럼에도 불구하고 기존 상용솔루션에 비해서 턱없이 싼 가격으로 비슷한 성능 , 심지어 더 높은 성능을 제공할 수 있는 분산 데이터 프로세싱 환경을 갖출 수 있게 된다는 점은 점차 여러 기업들에게 매력적으로 다가왔습니다. 특히 구글, 야후과 같이 되고 싶어하는 많은 인터넷 회사들은 이러한 분산 시스템 아키텍쳐에 많은 관심을 가졌고 적극적으로 이러한 하둡 및 이로 촉발된 다양한 분산 컴퓨팅 프레임워크를 자체적으로 개발하거나 심지어 오픈소스로 공개하면서 더욱 그 저변이 확대되었다고 볼 수 있습니다.

빅데이터와 관련한 다양한 소프트웨어 프레임워크와 기술들을 오픈소스로 기꺼이 내놓은 기업들을 보면 페이스북, 트위터, 링크드인, 아마존, 랙스페이스등 매우 다양하다는 것을 알 수 있습니다. 이들 기업들은 초기부터 이러한 빅데이터 기술에 대해서 관심을 가지고 자신들의 인프라와 시스템을 구축하고 있어왔다는 것이죠.

이 와중에 Cloudera 라는 회사가 이러한 하둡 에 대한 기술적인 지원과 보다 안정적인 배포판을 제공하기 위해서 설립되어서 많은 사람들에게 긍정적이 시각으로 하둡 이라는 기술에 대해서 바라보게 되었고 잇따른 투자로 이쪽 시장의 전망을 밝게 하였습니다.  여담이긴 합니다만 이 회사의 행보를 하나하나 살펴보면 현재 레드햇의 행보와 매우 비슷합니다. 리눅스 배포판 하나로 시작한 지금의 레드햇이 지금은 리눅스뿐 아니라 다양한  오픈소스를 기반으로 하는 각종 서비스와 솔루션을 제공하고 더 나아가 클라우드 비지니스까지 확대된 거대한 IT기업으로 성장한 모습을 보면 Cloudera 도 하둡기술을 바탕으로 빅데이터 분야의 대표적인 서비스 , 솔루션 업체가 머지 않아 될 것이고 제 2의 레드햇을 꿈꾸고 있는 것은 아닐까 생각합니다. 이미 시장에서는 그러한 포지션으로 많은 사람들이 인정하는 분위기인 것 같기도 하구요. 최근 Hortonwork (야후!의 하둡개발팀이 분사한 회사) 및 MapR 이라는 회사가 등장하면 하둡을 기반으로 하는 빅데이터 시장에서 양강구도 또는 삼강구도를 형성하는 분위기이긴 하지만 여전히 서비스지향적인 Cloudera에 대한 영향력이나 접근 방법이 더욱 호응을 받는 분위기입니다.

이러한 하둡과 관련 분산기술들이 어느정도 인정을 받고 안정화되면서 최근 기업을 대상으로 하던 기존 빅데이터 관련 (주로 DW시장) 시장의 강자들이 하나같이 이 하둡을 자신들의 솔루션과의 통합작업을 서두르고 있고 이미 통합을 완료해서 ’11년말 시점으로 시장에 제품들을 소개하고 있다는 것입니다. RDBMS 기반의 정형데이터에 대한 처리는 기존 자신들의 솔루션에 대한 장점을 한껏 강조하고 비정형데이터는 하둡을 이용해서 할 수 있게 되었다고 하면서 즉 자신들은 모든 데이터 형태를 처리할 수 있는 통합솔루션을 다 갖추고 있다고 마케팅을 하고 있습니다

개인적인 견해이긴 하지만 최근 빅데이터 시장의 급관심은 이러한 기존 시장의 솔루션 강자들의 준비상황을 이해할 필요가 있다고 생각됩니다. 그간 하둡의 등장으로 전전긍긍하던 스토리지 솔루션, 데이터베이스, DW, 분석솔루션 시장의 강자들이 하둡을 충분히 이해하게 되었고  특히 기업시장에 대해서 그 누구보다도 잘 이해하고 있는 이들 솔루션의 강자들이 하둡을  자신들의 솔루션과 통합하게 된 이 상황에서는 이제 새로운 파이를 키워서 시장을 키울필요가 있게 된 것입니다. 아시겠지만 솔루션 업체들은 인터넷 기업과 같이 기술을 내재화하고 엔지니어를 확보하고 있는 기업을 별로 좋아하지 않습니다. 다시 말하면 빅데이터의 시장 확대라는 게  Cloudera가 잘해서도 아니고 하둡이 잘나서도 아니라는 거죠. 앞선 포스팅에서도 언급했지만 이런 기업 시장의 선수들의 등장이 바로 빅데이터시장을 키워나가고 견인하는 역할을 하게 된 것이라고 봅니다. 이들이 등장하지 않았다면 아마 시장자체가 커질 여지가 적어졌을 것입니다. 구글이 빅데이터 기술을 많이 가지고 있고 처리를 잘한다고 빅데이터 시장이 커지지 않는다는 점을 생각해보면 제가 어떤 말씀을 드리는지 이해하시리라 생각됩니다.

더불어 국내에 그 부족하다던 하둡엔지니어들도 이러한 빅데이터의 기업시장 확대로 인해서 어느정도 육성되고 늘어날 것으로 기대해봅니다. 이쪽 분야에서 몇년간 묵묵히 일하고 있었던 엔지니어 분들 몸값도 많이 오르겠지요.  더불어 이러한 기술을 어느정도 내재화하고 있는 기업들은 이런 상용솔루션에 의존을 덜하게 됨으로써 상대적인 비용절감 효과를 크게 얻게 될 것입니다.

아무튼 그렇게  어렵게 생각했던 분산 스토리지 , 분산 컴퓨팅, 분산 데이터 스토어라는 기술들이 그 어느때보다도 쉽게 다가온 시기라고 할 수 있습니다. 리눅스와 같이 빅데이터 기술 및 시장도 오픈소스로 인해서 적극적으로 견인되는 현상을 보는 것 같습니다.

그러다보니 관련해서 최근 이런 얘기들을 많이 하고 듣고 다닙니다. 주위에 진짜 리눅스 선수(Guru)는 많지 않다는. 십여년전 국내에 벤쳐붐이 일어나고 리눅스와 관련해서 많은 벤쳐업체들이 나타났다가 사라지는 그때를 기억해보면 그 당시 그 분위기를 뒷받침으로 이러한 오픈소스 및 운영체계 기술에 대한 관심을 가지도록 엔지니어들에 대한 지원을 지속적으로 했더라면 어땠을까 하는 아쉬움이 남습니다.

리눅스와 관련한 운영체계의 기술이 하둡을 중심으로하는 빅데이터 분야의 분산컴퓨팅뿐 아니라  클라우드 컴퓨팅이라는 분야에서 근간을 제공해주고 있다는 점에서 다시 한번 이 분야에 많은 시스템 엔지니어와 소프트웨어 엔지니어의 육성과 참여가 필요하다고 생각됩니다. 특히 고급의 시스템 엔지니어 육성이 시급하다고 생각됩니다. 시간이 걸리는 일이고 진정 핵심 역량을 갖추어야 하는 이러한 기술들이 빅데이터니 클라우드니 하는  것들이 기술 트랜드로써  1-2년간 반짝 관심을 가지다가 사라지지는 않을까 하는 우려도 듭니다. 그러다보면 다시 엔지니어들은 업계를 떠나가고 어느새 기업들은 다시 많은 비용을 들여서 솔루션 업체들에게 하드웨어와 소프트웨어 라이센스를 내고 있게 되는 것이죠. 솔루션 업체들이 투자한 비용과 그 솔루션에 대한 가치는 분명히 인정해야 하고 당연히 지불해야 하는 것이겠지만 지나치게 의존함으로써 생기는 상황은 피할 수도 있지 않을까 생각됩니다. (왜 국내 대기업들은 리눅스를 쓴다고 하면서 레드햇 배포판을 비싼 돈을 주고 구매하는 걸까요? 그것도 서비스 라이센스를 말이죠.)

마지막으로 이러한 트랜드에 편승해서 부화뇌동하지 말았으면 하는 측면에서 말씀드리고 싶은 것이 있습니다.

국내에는 정말 빅데이터가 있을까요? 있다면 이런 빅데이터를 조금이라도 만져보면서 일을 해본 소프트웨어 엔지니어는 몇명이나 있을까요? 하둡이나 NoSQL등을 설치해보고 돌려보는 것은 빅데이터를 이해하는데 백분지일이라는 점을 잊지 마세요. 필요하다면 과감히 다른 기술이나 솔루션에 관심을 가지고 시도해봐야 합니다. MySQL로도 충분히 큰 데이터를 처리할 수도 있고 기존에 구축된 오라클과 같은 RDBMS에서도 주어진 문제를 충분히 해결할 수 있다는 점을 잊지 말았으면 합니다. 빅데이터를 다루는데 있어서 하둡은 하나의 선택일뿐입니다. 자신들이 다루는 도메인과 데이터 자체를 이해하는데 더 많은 시간과 에너지가 들어간다는 사실을 너무나도 당연하지만 명심해야할 사안입니다.

아무튼 국내에 클라우드 컴퓨팅과 빅데이터로 인해서 리눅스 이후 다시 한번 오픈소스에 대한 큰 관심이 생기는 것 같습니다. 이번 분위기를 이용해서 국내의 IT 기술기반을 다시한번 한층 끌어올리고 소프트웨어 엔지니어들에 대한 가치가 높여졌으면 합니다만 밝다고마는 말씀드리기 힘들 것 같습니다.

Posted in IT | 댓글 9개

누구나 다 아는 대용량 데이터 분석 기술 (Big Data Analytics)

최근 클라우드 컴퓨팅과 더불어 대용량 데이터 분석기술 (Big Data Analytic) 에 대한 얘기들이 관심들을 받고 있습니다. 제가 회사를 옮긴 후 2009년초 부터 이와 관련하여 프로젝트를 추진해온 경험들과 그간의 트렌드를 고려해서 한번은 정리를 해야지 해야지 하면서 게으름을 피우고 있었는데 최근 여러모로 스스로 동기부여되는 일도 있고해서  아무래도 한번은 정리하고 넘어가야 할 것 같아서 포스팅을 하게되었습니다. 다 쓰고 보니 글의 양이 제법 되는 군요.

나름 이쪽의 일을 3년여간 해온 경험과 최근에 이러저러 알게된 관련한 얘기들을 두서없이 정리하였습니다. 대용량 데이터 분석과 관련해서 최근 여러 컨퍼런스에도 언급되고 있는 얘기들중에도  중복된 내용들도 있지만 제 개인적인 관점에서 생각하고 참고한 내용들을 중심으로 정리하였고 원래 이 분야에 계신 분들보다는 이 분야에 관심이 생기신 분들에게 작은 도움이 되지 않을까 생각되네요.

1. 대용량 데이터란 무엇인가?

도대체 대용량 데이터분석이 무엇이냐? 라는 질문부터 생각을 해봐야겠지요. 그전에 그럼 또 대용량데이터는 얼마만한 크기야? 라고 말하는 분들도 있을 것입니다. 대용량데이터에 대한 정의는 일반적으로 현존하는 기술 수준 대비 처리하기 힘든 규모의 데이터 사이즈를 대용량 데이터라고들 합니다. 즉, 기술의 발달에 따라 1950년대에는 16KB 가 빅데이터라고 취급되던 때도 있었고 , 기가바이트에서 최근 테라바이트를 훌쩍 넘어서 페타, 제타 에서 요타바이트에 이르는 규모를 대용량데이터라고들 말하고 있습니다. 하지만 이러한 데이터의 사이즈만을 가지고 데이터를 다루는 문제를 대용량데이터분석이라고 생각해서는  문제가 있습니다. 현실적으로 대용량데이터라는 것은 처리해야 할 데이터의 크기뿐 아니라 처리해야 하는 방식 , 데이터의 구조를 모두 고려해야만 대용량데이터분석이 얼마나 어렵고 어떻게 처리를 해야할 지를 이해할 수 있습니다.

대용량데이터의 3가지 요소

대용량데이터란 무엇인가? 를 설명할 때 다음과 같이 크게 세가지 요소를 들수 있습니다. 데이터의 크기 (Volume), 데이터가 흘러들어오는(Feed) 속도(Velocity) , 데이터의 형태(Variety).

[출처 TDWI Research 2011 Big Data Analytic Report]

2. 왜 대용량 데이터 분석이 어려운가?

지금까지의 데이터 분석 기술은 대부분 한대의 컴퓨터상의  인메모리, 파일시스템,데이터베이스에 데이터를 저장하고 이를 기반으로 데이터를 분석하는 알고리즘을 실행하는 구조였습니다. 대부분의 통계툴들은 여전히 인메모리에 데이터를 로딩해서 통계/분석/마이닝 알고리즘을 실행하는 것이 기본구조입니다. 이것이 데이터베이스시스템이 나오면서 대용량의 데이터를 처리할 수 있는 규모가 커지게 되었습니다. 하지만 여전히 이러한 분석 시스템의 구조는 싱글머신/싱글코어에 최적화되어 있었으며 , 최근에야 싱글머신/멀티코어에서 실행할 수 있는 다양한 알고리즘의 개발과 시스템들이 등장하고 상용화되어 쓰이고 있지요. 지금까지 빅데이터라고 하는 것을 처리하기 위해서는 몇십기가바이트 인메모리 또는 몇백기가 메인메모리와  SAN 스토리지를 이용해서 대용량의 파일시스템을 마운트할 수 있는 고사양 고가의 하이엔드급 서버를 이용해서 DW, DM 을 구축해왔습니다. 데이터 증가에 따른 시스템 확장은 더 고사양의 장비로 교체하거나 CPU/메모리/디스크 증설이라는 방식을 이용해서 하는 scale-up 방식만이 유일했습니다. 이러한 장비에 최적화된 소프트웨어의 업그레이드와 이에 상응하는 통계/데이터마이닝 소프트웨어 라이센스를 고가로 함께 구매해서 해결해왔던 것입니다. 문제는 최근 구글,아마존, 야후!, 페이스북, 트위터와 같은 인터넷 기업들이 고객들의 사용로그와 트랜잭션 로그를 기반으로 데이터 마이닝과 이를 기반으로 하는 서비스, 광고 플랫폼을 구축하고자 하면서 그 한계에 이르게 된 것입니다. 테라바이트에서 페타바이트규모의 데이터를 분석해서 검색엔진, 소셜서비스, 광고등을 하기에는 기존의 시스템 , 소프트웨어 아키텍쳐로는 불가능했던 것입니다. 뿐만 아니라 이들이 처리해야 하는 데이터들은 데이터베이스에 깔끔히 정리된 정형돠된 데이터가 아니라 웹을 통해서 수집한 다양한 비정형데이터와 함께 비디오, 사진, 음향등 다양한 미디어 정보를 수집해서 분석해야 하기때문에 더욱 힘들어질 수밖에 없게 된것입니다.

3. 관련 기술

구글은 이러한 측면에서 초기에 MapReduce 라고하는 프로그래밍 모델과 대용량 데이터 분산처리프레임워크 과 대용량 데이터를 효과적으로 저장하고 확장할 수 있는 GFS(구글파일시스템) 기술을 확보하고 이를 적극적으로 활용하고 있었고, 이를 바탕으로 구글만의 검색기술과 검색서비스를 가능하게 한것입니다. 이러한 그들만의 기술이 논문으로 공개되면서 이를 기반으로 오픈소스 형태의 다양한 대용량 분산파일시스템, 대용량 분산처리프레임워크등이 등장하게 되었습니다.

구글이 가진 기술을 참고해서 등장한 다양한 맵리듀스프레임워크중에서 가장 주목을 받고 그 기반으로 커다란 에코시스템을 갖추게 된 것이 바로 자바 기반의 아파치 하둡(Apache Hadoop) 입니다. 구글이 발표한 분산 프레임워크 논문을 바탕으로 야후!가 오픈소스로 개발한 하둡은 예전 리눅스의 등장으로 OS 시장에 있어서 틀을 크게 바꾸었듯이 빅데이터(대용량데이터) 분석 시장에 있어서 커다란 대안으로 등장을 하고 있습니다. 야후! 내부에서 사용하던 이 기술이 오픈소스로 발표되면서 크게 주목을 받으면서 사실상 현재 페이스북, 트위터, 링크드인, 이베이, 아마존 등 많은 글로벌 인터넷, 커머스 업체들은 빅데이터 처리를 위해서 하둡의 사용은 당연시 하고 있으며 이를 기반으로 한 다양한 처리 프레임웍이나 기술들을 공개하고 있고 그 저변을 매우 빠르게 넓혀가고 있습니다.

국내의 대표 포털 네이버, 다음 등 국내 대표 인터넷 기업들 뿐 아니라 S클라우드를 준비하고 있는 삼성전자와 같은 제조사 역시 스마트폰, 스마트 디바이스를 위한 컨텐츠 서비스 와 이를 통해서 발생하는 엄청한 로그 데이터 처리를 위해서 하둡을 적극적으로 활용하고 있습니다.  빅데이터 분석이라는 트렌드는 하둡이 없었다면 불가능했을지 모릅니다. 물론 좀더 들여다보면 야후!가 하둡을 오픈소스로 공개할 수 있었던 문화(?), 클라우데라(Cloudera)와 같은 하둡배포판을 만드는 회사의 등장과 이에 대한 투자들이 이 모든것을 촉발한 것이겠이죠.  또한 이러한 오픈소스인 하둡이 저비용으로 빅데이터를 처리할 수 있다는 장점이 크게 부각된 이면에는  전세계적인 경기침체로 효율적인 IT투자에 대한 관심이 높아진 것도 들 수 있겠죠. 최근 인터넷 기업뿐 아니라 글로벌 대기업이나, 금융회사들이 자신들의 트랜잭션 분석이나 사용로그 분석을 위해서 하둡에 대해서 크게 관심을 가지고 있고  오라클, IBM, EMC, SAS 등의 DW 시장의 강자들이 자신들의 솔루션에 하둡을 결합해서 제품과 솔루션을 내놓는 것을 봐도 하둡을 기반으로 하는 대용량데이터분석시장의 큰 변화를 느낄 수 있습니다.

참고로 맵리듀스 프레임워크는 하둡이외에도  파이썬언어 기반의 디스코(DISCO) , MS 닷넷 기반으로 만들어진 MySpace 의 Qizmt 도 있고 이외에도 다양한 맵리듀스 프레임워크들이 있습니다만 하둡만큼 크게 관심을 받지는 못하고 있습니다.

하둡은 크게 두개의 요소로 나뉘어져 있습니다. 하나는 맵리듀스프레임워크 (MapReduce Framework) 와 하둡분산파일시스템(HDFS) 입니다. 분산파일시스템은 반드시 HDFS 을 사용할 필요는 없습니다. 하둡은 다양한 분산파일시스템과 연동할 수 있도록 구현되어 있고 대표적으로 아마존의 클라우드 서비스를 이용해서 하둡 어플리케이션을 개발하는 이들은 아마존의 분산파일시스템인 S3 을 이용하고 있습니다.

초기에는 하둡을 이용해서 대용량데이터분석을 위해서는 자바언어를 이용해서 직접 프로그래밍을 해야했습니다. 하지만 하둡으로 데이터 분석 로직을 손쉽게 구현할 수 있는 프로세싱언어인 pig와 SQL과 같은 언어를 제공하는 hive 이 등장하고 최근 많이 안정화되면서 이에 대한 활용이 늘어가고 있습니다. 일일히 자바프로그램을 개발하는 것에 비해서 상대적으로 성능이 떨어지지만 개발 생산성과 디버깅등의 편이성 때문에 실무에서의 활용이 커지고 있습니다. 프로그래머 입장에서는 pig가 좀더 익숙한 반면  데이터베이스을 기반으로 분석업무를 하는 데이터마이너들에게는 hive가 좀더 편할 것입니다. 최근엔 오픈소스 통계툴로 유명한 R이 하둡과 연동되면서 이에 대해서 관심을 가지는 이들도 늘어가고 있는 것 같습니다. 아무래도 기존 데이터분석,데이터마이닝을 하는 데이터분석가들에게는 통계툴이 더 익숙할테니까요. 이렇듯 하둡을 중심으로 대용량데이터분석에 필요한 다양한 기술들이 통합되고 응용되면서 하나의 에코시스템을 이루어가고 있고 관련 솔루션 업체, 스타트업들이 많이들 등장하고 있습니다.

이러한 프레임워크와 도구 측면과 더불어 고려해야 할 것이 있습니다. 현재까지 대용량 데이터분석 및 마이닝 알고리즘들이 이러한 분산환경에 최적화되어 개발된 것들이 많지 않다는데 있습니다. 아마도 구글이나 야후! 같은 곳에서는 이러한 알고리즘들이 내부적으로 개발되어 활용되고 있겠지만 공개된 것은 그리 많지 않은 상황입니다. 대용량 데이터의 분석을 위해서는 앞서 말한 분산처리를 하는 프레임워크와 분산파일시스템도 중요하지만 이러한 컴퓨팅 환경에서 데이터 분석을 효율적으로 할 수 있는 처리하 수있는  확장성있는 분석기법과  알고리즘의 확보가 매우 중요합니다.  최근 하둡이 유행함에 따라 학계나 업계에서 다양한 분산 알고리즘에 대한 연구와 발표가 있지만 여전히 다양한 분야에 하둡의 맵리듀스 프레임워크의 장점을 다 살려서 활용하기에는 부족함 면이 있습니다. 실제 실상을 들여다보면 하둡을 활용한다고 도입을 검토하다가도 저비용의 분산파일시스템으로만 활용하고 데이터  분석이라고 해도 매일매일 쌓이는 대용량의 웹로그나 거래로그에 대한 기초적인 통계정도를 뽑아내는 정도로 활용이 그치는 경우가 많습니다. 물론 이러한 것들도 기존의 환경에서는 힘들었던게 사실이고 하둡초기에는 이러한 역할만으로도 충분히 그 가치가 인정받는 경우도 있습니다만 구글이나 아마존과 같이 광고의 추천이나 상품 추천을 위한 다양한 마이닝알고리즘을 활용하는데 여전히 많은 연구가 필요할 것입니다.

아파치 마하웃(Apache Mahout) 프로젝트는  다양한 중요한 마이닝 알고리즘들을 하둡 프레이워크상에서 구현해서 오픈소스로 공유하자는 차원에서 만들어졌고 현재 0.5 버전이 릴리즈된 상태입니다. 이미 많은 사람들이 마하웃의 알고리즘을 직접 이용하거나 최적화해서 자신들의 각 분야에서 활용하고 있습니다. 향후 아파치 마하웃 프로젝트는 꾸준히 성장해서 시간이 지나면 하둡기반의 대용량 마이닝 알고리즘을 제공하는 주요 소스가 될 것입니다.

이와 더불어 하둡파일시스템(HDFS) 을 기반으로 하는 대용량 데이터베이스인 HBase 역시 주목을 받고 있습니다. 이 역시 구글의 BigTable 의 아키텍쳐를 참조해서 만든 오픈소스 대용량 데이터 스토어 기술입니다.  최근  NoSQL 데이터베이스라해서 오라클 DBMS, MSSQL , MySQL 과 같은 관계형데이터베이스의 한계 또는 확장성등의 단점을 해결할 수 있는 대안으로 보다 단순한 아키텍쳐을 가졌지만  분산컴퓨팅 환경에 적합한 데이터 스토어 기술들이 등장하고 있는데 그 대표적인 것으로 바로 이 HBase 을 들 수 있습니다. 이밖에 하둡파일시스템을 기반으로 하지 않지만 BigTable 과 유사한 형태의 Cassandra 와 같은 기술들이 함께 주목을 받고 있습니다. NoSQL은 사실 별도로 그 배경과 기술을 설명을 할 필요가 있는 거라서 여기서는 이정도로 줄이도록 하겠습니다.

[출처 Cloudera]

4. 국내 대용량 데이터분석 시장

종종 이 부분에 대한 질문을 받을때가 있습니다. 한마디로 이게 돈이 되는 거냐? 라는 것이죠. 특히 국내에서 말이죠.

분명한 것은 미국의 경우에는 그 시장이 분명히 있고 오픈소스의 기업내 적용을 위하여 안정적인 하둡배포판을 만들고 컨설팅 및 교육을 하고 있는 Cloudera 와 같은 경우는 천이백만불의 투자를 받고 다양한 분야에 하둡 활용을 위해서 홍보와 비지니스를 하고 있습니다. 특히 올해에는 야후!에서 하둡을 직접 개발한 팀이 분사를 해서 HortonWorks 라는 회사를 만들어서 투자를 받고 하둡의 차세대 버전의 아키텍쳐와 버전 업그레이드를 진행하고 있습니다.  HortonWorks 는 Cloudera 와 달리 하둡 코어아키텍쳐에 좀더 많은 투자를 하고 있는 것으로 보이고 최근 오라클 뿐 아니라 마이크로소프트의 윈도우상에서도 (아마도 마이크로소프트의 클라우드 서비스상에서) –  하둡을 사용하기 위해서 전략적 제휴를 맺고 추진중인 것으로 알려져 있습니다.

재미있는 사실은 마이크로소프트의 빙닷컴 검색엔진이 파워셋이라는 회사를 인수해서 그 기반으로 만들었는데 이 회사가 바로 하둡을 이용하고 있었고  HBase 의 개발이  바로 이 파워셋의 시니어 엔지니어에 의해서 시작되었습니다.

이밖에도 미국에는 하둡의 소스코드를 수정해서 리얼타임 데이터를 처리할 수 있도록 하거나 아예 하둡의 소스코드를 뜯어 고쳐서 현재 하둡이 가지고 있는 여러가지 문제점(특히 하둡의 네임노드 가용성 문제, HDFS 와 POSIX 와의 연계) 을 개선하여 상용 버전을 만들어서 사업을 시작하는(MapR)  스타트업들이 다수 등장하고 있습니다.

국내에서는 대표적으로 넥스알(NexR) 이 하둡 및 클라우드 기술을 기반으로 다양한 컨설팅 및 사업을 추진했었고 작년말 KT 에 자회사로 인수되면 크게 주목을 받았었습니다. 최근에는 KT 이노츠와 합병되면서  KT 클라우드웨어라는 회사로 거듭나면서 사업 영역과 규모가 더욱 커진 느낌입니다. 문제는 이 넥스알이 국내 시장에서 이러한 대용량데이터분석 시장을 선도하고 있을까요? 글쎄요 저는 잘 모르겠습니다.  이제는 KT의 클라우드 비지니스를 추진할 수 있는 기술회사로써 역할을 다하고 있는지는  모르겠지만 KT이외의 사이트에서 제대로 비지니스를 하고 있는지 모르겠습니다. 넥스알은 꾸준히 국내의 하둡 오픈소스 커뮤니티의  활동을 적극 지원하고 있고 최근에는  RHive 라고 하는 R 와 Hive 을 결합한 시스템을 오픈소스로 공개하는 등 국내의 하둡저변 확대에 많은 지원을 아끼고 있지 않습니다만 이것이 직접적으로 사업과 연결되어서 수익을 올리고 있다고는 생각되지 않습니다.

넥스알이 KT에 인수된 이후에는 국내의 특성상 KT이외에의 다른 대기업에 비지니스하기가 쉬워지지 않게 되자 그루터라는 회사가 그 역할을 대신하고 있다는 생각이 듭니다. 이 회사에는 걸출한 하둡 엔지니어 분들이 몇몇 계시는 걸로 알고 있습니다. 대표이사님도 개발을 직접한다고 하시더군요. 다양한 분야와 업체에 컨설팅과 개발을 해오면서 기술력을 인정받으면서 기업 인지도가 매우 높아졌습니다. 하지만 여전히 국내에서 하둡을 기반으로 하는 대용량데이터분석 시장에는 한계가 있는 것이 사실입니다. 오히려 국내의 경우에는 이러한 업체들의 컨설팅이나 솔루션을 활용하기 보다는 회사내에 엔지니어를 육성하거나 팀을 꾸려서 하둡 및 관련 대용량 데이터 기술과 더불어 클라우드 컴퓨팅 기술을 내재화 하는 것에 초점을 맞추고 있습니다. 물론 잘하고 있는 곳도 있고 그렇지 못한 곳도 있습니다.

사실 구글, 야후! , 트위터, 페이스북, 링크드인등 왠만한 인터넷서비스 기업들은 자체팀을 꾸려서 이러한 대용량 데이터 분석 기술과 자신들만의 프레임워크를 개발하고 플랫폼화 하고 있습니다. 심지어 자신들의 기술을 기꺼이 소개하고 오픈소스로 공개하고 있기도 합니다.

이와 마찬가지로 국내의 네이버,다음도 그렇고 특히 삼성전자의 같은 디바이스 제조사도 스마트폰, 스마트TV 시장이 커지면서 이에 따른 자체 서비스의 확장성과 사업, 기술 경쟁력 강화를 위해서 자체기술인력을 확보하고 기술 내재화하면서 동시에 아마존등과 클라우드 서비스 협력을 강화하는 등의 움직임을 발빠르게 진행하고 있습니다. 많이 알려져있지는 않지만 제가 몸담고 있는 SK 플래닛의 경우도 분사하기전 SK텔레콤 시절인 2008년도부터 하둡 및 관련 대용량 데이터 분석 기술과 프레임워크에 많은 투자와 내재화에 힘을 쓰고 있습니다.

하지만 결론적으로 말하면 국내에서의 대용량데이터분석시장은 상당히 제한적일것이다라는 것입니다. 대기업들은 여전히 오라클, IBM, HP, EMC와 같은 기존 선도 업체의 솔루션들을 선호하고 있고 이러한 업체들 역시 발빠르게  하둡을 자신들의 솔루션과 결합하면서 가격경쟁력을 갖추고 준비를 하고 있기 때문에 대용량데이터분석 사업을 위해서 단순히 하둡기술을 가지고 있다고 어설프게 기업시장에 뛰어드는 것보다는 금융,제조,통신, 인터넷등 특정 산업분야의 분석 경험을 가지고 있는 것이 경쟁력이 있다고 할 수 있습니다. 여기에 하둡과 같은 기술을 결합해야만 시장 경쟁력을 갖출 수 있을 것입니다. 하지만 이것도 원론적인 얘기이고 안타깝지만 앞서 말씀드렸듯이 국내에서는 이러한 사업적 기회를 가지기는 쉽지 않다고 봅니다. 현실적으로 생각해봐도 규모가 어느정도 되는 기업이 아니면 이러한 대용량 데이터 자체를 접할 기회가 많지 않을텐데 작은 중소 소프트웨어 업체가 대기업을 상대로 대용량데이터분석 사업을 하기는 더욱 쉽지 않을 것입니다.

5. 향후 트렌드

그렇다면 앞으로 대용량 데이터 분석기술은 어떤 방향으로 발전해 갈까요?

가장 주목을 받고 있고 다양한 시도가 이루어지고 있는 것은 바로 실시간 대용량 데이터 분석 기술입니다. 물론 여기서 말하는 실시간의 의미는 디바이스에서 말하는 하드웨어 레벨의 실시간 데이터 프로세싱과는 다릅니다.

비지니스 레벨 또는 서비스 레벨에서의 실시간 데이터 분석기술이라고 생각하시면 됩니다. 예를 들어서 새로운 광고를 웹사이트에 노출 시켰을 때 방문자들의 클릭 스트림을 얼마나 빨리 처리해서 고객들의 반응을 분석하고 리포팅하는 것들도 하나의 실시간 처리일 수도 있고, 대표적으로 엄청나게 폭주하는 주식거래의 실시간 트랜잭션을 분석해서 위법을 저지르는 사람들을 찾아내는 것들도 한 예가 되겠지요. 이러한 실시간 데이터 분석을 위해서 주목 받는 기술 중에 하는 Complex Event Processing (CEP) 라고 하는 기술 입니다. 다시 말하면 실시간으로 발생하는 복수의 이벤트로부터 특정 패턴을 찾아내서 원하는 데이터 처리나 알림 서비스가 가능하게 하는 기술이라고 할 수 있습니다.

기존에는 이러한 이벤트 프로세싱기술이 요구조건에 맞추어서 메인메모리가 큰 장비에서 돌아갈 수 있도록 프로그래밍을 해서 최적화해왔다면 최근에는 이러한 이벤트를 처리하고 보다 고수준의 언어를 제공해서 보다 손쉽게 복합적인 이벤트 프로세싱과 로직을 적용할 수 있는 프레임워크들이 다수 등장하고 있습니다.  TIBCO, Oracle, IBM과 같은 솔루션업체들은 이미  CEP솔루션을 제공하고 있고 이밖에도 EsperTech 라는 회사는 Esper 라고 하는 자바와 닷넷에서 사용할 수 있는 CEP 엔진을 오픈소스로 공개하고 있습니다. 하지만 이러한 솔루션들은 확장성에 한계가 있을 수밖에 없습니다. 하둡과 같은 대용량의 데이터를 처리하기 위한 시스템 아키텍쳐를 갖추고 있지 않기 때문에 CEP을 운영하기 위해서는 프로세싱 장비의 사양이 발생하는 이벤트와 처리해야하는 로직에 따라서  높아 질 수 밖에 없고 필요한 경우에는 서비스에 따라 입력되는 데이터 스트림별로 CEP 장비를 적용해서 분산처리하는 구조로 대응하도록 해야 합니다.

IBM은  최근에 대용량의 스트림 데이터처리를 위해서 상대적으로 시스템의 확장성이 뛰어나고  다양한 실시간 이벤트 스트림 타입을 지원하는, 즉 기존 텍스트나 정형화된 이벤트 스트림뿐아니라  실시간으로 센서로 부터 쏟아져 들어오는 대용량 데이터 스트림에서부터 이미지, 동영상, 음향 데이터등에도 적용이 가능한, InfoSphere Stream 이라는 스트림 프로세싱 엔진을 상용화해서 내놓고 있습니다.  들리는바에 의하면 9.11 테러 이후 미국정보 요청에 의해서 테러방지를 위한 감시목적을 위해서 IBM에서 연구/개발한 기술을 상용화한것이라고 합니다.

올해 페이스북의 경우에는 하둡과 HBase 을 기반으로  페이스북의 실시간 메신저 서비스를 구현해서 여러 컨퍼런스에 발표하고 있습니다. 페이스북과 같은 규모의 서비스업체에서는 대용량 이벤트 프로세싱을 하는데는 CEP 와 같은 기술로는 분명히 한계가 있을 것입니다. 그래서인지 이들은 배치 프로세싱에 최적화되어 있는 하둡을 직접 수정하고 최적화해서 자신들이 원하는 실시간 프레임워크를 자체적으로 구축해서 서비스를 직접하고 있습니다.

이렇게 대용량 실시간 데이터 분석에 있어서 몇몇 시도와 솔루션들이 소개되기 시작하고 있기는 하지만 여전히 해결해야 할 난제들이 남아 있습니다. 특히 다루게 되는 데이터의 형태가 점점 복잡해지고 있고  특히 비디오, 사진이미지, 음향/음성과 같은 멀티미디어 스트림을 실시간으로 분석하고 결과를 내기 위해서는 기술적으로나 학술적으로도 많은 연구와 노력이 있어야 할 것입니다.

마지막으로 대용량 데이터 분석 분야에서 주목해야 할 부분은 대용량 데이터 비주얼라이제이션(Visualization) 분야입니다. 데이터의 규모가 워낙에 커지기 때문에 효과적으로 데이터를 보여줄 수 있는 표현 방식과 이를 프로세싱하기 위한 알고리즘 그리고 이러한 것들이 결합된 편리한 비주얼라이제이션 도구에 대한  요구가 늘어가고 있지만 아직까지 두드러지게 이 분야에서 내놓고 말할 것은 없어 보입니다. 이 분야 역시 구글링을 해보면 IBM의 연구 결과들이 일부 검색되기도 하지만 대부분 특정 분야에 맞게 특정한 목적에 맞게 개발된  도구들이 대부분입니다. 최근 관심을 끌고 있는 소셜 네트워크의 모양을 적절히 보여줄만한 도구들도 그렇게 많은 편은 아니더군요. 아무래도 비주얼라이제이션 처리를 위해서는 데이터를 인메모리에 올려서 처리해서 보여줄 수 밖에 없기 때문에 대용량의 데이터를 네비에이션 하기 위해서는 적절한 수준에서 데이터의 속성을 줄이거나 축약하는 방법과 부분부분 필요한 양만큼만 로딩을 해서 네비게이션 하는 방법이 있겠죠. 아무튼 이 분야도 앞으로 주목해볼만한 분야라고 생각됩니다. 결국 분석된 데이터를 어떻게 표현하고 보여주는 것이 최종 결과가 아니겠습니까?

6. 마치면서

이상으로 대충 제 머리속에 있는 대용량 데이터 분석 기술 및 시장 전반에 대해서 정리를 해보았습니다. 이 분야은 여전히 연구 개발해야할 부분이 많고 동시에 매우 빠르게 발전하고 있습니다. 특히 올해 하반기부터 소위 업계의 리더들이라고 하는 오라클, SAS, IBM, EMC, HP 등등 글로벌 솔루션 업체들이 본격적으로 하둡이라는 기술등 관련 솔루션들을 결합해서 대용량 데이터라는 키워드로 마케팅과 영업을 본격적으로 시작했습니다. 아마 지금까지의 오픈소스기반 스타트업들이 끌고 오던것과는 양상이 분명 달라질 것입니다. 앞으로 Cloudera 나 Hortonwork 와 같은 회사가 지금의 레드햇과 같은 기업으로 성장할지 아니면 다른 기업에 의해서 인수될지는 모르겠지만  기존 대형 솔루션 업체들의 참여로 대용량 데이터와 관련한 스토리지, 시스템, CPU, 분석기술의 발달과 더불어 시장의 규모는 더욱 커질 것입니다.

따라서 국내에서 관련 기술을 가진 업체나 엔지니어들에게 있어서는 내부의 분석역량을 높이는데 있어서 그 역할이 커지는 반면에 사업적인 측면에서는 더욱 어려워지고 그 사업의 기회는 더욱 줄어들겠네요

이러나 저러나 결국 글로벌 솔루션 업체들이 이 시장을 다시 나눠가지게 될까요? 안타깝지만(?) 그럴 확률이 많다고 생각이 드네요. 대부분의 국내 소프트웨어 업체들은 소프트웨어든 솔루션이든 제대로 만들어 팔아본 경험이 별로 없으니까요. 제 개인적으로도 여러가지 생각들이 떠오르는 군요.

아무쪼록 이 글이 대용량 데이터 분석기술이라는 분야에 관심을 가지신 분들께 조금이나마 도움이 되었으면 합니다.

Posted in IT | 댓글 34개

윈도우폰 7 블로그 간담회 참석후기

지난 주 금요일날 한국 마이크로소프트웨어에서 주최한 윈도우폰 7 블로그 간담회에 참석을 하고 왔습니다. 연락을 받고 망고에 대한 소개가 있다고 해서 좀 달라진게 있을까하는 호기심반 그리고 어렵게 초대되어되어서 간 자리라서 고마운 마음으로 달려갔었죠.

일단 각 자리마다 마련된 폰에는 LG의 윈폰7이 놓여져 있더군요. 하지만 망고가 설치가 된 폰은 아니였습니다만 시간을 가지고 만져보면서 조금더 친숙해질 수 있는 기회가 되었습니다. 아이콘 중심의 아이폰이나 안드로이드에 비해서 메트로UI는 분명히 경쟁력이 있으니까요. 저 같은 경우 요즘엔 제 갤럭시S의 어플리케이션 런쳐를 윈폰7 런쳐로 바꾸어 사용하고 있답니다. 아이콘이 너무 작고 많아지다보니 피로가 생겼다고나할까요.

그런데 이날 발표한 내용은 우연히 본 아래의 동영상과 순서와 내용이 거의 유사해서 그다지 흥미는 없었습니다. 발표를 담당하신 부장님조차도 본사에서 지시한 순서대로 발표하느라 손발이 오그라들뻔했다고 하시더군요. 발표 내용은 아래의 동영상을 보시면 더 구체적으로 보실 수 있습니다.

소셜네트워크서비스와의 단단한 결합과 좋은 품질의 게임들, 사진을 찍어서 책을 사는 방법, 그리고 멀티태스킹 지원등 다양한 기능들이 소개가 되었지만 유독 제 눈에 들어온 것은 오피스 기능이였습니다. 아직 한글이 입력되지는 않았지만 윈폰7에 내장된 워드를 열어서 문서작성을 해보면서 느낀 것은 심플하지만 그 제한된 공간에서 입력과 그림/음성 삽입을 자연스럽게 할 수 있도록 만들었다는 것 , 그리고 반응속도나 자동으로 레이아웃을 잡아주는 모습이 안드로이드폰을 사용하면서 문서를 작성했을 때보다 분명히 편안함을 주는 것 같았습니다.

다만 아쉬운 것은  곧(가을?) 국내에도 출시가 된다고는 하지만 여전히 늦어지고 있다는 점입니다. 망고가 다 익어서 출시되면 고객들이 안심하게 맛있게 들기야 하겠지만 익기도 전에 출시해서 욕을 먹어가면서도 시장을 선점해버린 안드로이드폰을 보면 왠지 마이크로소프트가 스피드가 많이 떨어진 느낌이네요. 이번만큼은 제대로 해보겠다는 의지라 믿고 싶지만 시장은 그렇게 쉽게 기다려주질 않기에 …

그리고 이날 소개된 망고의 한글폰트는 그리 썩 맘에 들지 않더군요. 한글폰트가 이쁘지 않다기보다는 워낙 영문폰트가 메트로 UI와 딱 맞아 떨어지게 미려하게 나와서 그런지 한글폰트는 좀더 고민을 해서 수정되었으면 하지만 정작 출시될때 바뀔지 말지는 잘 모르겠습니다. 폰트하나 개발하는데 많은 시간이 소요되는 만큼 쉽게 바뀔지는 않을 것 같네요.

아참 그날 경품으로 LG에서 출시한 윈폰7을 주시던데 바로 제 옆자리에 계신분이 받으시더군요. 살짝 부러웠어요. 아니 많이 부러웠어요. ^^

Posted in IT | 댓글 남기기