프로그래밍/뉴스

빅데이터에 대한 이해2

여퐝 2012. 5. 31. 23:09

 

빅데이터 관련 기술(빅데이터의 이해1참고)이 필요에 따라 적절하게 도입되어야 빅데이터를 처리할 수 있는 시스템을 구축할 수 있다. 언급한 기술 하나하나 쉽지 않은 기술이며 아직 성숙되지 않은 기술도 많다. 다행인 것은 대부분 오픈소스로 코드가 공개되어 있고 기술이 많이 공개되어 있다는 것이다.

여러 기술이 있지만 이 중 가장 중요한 기술은 어떤 데이터를 분석할 것인가를 정의하고 데이터간의 관계를 찾아서 의미없는 데이터로부터 의미를 찾아내는 기술이 가장 중요한 기술이다. 이 기술은 솔루션이 아닌 사람의 기술이다.

시스템을 구축하는 기업입장에서는 '무엇'과 '효과'를 알아야만 시스템 도입을 진행할 수 있지만 국내에는 아직까지 데이터 분석을 잘 할 수 있는 전문가는 많지 않다. 따라서 기업에게 '무엇'과 '효과'를 명확하게 제시할 수 있는 경우가 많지 않다. 그러면 사람을 키워야 하는데 데이터를 다루는 사람을 키우기 위해서는 데이터를 자주 보게 해야 하고 데이터를 만지는 것이 쉬워야 한다. 그러기 위해서는 빅데이터를 처리하는 시스템을 구축해야 하는데 투자를 위해 다시 '무엇'과 '효과'로 돌아오게 된다.

 

시스템 구축 방안

빅데이터 시스템 구축에 있어 어려움은 시스템 구조가 너무 복잡하다는 것이다. 앞에 소개한 기술에소 보듯이 하나의 솔루션으로 구축되는 것이 아니라 여러 개의 솔루션이 조합되어야 하고 요구사항에 따라 솔루션 선택도 달라지게 된다. 일반적으로 운영조직은 복잡한 시스템 구성을 좋아하지 않는다. 이윤느 당연히 운영의 어려움(비용증가)와 장애 때문일 것이다.

전통적인 시스템은 주로 웹서버(Aphche),애플리케이션 서버(Tomcat,JBoss,Weblogic), 데이터 베이스(오라클 등)등의 구조로 시스템이 구축되어 운영이나 장애 발생에 쉽게 대응할 수 있었다. 하지만 빅데이터를 다루기 위해서는 이런 단순한 구조로 시스템을 구툭할 수 있다는 생각은 버려야 한다. '무엇'과 '효과'에 대해서 잘 모르겠고 전문가(시스템,데이터 분석 모두)도 부족한 상황이기 때문이다.

다음은 한 전문가의 빅데이터 시스템 구축의 최적방안이다.

국내 새롭게 구축되는 대부분의 시스템은 멋진 청사진(Architecture)과 ROI를 내세우며 단기간의 성과에 치중한다. 빅데이터는 소프트웨어의 종합 선물 세트이며 예술의 경지에 가깝다고 할 수 있다. 멋진 청사진 보다는 내실을 다지느 ㄴ쪽으로 방향을 잡아야 한다.

먼저 현재 나온 솔루션 중에서 가장 안정적이면서 레퍼런스도 풍부하고 엔지니어링 소싱도 다소 쉽다고 할 수 있는 Hadoop File System과 Mapreduce를 도입하여 기업에서 필요할 것 같은 데이터를 저장한다.

저장된 데이터를 Hive(페이스북 개발)등과 같은 쉬운 인터페이스를 이용하여 처리할 수 있는 쳬계 정도만 구축한다.

여기까지 구축되면 이제는 엔지니어링 분야가 아닌 데이터를 다루는 분야의 사람이 개입되어 데이터를 여기저기 뜯어 보고, 해체하고 조합하는 과정을 거치면서 '무엇'에 대한 정의를 할 수 있는 역량을 키운다.

