빅데이터

내위키

big data.

말 그대로 '큰 데이터'다. 그런데 도대체 얼마나 큰 데이터여야 빅데이터인가? 단지 크기의 문제가 아니라, 기존의 데이터 처리 방법으로는 더 이상 감당이 안될 만큼 거대하고, 다양한 데이터라고 할 수 있다.


빅데이터의 3V

빅데이터라는 개념을 정의하기 위해서 다양한 시도가 있었고, 다양한 정의 및 분류가 있었으나, 가트너의 애널리스트 더그 레이니가 제시한 3V가 널리 통용되는 편이다. 3V는 크기(volume), 속도(velocity), 다양성(variant)을 뜻한다.

크기

크기(volume)는 말할 것도 없다. 하루에도 어마어마한 양의 정보가 쏟아지고 축적되고 있다. IBM은 전 세계에서 날마다 생산되는 데이터의 양을 2.3조 기가바이트로 추정했다. (2.3조 바이트가 아니다.) 2012년 기준으로 페이스북은 하루에 500 테라바이트(51만2천 기가바이트)의 데이터를 처리하는 것으로 알려졌다. 유튜브에 1분마다 올라오는 동영상의 분량은 300시간이다. 하루에 49.3년 분량의 동영상이 업로드되고 있는 것이다. 현상은 자연스럽다. 과거에는 올릴 수 있는 건 글뿐이었다. 이제는 사진, 음악, 동영상도 오갈 수 있다. 사진 파일보다는 동영상 파일의 용량이 훨씬 크고, 저화질 동영상보다 HD 동영상의 용량이 훨씬 크다. 요즘은 야동도 풀HD 시대. 시간이 지날수록 네트워크를 오가는 데이터의 양은 급속하게 늘어날 수밖에 없다.

사용자가 주고 받는 데이터만이 전부는 아니다. 옛날에는 인터넷 서비스는 지역 장벽이 있었다. 인터넷은 장벽이 없지만 인터넷 서비스는 그렇지 않았다. 예를 들어, 검색엔진 초창기에는 검색엔진의 범위가 국가, 또는 언어권으로 국한되어 있었다. 야후는 각국별로 특화된 서비스를 제공했고 그에 따라서 서버도 분리되어 있었다. 브랜드는 글로벌이었지만 서비스는 글로벌로 통합되어 있었던 것은 아니었다. 그러나 이제는 글로벌 통합된 서비스가 대세다. 구글은 각국별로 도메인이 있지만 검색을 해보면 전 세계 웹사이트가 검색 범위다. 다만 국가별로 우선 순위가 다를 뿐이다. 페이스북이나 트위터도 전세계 어디서든 똑같은 서비스를 제공 받는다.

페이스북 본사는 미국에 있지만 서버는 그렇지 않다. 인터넷의 속도는 물리적인 거리에 영향을 받는다. 특히 대양을 건너려면 해저 케이블을 통해야 하는데, 이 용량을 증설하는 것은 쉬운 일이 아니다. 어느 나라에서 접속해도 빠른 속도를 제공하려면 서버가 미국에만 있어서는 안 된다. 모든 나라에 서버를 두지는 않더라도 최소한 권역별로 서버를 두어야 한다. 그렇다면 이 서버끼리도 동기화시켜야 한다. 나는 한국에 살고 있고, 친구는 미국에 살고 있다. 내가 올린 페이스북 글에 친구가 좋아요를 누르고 댓글을 달았다. 아마도 내 글은 한국의 페이스북 서버로 먼저 전송되었을 것이고, 친구의 댓글은 미국 페이스북 서버 쪽으르 전송되었을 텐데, 이 둘을 어떻게 짜맞춰야 할까? 내 글을 볼 때마다 미국 페이스북 서버에서 친구의 댓글을 끌어와야 한다면 낭비다. 결국 서버끼리 동기화가 필요하다.

사실 페이스북 같은 서비스는 실시간 동기화가 치명적인 것은 아니다. 친구가 올린 댓글이 실제 올린 시간보다 나에게 10초 쯤 늦게 보인다고 해서 그게 큰 문제인가? 따라서 동기화는 실시간이 아니라 일정한 시간 간격을 두고 한 번에 이루어질 것이다 같은 용량의 도로라고 했을 때, 자가용에 한 사람씩 타고 가는 것보다는 일정 간격으로 버스로 한꺼번에 실어나라는 게 교통체증이 훨씬 적을 것이다.

