데이터를 다루는 새로운 방법, 빅데이터
관계형 데이터 베이스로 대표되던 데이터 관리의 기술이 빅데이터라는 개념이 나오면서 새로운 국면에 들어서게 되었다. 고객정보, 거래정보, 계정정보 이외에 기업들은 더 많은 데이터를 활용하려 했다. 기업이 보유한 정형 데이터 이외 데이터를 분석함으로써 더 차별적이고 특화된 인사이트(Insight, 통찰력)를 도출하려 했다.
기업들은 그동안 관리되지 않은 비정형 데이터에 눈을 돌린 것이다. 고객들이 웹 사이트에서 돌아다닌 기록(이를 '웹로그'라 한다.)이라든지 신문기사, SNS의 본문과 댓글과 같은 비정형 데이터를 분석하여 고객의 마음을 읽고 싶어 했다. 이러한 데이터를 분석하고 싶었지만 거래 데이터와 같이 표로 만들 수 있는 정형 데이터도 아니고, 데이터의 양도 엄청나며 수집하기도 만만치 않다.
엄청난 비정형 데이터를 관계형 데이터 베이스로 관리하기에는 치르야 할 대가가 너무 비싸다. 데이터 베이스에서 정형 데이터를 관리하는 것은 기업의 금고에 금괴를 보관하는 것이라면, 비정형 데이터와 같은 로그 데이터를 분석해서 기업이 필요한 결과를 도출하는 것은 바닷가 모래 해변에서 동전 찾기나 다를 바 없다.
IT기술 발전으로 데이터 베이스로 다룰 수 없는 종류의 데이터를 분석하는 SW적인 기술의 방안이 나왔고, 대량의 비정형적인 데이터를 분석할 수 있는 CPU, GPU와 같은 HW의 발전과 성능의 향상으로 지금까지 버려졌던 데이터에서 사금을 찾으려는 노력을 할 수 있게 되었다. 바야흐로 빅데이터 시대가 열린 것이다.
빅데이터가 유행하면서 기업들은 너도 나도 빅데이터 시스템을 도입하려 했다. 하지 않으면 도태될 듯이. 그러나 정작 빅데이터에서 기업들을 무엇을 찾아야 할지 몰랐고, 빅데이터가 기업에 어떤 도움을 줄 수 있는지 여전히 모호했다.
빅데이터는 데이터의 수집, 관리 및 처리를 일반적인 데이터 베이스 시스템으로 한계를 넘어서는 크기의 데이터를 말한다. 이러한 방대한 데이터를 분석하여 가치를 추출하여 결과를 분석하는 기술을 의미하기도 한다.
웹로그, 트위트, IoT와 같은 다양(Variety)하고 방대(Volume)하게 실시간(Velocity)으로 쏟아지는 데이터 처리를 위한 시스템이 필요하다. 따라서 빅데이터를 분석하기 위해서는 기존 데이터 처리를 위한 데이터 베이스 시스템과는 완전히 다른 시스템이 필요하다. 기존 데이터처리가 데이터 베이스를 중심이었다면, 빅데이터 시스템은 데이터의 종류에 따라 다양한 SW로 연계된 별도 시스템이 필요하다.
|빅데이터의 3요소|
흔히 빅데이터의 3가지 요소로 3V를 말한다. 규모(Volume), 다양성(Variety), 속도(Velocity)가 빅데이터의 특징이라 할 수 있다.
빅데이터 시스템을 이용한 다양한 종류의 대규모 데이터에 대한 생성, 수집, 분석, 표현이 가능해졌다. 빅 데이터 기술의 발전은 다변화된 현대 사회의 고객의 행동을 더욱 정확하게 예측할 수 있게 한다. 개인화된 현대 사회 구성원마다 맞춤형 정보를 제공, 관리, 분석이 가능해 과거에는 불가능했던 일이 가능해졌다.
빅데이터를 분석을 통해 개인은 철저히 분석될 수 있고, 조직은 개인을 분석 중심의 사회의 한가운데 놓이게 되었다. 초기에 빅데이터의 활용성에 멈칫하던 기업들은 빅데이터가 AI와 결합되면서 빠르게 활용성이 높아졌다. AI와 결합된 빅데이터는 나보다 나를 더 잘 아는 유튜브, 네플릭스, 아마존의 온라인 쇼핑 몰을 만들었다. 빅데이터는 세상을 움직이는 빅 브라더가 되는 것이 아닌지 걱정스러울 정도가 되었다.
|빅데이터의 활용 사례|
미국 대통령 오바마의 선거 캠페인은 빅데이터의 유명한 사례다. 오바마 캠프는 다양한 형태의 유권자 데이터베이스를 확보하여 이를 분석, 활용한 '유권자 맞춤형 선거 전략'을 전개했다. 기본적인 인종, 종교, 나이 등과 같은 인구 통계학적 데이터 이외에도 구독하는 잡지, 마시는 음료, 소셜 미디어 등을 분석하여 유권자 정보를 수집하여 분석하였다. 이러한 분석 결과를 토대로 유권자의 행동을 예측하여 '유권자 지도'를 작성하여 선거 전략에 활용하였다.
일반적인 또는 전통적인 데이터 베이스와 빅데이터는 데이터를 다루는 기술이라는 점에서는 동일하다. 데이터를 통해 정보를 얻는 것이 목적이다. 그러나 데이터에서 얻고자 하는 정보의 관점은 약간 차이가 있다. 또 기술도 상당히 달라 시스템도 완전히 다르게 구성된다. 이 둘의 차이를 통해 빅데이터에 대해 조금 더 접근해 보자.
일반 데이터 베이스는 데이터의 정확한 데이터의 보관이 중요하다. 은행 잔액과 거래 내역을 완벽하게 저장되어야 한다. 은행 잔액 데이터는 매 거래 시 화면에 조회되어야 하고, 거래 완료 시 업데이터 되어야 한다. 일반 데이터 베이스는 기본적으로 이러한 거래를 위한 데이터 베이스다.(물론 일반데이터 베이스도 DW를 만들어 분석을 목적으로 하는 경우도 있다.)
빅데이터는 데이터를 발생하는 시스템(트위트와 같은 SNS, 웹, IoT 센스 기기들이 만들어 내는 데이터)의 기록 데이터가 대부분이다. 이들 데이터는 계속적으로 저장만 되지 저장된 데이터를 다시 보거나 업데이트하는 일은 거의 없다. 따라서 빅데이터 처리의 목적은 거래를 내역을 저장하는 것이 아니라, 생성된 데이터를 수집하여 분석하는 것에 목적이 있다.
일반 데이터 베이스는 기업 내부의 업무 시스템(예: ERP와 같은 전사적 자원관리 시스템, 영업 시스템)에서 발생한 데이터를 관리한다. 이러한 데이터는 정형적인 구조를 가지고 있다. 정형적인 데이터는 DBMS의 체계화된 구조에서 안정적으로 관리된다.
빅데이터는 소셜 미디어, IoT디바이스 및 센서 데이터, 미디어 파일 등 다양한 기업 내 외부에서 파생되는 데이터들이다. 이러한 원천 데이터는 다양하고 비정형적이다. 대부분 파일 형태로 저장되어 있다.
일반 데이터 베이스는 정형적인 데이터를 테이블 형태로 구조화하여 DBMS로 관리한다. 오라클, MySQL과 같은 관계형 DBMS가 데이터 관리에 핵심적인 역할을 한다.
빅데이터는 다양한 형태의 비정형적인 구조가 대부분이므로 구조를 정형화할 수 없다. 따라서 관계형 데이터 베이스가 아닌 비관계형 데이터 베이스를 이용하거나 파일로서 데이터 관리를 한다. 대용량의 데이터를 일반 데이터 베이스인 관계형 데이터로 관리하기에는 부적합하다. 오히려 파일로 관리하는 것이 더 효율적이다.
방대한 데이터를 처리하기 위해서는 특별한 기술이 필요하다. 데이터 베이스로 관리하기에는 엄청 부담(하드웨어적 측면과 비용적인 측면에서)이 크다. 이러한 방대한 비정형 데이터를 관리하기 위해 다시 파일 시스템이 등장했다. 데이터 관리에 부적합했다고 간단한 데이터 저장용도로 사용하던 파일을 이용하여 방대한 빅데이터를 처리하는 시스템 구조를 만들어 냈다.
검색엔진 구글은 늘어나는 검색 데이터를 처리하기 위해 파일 방식의 새로운 처리방식을 만들어 냈다. 이것이 발전하여 빅데이터 처리 플랫폼으로 정착되면서 본격적인 빅데이터 시대를 열었다.
빅데이터를 말할 때 하둡을 빼놓을 수 없다. 좀 어렵더라도 하둡이 대충 어떤 것인지 간략하게나마 상식 삼아 알아보자.
|빅데이터 플랫폼 "하둡(Hadoop)"|
하둡은 정형, 비정형 데이터를 수집(데이터가 있는 곳에서 데이터를 가져오는 것)하고 분석(수집한 데이터를 분석) 하기 위한 오픈 소스(무료 SW라는 말), 자바 기반 SW플랫폼이다.(이 말은 오라클 DBMS처럼 하나가 아니고 여러 개의 오픈 소스 SW로 구성되어 있다는 말이다.).
하둡 플랫폼은 대용량의 데이터를 처리하기 위해 여러 컴퓨터를 병렬적으로 연결해서 일을 쪼갠 후 각 컴퓨터에서 데이터 처리를 한 다음 다시 모으는 형태의 시스템으로 구성되어 있다.(이를 '분산처리'라고 함. 작은 서버 컴퓨터 여러대를 이용하여 일을 쪼개고 분산하여 병렬처리한 다음, 다시 모아 처리하는 분산처리 기술이 하둡의 핵심 기술이다. 이러한 기술이 가능해져 비로소 대용량의 빅데이터 처리가 가능해졌다.)
하둡에서 알아야 할 두 가지 기술은,
。 하둡 분산형 파일시스템(Hadoop Distributed FileSystem, HDFS) : 하둡 네트워크에 연결된 기기에 데이터를 저장하는 분산형 파일시스템 (빅데이터는 데이터를 파일로 저장한다고 했는데, 파일 형식이 HDFS라고 보면 됩니다. 우리가 워드 파일을. doc로 저장하는 것과 같은 파일 포맷이라 생각하면 됨)
。 맵리듀스(MapReduce) : 대용량의 데이터 처리를 위한 분산 프로그래밍 모델, 소프트웨어 프레임워크 맵리듀스 프레임워크를 이용하면 대규모 분산 컴퓨팅 환경에서, 대량의 데이터를 병렬로 분석 가능 프로그래머가 직접 작성하는 맵과 리듀스라는 두 개의 메서드로 구성
(이런 것이 있구나 정도 알고 넘어가면 됩니다.)
하둡 에코 시스템은 하둡 플랫폼을 구성하는 오픈 소스 SW이다. 빅데이터를 처리하기 위해서는 이렇게 많은 SW가 필요하다(그림 하나하나가 SW하나라고 보면 됨. 이렇게 많은 SW를 다 아는 엔지니어가 있을까!). 데이터를 수집, 분석, 저장, 조회, 그리고 전정을 관리하한 많은 SW 조합이 필요하다. 방대한 데이터를 쪼개 분산처리 하기 위해 많은 하드웨어 서버들을 연결하여 (어려운 말로 '클러스터링') 구성해야 한다.
(이런 하둡 에코 시스템을 사실상 기업에서 도입하기 힘들다. IT전문가도 이론상적으로 인지할 뿐이다. - 필자 의견)
빅데이터에서 당장 황금이라도 찾아낼 것 같았던 기업들은 이런 방대한 시스템을 구성할 수 있을까?
빅데이터는 어디서 가져오지?
트위트, 페이스북 데이터를 분석한들 우리에게 도움 되는 것이 있을까?
이런 시스템을 구성할만한 전문가가 있을까?
시스템 구성해서 지속적인 관리는 제대로 될까?
라는 의문이 들었다. 매스컴에서 빅데이터가 중요한다고 떠들어 대는 만큼 현실은 녹녹지 않았다.
이러한 시절은 빅데이터가 머신러닝 AI의 기반이 되면서 그 활용성을 찾았다. 또 굳이 이런 방대한 시스템을 만들지 않고도 다양한 설루션을 활용하거나 아마존과 같은 클라우드를 빌려 쓰는 것이 직접 시스템을 구축하는 것보다 더 유리하다는 것을 알고 그쪽으로 방향을 전환하고 있다.
일반 데이터 베이스 관련 직업이 데이터 아키텍트(DA)와 데이터 베이스 운영자(DBA)가 있었는데, 빅데이터 관련 직업은 좀 더 세분화되었다.
빅데이터에서 데이터를 관리하는 직무를 데이터 엔지니어라 한다. 데이터 관리는 데이터 수집, 저장, 유지, 보수와 같은 일이 포함된다. 수집된 데이터를 불필요한 데이터를 제거하고 이상한 데이터를 변환하는 등 데이터 분석가가 분석할 수 있는 형태로 데이터를 처리하는 일이 중요하다.(이를 '데이터 전처리'라고 한다.)
빅데이터에서는 파일의 물리적으로 데이터를 가공하기 위해 파이썬을 많이 활용한다. 따라서 데이터 엔지니어는 파이썬이 기본으로 되어 있어야 한다. 또 파일로 DB로 구성하는 경우도 많아 데이터 베이스의 일반적인 SQL과 같은 데이터 처리에 대해서도 잘 알고 있어야 한다.
조직이 원하는 결과를 내기 위해 데이터를 분석하는 직무이다. 어떤 경우는 목적이 없이 마련된 데이터에서 패턴과 같은 인사이트를 발견하기도 한다. 데이터를 프로그래밍하여 통계적으로 분석할 수 있어야 하고, 분석의 결과를 시각화하여 표현할 수 있어야 한다.
통계적인 지식과 파이썬과 R과 같은 언어를 다룰 수 있어야 한다.
데이터 분석 결과를 토대로 딥러닝 기술을 적용하여 미래를 예측할 수 있는 예측 모델을 구축하는 직무이다. 분석가가 기존의 데이터에서 인사이트를 찾는다면 데이터 과학자는 미래를 예측하는 모델을 만드는데 초점을 둔다. 예를 들어 데이터 분석가가 카드 사용량에 대해 연령, 지역, 날씨 등과 같은 연관관계를 분석했을 때, 데이터 과학자는 이들 변수로 예측모델을 만들고 미래에 예측에 활용할 수 있게 해야 한다. 기업이 어떤 부분에 집중해서 마케팅할 수 있도록 제안할 수 있어야 한다.
데이터 과학자는 통계에 대한 상당한 지식이 필요하고, 머신 러닝과 AI알고리듬에 대한 지식을 갖추어야 한다. 데이터 엔지니어가 데이터를 준비해 주지만 기본적으로 파이썬을 익혀 직접 데이터를 다룰 수 있어야 한다. 또 무엇보다도 중요한 것은 업무 지식, 즉 인더스트리 도메인 지식이다. 통계와 AI알고리듬을 아무리 잘 안다고 해서 업무를 모른다면 통찰력을 만들 수 없다.
체계적이고 보완된 내용으로 브런치 글과 같은 이름으로 출간을 하게되었습니다. 아래의 링크를 통해 자세한 내용을 확인할 수 있습니다.
교보문고
나에게 맞는 IT 직업 찾기
예스24
나에게 맞는 IT 직업 찾기
알라딘
나에게 맞는 IT 직업 찾기
일반적인 데이터 베이스 역시 지금까지 해온 역할을 충실해 오고 있다. 빅데이터는 계속 새롭게 진화하고 있다. 기술적으로 이분화된 두 영역이 기술이 진화하면서 서로 융합되고 있다. 어떠한 길을 가든 데이터를 다루는 측면에서 두 분야는 수렴할 것이다. 인류가 데이터의 중요성에 주목한 이상 데이터를 다루는 기술을 지속적으로 발전될 것 같다.