이 단계가 지나면 엔지니어링 분야에서는 분산 시스템에 대한 적용 및 운영 능력이 쌓이게 되고 데이터 분석 분야에서는 데이터가 어떤 모양을 가지고 있고 우리 기업이 필요로 한 데이터가 어떤 데이터 인지를 조금씩 알 수 있게 된다.

이런 사이클은 한번에 끝나는 것이 아니라 지속적으로 기업의 활동과 함께 진화해 나가게 된다.

방안의 핵심은 쉬운것부터, 욕심을 버리고, 지속적으로 할 수 있는 체계를 갖추는 것이다. 이렇게 하기 위해서는 기업 내부에서 투자를 결정하는 의사결정권자의 전촉적인 지지와 관심이 있어야만 가능한 것이다.

기존의 방식처럼 특정 사업부에 맡기고 그 사업부의 임원의 성과로만 치부해 버리면 단기간의 화려한 성과에 매달리게 되고 주변의 도움도 받지 못하게 된다. 가능하면 최고 의사결정자 또는 최고 기술임원직속으로 조직을 두고 여러 사업부에 영향력을 행사할 수 있는 임원급에게 업무를 할당하는 것이 성공의 첫 단추이다.

전사적인 부서로 두어야 하는 필요성중의 하나는 여러 부서로부터의 데이터를 수집해야 하고 처리된 결과를 다시 필요로 하는 부서로 제공해야 하기 때문이다.

그 다음은 대부에 엔지니어링 조직을 갖추는 것이다. 많은 기업이 IT관련 부분은 아웃소싱으로 처리하고 있다. 빅데이터는 한번의 프로젝트로 완료되는 것이 아니라 지속적 운영, 개선해 나가야 하는 것이 가장 중요하기 때문에 내부에 엔지니어링 조직을 갖추는 것이 가장 좋다.

물론 비용이 많이 든다고 생각할 수도 있지만 회사의 규모에 따라 다르겠지만 앞에서 언급한 기술을 유지하는 수준이라면 뛰어난 인력 3~5명 정도를 핵심으로 구성하고 필요에 따라 아웃소싱할 수 있다. 문제는 3~5명의 팀을 제대로 구성하기 위해서는 전통적으로 지급되었던 급여 수준보다는 높은 수준의 급여를 지불해야 할 것이다. 그 수준에 맞는 인력을 채용해야 한다.

자체 엔지니어링 팀 구성이 어려우면 아웃소싱이 대안이 될 수 이싿. 아웃 소싱의 경우에는 앞에서 높은 기술력을 유지하고 있는 회사를 소싱해야 하며 엔지니어링 분야 뿐만 아니라 데이터 분석 분야도 같이 다룰 수 있는 회사를 소싱해야 한다. 그리고 지속적인 관계를 유지할 수 있는 회사라야 한다.

 

마지막으로 빅데이터 시스템을 구축하는데 있어 중요한 몇가지는

- 빅데이터는 단순히 많은 데이터를 분석하는 것이아니며, 시스템, 서비스 자체가 이미 빅데이터에 대한 적응 능력이 있어야 한다.

-시스템, 서비스를 기획, 개발, 운영하는 조직도 빅데이터를 다루는 능력이 있어야 한다.

-빅데이터는 하나의 솔루션으로 해결할 수 없으며 요구사항, 데이터의 성격 등에 따라 다양한 솔루션으로 조합되어야 한다.

-오픈소스 중심의 소프트웨어 스택(SMAQ)을 구축하고 운영하기 위해서는 내부 기술력을 갖추어야 한다. 외부 시스템 구축 회사나 벤더에 의존해서는 안된다.

-한번 구축하고 관리만 하면 되는 시스템이 아니라 지속적으로 진화시켜 나가야 하는 시스템이다.

-단기간(6개월~1년 이내)에 전체 시스템을 구축하고자 하는 욕심을 버려야 한다.

-처음의 실패를 두려워하지 말고 지속적으로 기술을 내재화 하고 시스템을 진화시켜야 한다.

-오픈 소스 검증에 시간을 낭비하기 보다느 ㄴ작게라도 실행에 옮기는 것이 중요하다.