크기는 단지 양의 문제가 아니다. 그냥 하드디스크 용량 키우고 스토리지 서버 열나게 늘리면 되는 그런 문제가 아니다. 빅데이터 시대의 크기는 데이터의 처리 및 저장 방법, 그리고 서비스 구조에도 근본적인 개혁을 요구하고 있다. 이제는 한 대의 고성능 대형 서버가 모든 것을 처리하는 것이 불가능해졌다. 서버의 분산이 필요하다. 글로벌 서비스라면 세계 각지에 분산해야 한다. 과거의 데이터베이스 개념은 중앙집중식에 바탕을 두는 것이었기 때문에 지금과 같은 시대에는 맞지 않는다. 게다가 예전에는 데이터베이스 안에 모든 정보를 집어넣었다. 모든 데이터는 텍스트, 또는 인코딩된 텍스트로 데이터베이스 안에 저장되었다. 새로운 정보를 넣든, 있던 정보를 바꾸거나 지우든 반드시 데이터베이스를 거치지 않으면 안 된다. 데이터베이스는 모든 것을 알고 있고, 관리를 한다. 이제 넘쳐나는 대용량 바이너리 파일은 대체 어쩔 것인가? 과거에는 바이너리 파일은 따로 디렉터리 구조 안에 저장해 놓고 데이터베이스에는 그 파일이 있는 경로만을 저장해 두었다. 아주 간단한 방법인 것 같다. 과연 그러한 방식이 앞으로도 유효할 것인가? 수십억 개의 바이너리 파일이 넘쳐나는 상황에서도 과연? 데이터베이스와 파일시스템은 분리되어 있다. 즉, 파일을 옮길 때 데이터베이스에게 반드시 신고해야 할 필요가 없다. 데이터베이스가 모르는 상태에서 파일이 다른 곳으로 이사 갔다면 데이터베이스와 파일 사이의 연결고리가 끊어지고 파일은 미아가 될 수 있다. 텍스트보다 용량이 큰 바이너리가 주요한 정보인 경우에는 예전과 같은 데이터베이스는 비효율의 극치가 될 수 있다. NoSQL로 대별되는 새로운 형태의 데이터베이스가 속속 등장하는 이유도 여기에서 찾을 수 있다.

속도

과거에는 데이터의 형식이나 입력 방법이 한정되어 있었다. 예를 들어 MS-DOS 시절에는 키보드 입력이 새로운 데이터를 입력받는 거의 모든 방법이었다. 이러한 데이터는 플로피 디스크, 혹은 외장 하드 디스크로 다른 곳으로 옮겨졌다. 지금은 완전히 얘기가 다르다. 입력 방법도 키보드만이 아니라 마우스, 터치 스크린, 음성인식, 카메라를 비롯해서 크게 다양해졌다. 인터넷 광고에는 사용자가 보여주는 하나하나의 동작들, 예를 들어서 마우스로 무엇을 클릭했는지가 아주 중요하다. 컴퓨터 말고도 데이터 입력 방법은 많다. 스마트폰에 있는 내비게이션 프로그램이나 운동 관리 프로그램은 내 위치를 주기적으로 추적하고 그에 따라서 예상 시간을 계산하거나, 얼마나 칼로리를 소비했는지를 계산한다. 위치 정보를 추적하기 위해서 내가 특별히 하는 일이 없다. 그냥 알아서 데이터를 생성하고 전송하는 것이다.

우리는 살아가면서 하루에도 엄청난 양의 데이터를 생성한다. 그 중 상당수는 내가 데이터를 만들어내고 있다는 사실을 전혀 의식하지 못하는 상태에서 만들어진다. 데이터가 만들어지고 전송되는 양이 많아진다면 더 빠른 데이터 처리 속도를 필요로 한다. 물론 데이터 처리 기술은 계속해서 발전하고 있다. 문제는 그 속도보다 데이터가 불어나는 양이 더 빠르다는 것이다. 수많은 데이터를 빠르면서도 정확하게 처리하는 것이 불가능하다면 어떻게 해야 할 것인가? 뱁새가 황새 쫓아가다가 가랑이 찢어지는 짓은 포기하고, 선택을 하는 것이다.

예를 들어 보자. 만약 금융거래라면 속도를 희생하더라도 정확성이 꼭 필요하다. 입출금 정보나 계좌 이체 정보는 하나도 빼먹을 수 없고, 숫자 하나라도 틀리면 안 된다. 반면 SNS를 분석해서 요즘 뜨는 이슈를 찾아내거나 실시간 검색어 순위나 가장 많이 검색되는 인물을 찾아내는 것은 그렇게까지 정확성이 필요하지 않다. 즉, 데이터가 너무 많다면 전수조사가 아닌 샘플조사로 데이터의 양을 줄이는 방법도 있다.

또 한편으로는 수많은 날데이터를 가공해서 정리하고 요약하는 데에도 속도가 필요하다. 신문기사를 예로 들어보자. 과거에는 똑같은 사안을 보도하는 언론사는 몇몇 신문 방송사로 제한되어 있었다. 지금은 셀 수 없이 많은 인터넷 매체가 있다. 어떻게 하면 더 빨리 기사를 작성할 수 있을까? 최근 해외의 몇몇 언론은 스포츠 경기 결과처럼 어느 정도 형식이 정해져 있는 기사는 인공지능으로 컴퓨터가 자동 작성하는 시스템을 운영하고 있다. 일본의 NHK지진 관련 속보를 자동화 하는 시스템을 갖추었다. 지진 발생 정보가 들어오면 컴퓨터가 자동으로 방송 대본을 작성하고, 곧바로 아나운서가 보도하는 시스템인 것이다. 이런 뉴스 보도하는 기자들의 표정은 과연.

다양성

빅데이터의 중요한 특징 가운데 하나는 데이터의 비정형성이다. 금융 거래 내역은 정형 데이터다. 거래가 이루어진 시각, 출금 액수, 입금 액수, 입금/송금 계좌번호와 같은 판에 박힌 데이터만 입력된다. 정형화된 데이터는 표로 만들기 좋다. 표로 만들기 좋은 데이터는 관계형 데이터베이스의 테이블(표)에 쉽게 입력된다. 웹사이트에 가입할 때 입력하는 회원정보도 마찬가지다. 이름, 성별, 생년월일, 이메일주소, 전화번호와 같은 일정한 형식을 가지고 있다.

비정형 데이터는 이와 같이 날로 먹게 하지 않는다. 예를 들어서 바로 이 글의 내용을 어떻게 표로 만들 수 있나? 예를 들어 SNS나 게시판에 누가 자기 소개글을 올려 놓았다고 치자.

나이 : 25세, 성별 : 남자, 취미 : 독서


이런 식이라면 쉽게 정보를 데이터베이스화 할 수 있을 것이다. 하지만,

이제 20대의 딱 절반이 된 건장한 대한의 사나이입니다. 시간이 날 때는 주로 책을 보는 편입니다.


이렇게 되어 있으면 사람은 몰라도 기계는 뭔 소린지 모른다. 텍스트는 그렇고, 오디오나 비디오 파일의 내용은 또 어떻게 표로 만들 것인가? 분명 오디오나 비디오 파일에는 의미 있는 정보들이 담겨 있지만 검색 기능이라고는 텍스트 검색이 전부인 기존의 데이터베이스는 그 내용은 전혀 알 수가 없다. 그런데 SNS에는 비정형 데이터가 넘쳐난다. 페이스북의 포스트도 블로그의 글도 비정형 데이터다. 예전에는 이런 비정형 데이터는 효용성이 별로 없었다. 그냥 게시판 글을 데이터베이스에 밀어넣고 검색 기능으로 특정 키워드를 찾거나 블로그 같으면 사용자가 알아서 키워드를 따로 붙이도록 태그 기능을 두거나 하는 식이었다.

그런데 이제는 블로그 글이나 페이스북 포스트의 내용을 기반으로 광고가 뜬다. 곧, 글과 관련 있는 제품의 광고가 뜨는 것이다. 단지 글에 있는 키워드를 찾는 것이 다가 아니다. 글의 내용을 통해서 성별이나 나이대, 직업, 취미와 같은 요소들을 유추해 내는 것이다. 유튜브는 동영상에 나오는 음성을 자동으로 자막으로 변환해 주는 서비스를 제공하고 있다. 시청자는 자막을 볼 수 있어서 좋지만 유튜브는 동영상에서 의미 있는 정보를 추출해 낸다는 점에서도 큰 의미를 가진다. 페이스북은 업로드된 사진의 얼굴을 인식해서 태그를 자동으로 다는 기능을 제공하고 있다. 이 역시 사진으로부터 의미 있는 정보를 빱아낸다는 면에서, 비정형 데이터로부터 의미 있는 데이터를 추출해 내는 기능, 곧 데이터 마이닝 기술이 점점 진화하고 있음을 피부로 느끼게 해 주는 것이다.

활용

정치분야에서 빅 데이터를 가장 잘 활용한 사례는 역시 버락 오바마 미국 대통령의 선거운동으로 꼽힌다. 빅데이터 전문가를 선거 캠프에 모셔 와서 중책을 맡겼다. SNS에 올라오는 글을 분석해서 개인별로 기본 인적사항은 물론이고, 취미, 정치 성향, 심지어는 즐겨 마시는 음료나 좋아하는 잡지, 신문와 같은 자세한 개인 취향까지 파악해서 맞충형 선거홍보에 적극 써먹었다. 빅데이터를 활용한 정치 마케팅의 모범 사례로 꼽힐 정도. 일단 오바마 자체부터가 SNS 중독이잖아.

아예 SNS를 베이스로 한 펀드도 등장했다. 영국의 더웬트캐피털마켓이 내놓은 헤지펀드가 바로 그것. 트위터에 올라오는 글을 분석해서 시장의 흐름을 예측하고 이를 투자에 반영하는 것인데, 여기에서 중요한 것은 기업의 실적이나 뉴스 같은 객관적인 팩트보다 감정의 흐름을 중요한 투자 정보로 삼았다는 것이 특징이었다. 트위터에 나타나는 사람들의 감정 변화와 다우존스 주가지수 흐름의 상관관계를 해석한 연구를 반영한 것인데, 한 달 동안 1.86%의 수익률을 기록했다. 같은 기간 전체 헤지펀드의 평균 수익률이 0.76%였던 것과 비교하면 두 배가 넘는 높은 수익률이다. 과거의 데이터베이스 개념에서는 감정과 같은 비정형 요소들은 쉽게 무시되어 왔지만 빅데이터 시대에는 감정이 점점 중요한 정보로 인정 받아가고 있다는 것을 잘 보여준 사례다.