빅데이터 분석과 활용
박인근 외 지음 | 제이펍
빅데이터 분석과 활용
박인근 외 지음
제이펍 / 2019년 1월 / 288쪽 / 26,000원
빅데이터가 열어 갈 4차 산업혁명
빅데이터와 우리의 미래
2030년 어느 날: 박 과장은 간밤에 맞춘 알람 덕분에 오전 6시에 정확하게 일어난다. 화장실로 가면 벽에 붙은 센서가 박 과장의 얼굴을 스캔하고 오늘의 컨디션, 수면 상태 등을 파악한다. 소변기에 달린 센서는 박 과장의 소변 샘플을 채취하고 데이터는 병원에 있는 박 과장의 임상 빅데이터에 기록되며, 병원에서는 박 과장의 건강 상태를 원격으로 알려 준다. 그리고 당뇨 전조 증세 등을 파악하여 가까운 병원으로 진료 예약을 잡아 준다. 자동으로 박 과장의 스마트폰에 있는 에이전트에게 스케줄 조정을 알린다. 박 과장은 씻고 부엌으로 가서 아침을 준비한다. 냉장고는 앞에 달린 스크린을 통하여 현재 남은 음식과 유통 기한 및 부족한 식자재에 대하여 박 과장에게 보여 준다. 박 과장이 주문 버튼을 누르면 냉장고는 자동으로 근처 마트에 식자재 배달 주문을 넣는다. 냉장고의 레시피 에이전트는 병원의 임상 데이터베이스로부터 전달받은 박 과장의 영양 상태 정보를 파악하여 최적의 음식을 제안한다. 레시피의 제안대로 박 과장은 음식을 만들어 먹은 후 자동차를 타고 출근한다.
자동차에 있는 인공지능 에이전트는 스마트폰 에이전트와 연계하여 오늘 박 과장의 일정에 대해 브리핑한다. 박 과장은 자동차를 자율주행 모드로 바꾼 후 지난밤에 읽다가 잠들었던 책을 읽는다. 박 과장의 자동차는 시내 도로 교통상황 정보를 실시간으로 수신하면서 최적의 경로를 찾아가면서 회사 주차장까지 자율주행한다. 시내 도로에는 무수한 사물인터넷 센서들이 자동차의 통행량, 교통사고 현황, 공기오염 현황을 센싱하여 도로교통상황실의 데이터베이스에 저장한다. 자율주행 자동차는 회사에 도착한 후 박 과장을 내려 주고 택배 회사로 이동한다. 오전 11시에 택배를 현지에서 수령하기로 하였는데, 택배를 현지 수령하면 그만큼 택배비가 싸기 때문이다. 택배비는 박 과장의 계좌에서 가상통화 형태로 택배회사에 지급한다. 택배를 수령한 자동차는 다시 박 과장의 회사 주차장에 와서 대기한다.
위의 시나리오는 2030년 어느 도시 샐러리맨의 삶을 단편적으로 표현하고 있는데, 이 시나리오의 저변에 깔린 기술이 바로 빅데이터다. 개인 건강 기록이 병원에 빅데이터로 쌓이게 되고, 이를 인공지능이 분석하여 건강에 이상이 없는지를 확인한다. 또 시내 도로 교통상황을 다양한 사물인터넷 센서가 전달하면 빅데이터로 저장된다. 빅데이터로 저장된 도로 교통상황은 클라우드 서버에서 인공지능 에이전트가 분석하여 최적의 경로를 각각의 자율주행 차량에 전달한다. 냉장고에 달린 인공지능 레시피는 주인의 건강 상태를 파악하여 최적의 음식을 제안하고, 부족한 식자재는 시장에 추가 주문한다.
4차 산업혁명의 시대에 기반이 되는 연료와 같은 것이 빅데이터다. 흔히 빅데이터를 4차 산업혁명 시대의 원유라고 표현한다. 앞으로 4차 산업혁명을 지속하기 위해서는 빅데이터가 기반이 되어야 한다. 사물인터넷을 통하여 무수히 많은 현장의 데이터가 모여서 빅데이터를 이루고, 이러한 빅데이터는 머신러닝이나 딥러닝이라는 인공지능의 학습을 통하여 인간에게 보다 지능화된 사회를 선사할 것이다. 빅데이터가 만드는 사회는 이제 먼 미래의 일이 아니라 우리에게 가까이 다가온 현실이다.
빅데이터란?: 2000년 이후부터는 전자, 통신, 의료 등 사회 각 분야에서 빅데이터가 계속 생겨나면서 전 세계적으로 이러한 데이터 처리에 어려움을 겪게 되었다. 이렇게 규모가 커진 데이터를 처리하기 위해서는 과거와 같은 관계형 데이터베이스나 분산 아키텍처를 가지고는 불가능하기 때문이다. 이때 구글에서는 자신들이 독자적으로 만든 빅데이터 아키텍처를 공유하였다. 맵리듀스(MapReduce) 아키텍처인데, 이를 활용하여 만든 오픈소스 버전의 아키텍처가 하둡(Hadoop)이다.
맵리듀스 방식은 빅데이터를 처리하는 아키텍처다. 간단히 설명하면 작업의 덩어리를 더 잘게 나누어서 분산 처리를 한 후 이를 다시 하나로 합치는 방식이다. 들어오는 작업을 분리(splitting)하는 작업을 통하여 작은 단위로 분할한다. 그런 후 매핑(mapping)과 섞기(shuffling)를 통하여 정렬한 뒤 감소(reducing) 작업을 통하여 다시 하나로 합치는 것인데, 이러한 맵리듀스 방식을 오픈소스로 구현한 아키텍처가 하둡이다. 현재 대부분의 빅데이터 아키텍처는 하둡에 기반을 두고 구축되었다.
기업은 빅데이터를 어떻게 이용하고 있을까?: 빅데이터 활용 기업의 대표격으로 페이스북을 들 수 있다. 페이스북에서 사용자들은 개인적인 사연, 기록, 사진, 동영상 등의 자료를 올리고 서로 커뮤니케이션을 하면서 친분을 이어가는데, 여기에 ‘좋아요’, ‘멋져요’ 등의 태그 기록과 응답 기록을 빅데이터로 분석한다. 그래서 개인의 성향과 취미, 취향, 좋아하는 것과 싫어하는 것 등을 빅데이터로 파악한다. 페이스북에서 개인이 태깅한 ‘좋아요’ 혹은 ‘싫어요’ 등의 태그 기록을 10개 정도만 분석하면, 친한 친구보다 더 개인 성향을 잘 알 수 있다고 한다. 또 ‘좋아요’ 혹은 ‘싫어요’ 태그를 200여 개 정도만 분석하면, 개인의 배우자보다 더 그 개인의 취미, 취향, 성격에 대해서 잘 알 수 있다고 한다.
페이스북은 이러한 분석 자료로 다양한 서비스를 제공할 수 있다. 예를 들면, 낚시를 좋아하는 개인이라면 낚싯배의 출항 일정 혹은 요즈음 자주 낚이는 고기의 종류, 바다 날씨 정보, 파도의 높이 같은 정보를 SNS로 개인에게 실시간으로 전달해 줄 수 있다. 또 책을 좋아하는 개인이라면 SNS를 통하여 신간에 대해 소개할 수도 있고, 온라인 출판사와 연계하여 직접 책을 주문할 수도 있게 한다.
최근 케이뱅크와 같은 인터넷 은행이 인기다. 인터넷 은행이 가진 장점은 고객의 빅데이터를 분석하여 시중 은행보다 저렴한 대출 금리와 높은 이율로 고객을 끌어모을 수 있다는 점이다. 또한 해외 송금, 계좌 이체, 본인 인증 등을 쉽고 간편하게 할 수 있고, 수수료 또한 시중은행보다 더 저렴하다. 특히, 신용거래 실적이 없거나 대출이 많은 학생, 주부 등 소외계층을 대상으로 통신 서비스 사용 이력을 통해 신용평가 등급을 재평가하고 대출 실행을 하여 고객층을 늘리고 있다. 시중 은행에서는 거래가 어려운 이들까지 빅데이터를 기반으로 공략하여 고객층을 확보하고 있는 것이다.
빅데이터란 무엇인가?
빅데이터 분석을 위해 우리가 알아야 할 것들: 빅데이터는 빠른 속도로 생산 및 소비되는 대용량의 정형ㆍ비정형 데이터를 효율적으로 수집 및 저장하고, 다양한 분석 기법을 활용하여 현상 파악, 예측, 의사 결정 등을 지원하기 위한 기술이라고 정의할 수 있다. 빅데이터를 정의하기 위한 특징을 말할 때는 3V는 기본으로 언급되고, 빅데이터 분석을 위한 기술적 특징을 생각해 볼 때는 분산 파일 시스템과 스케일 아웃 아키텍처, 분석 알고리즘을 특징으로 꼽을 수 있다. 보다 자세히 살펴보자. 첫째, 3V는 가트너(Gartner)에서 최초로 정의한 빅데이터의 특징인 양(Volume), 속도(Velocity), 다양성(Variety)을 가리킨다. IBM에서는 이외에 정확성(Veracity)을 추가하기도 하고 브라이언 홉킨스는 가변성(Variability)을 추가한다. 둘째, 빅데이터의 3V 특성들로 인해 데이터를 저장 및 처리하려면 기존에 사용하던 로컬 기반의 파일 시스템 포맷으로는 데이터를 다룰 수가 없다. 여러 대의 서버가 하나의 시스템처럼 동작할 수 있도록 하는 방법이 중요한데, 이를 지원하는 파일의 포맷이 바로 분산 파일 시스템이라는 것이다. 하둡 파일 시스템(HDFS)은 분산 환경에서 파일을 안전하게 저장하고 처리하기 위해 같은 내용의 파일을 세 개의 서로 다른 블록에 저장하도록 설계하였는데, 이는 데이터의 안정적인 저장과 데이터 처리를 효과적으로 하는 방법이다.
셋째, 스케일 아웃(scale-out)을 위한 하드웨어 설계 또한 중요하다. 기업의 IT 자원은 빅데이터 분석뿐만 아니라 기업 서비스, 인증, 과금, 결제, 거래, 주문, 원장 관리, ERP 등 다양한 IT 환경을 운영해야 한다. 이러한 측면에서 효과적인 빅데이터 분석 환경을 위해서는 탄력적인 스케일 아웃 하드웨어 구조가 필요하다. X86 기반 또는 클라우드 기반의 서버, 저비용의 로컬 스토리지 사용, 서버와 스토리지의 증설에 따른 네트워크 장비의 확장성을 고려하여 하드웨어를 설계 및 구축하여야 한다.
넷째, 빅데이터 분석에서 어떤 알고리즘을 통해 분석하는지는 가장 중요한 요소다. 데이터를 이해하는 안목을 가지고, 다양한 분석 알고리즘을 선택하여 모델링 결과를 도출하고, 최적의 모델링을 선정하는 과정을 거쳐 분석의 정확도를 높여야 한다. 빅데이터 분석 방법은 크게 통계 기반의 데이터 분석과 컴퓨터공학 분야의 데이터 분석으로 나눌 수 있다. 통계 기반의 데이터 분석 알고리즘은 전통적으로 집단을 대표하는 소수의 데이터를 가지고 분석하는 방법들이다. 예를 들면 A/B 테스팅, 탐색적 자료 분석, 가설 검정, 다변량 분석, 시계열 분석, 일반선형 모형 등의 분석 방법들이 이에 속한다.
컴퓨터공학 기반의 데이터 분석 알고리즘은 통계학과 컴퓨터공학을 접목한 데이터 마이닝 분야와 순수 컴퓨터공학 기반의 데이터 분석 알고리즘으로 구분할 수 있다. 데이터 마이닝 분야의 기법으로는 K-최근접 이웃 알고리즘, 인공신경망, 유전 알고리즘, 의사결정트리, SVM(Support Vector Machine) 등이 있고, 컴퓨터 공학 분야 알고리즘은 머신러닝, 강화학습, 딥러닝 등이 있다.
빅데이터 분석을 위해 필요한 요소는 무엇이 있을까? 첫 번째 요소는 데이터 사이언티스트라는 분석가다. 분석가는 미적분에 대한 이해, 통계, 수학, 컴퓨터공학에 대한 지식을 갖추어야 한다. 특히, 데이터 사이언티스트는 비즈니스에 대한 이해가 필수다. 두 번째는, 하둡, 맵리듀스, 스파크와 같은 분석 기반 기술이다. 오픈소스 소프트웨어의 구조를 이해하고, 오픈소스를 사용하여 프로그래밍할 수 있는 능력이 필요하다. 세 번째는 분석 알고리즘 및 분석 모델에 대한 이해다. 다양한 알고리즘과 모델링 기법을 선택하고 개발하여 분석 과정에서 나타날 수 있는 파라미터 및 분석 모델을 최적화해야 한다. 네 번째는 데이터 자체를 보는 눈(통찰력)이다. 어떤 질문을 던져서 어떤 과정으로 어떻게 데이터를 이용하고, 어떤 결과물을 만들어 낼지는 데이터를 넓고 깊게 보는 통찰력에 달려 있기 때문이다.
빅데이터 구축 실무
빅데이터 구축
빅데이터 플랫폼 구축 개요: 빅데이터 플랫폼은 일반적인 전산 시스템 카테고리에 따라 크게 세 가지 유형으로 분류한다. 첫째, 운영계 시스템은 기간계 시스템이라고도 한다. 둘째, 분석계 시스템은 기업에서 데이터 웨어하우스라고 부르는 시스템이다. 분석계 시스템은 운영계 시스템에서 만들어진 빅데이터를 분석하는 시스템이다. 셋째, 데이터 레이크(Data Lake)는 데이터 소스가 제공하는 원시 데이터 그대로를 저장해 놓은 시스템이다.
빅데이터 플랫폼 구축을 위한 프로세스: 빅데이터 구축 프로세스는 목표 설정부터 테스트까지 진행된다. 일반적인 소프트웨어 개발 프로젝트와 다른 특징은 분석/설계 단계에 있다. 데이터 수집 및 처리 설계가 핵심 단계다.
목표 설정 단계에서는 빅데이터 구축 프로젝트의 목표 시스템을 정의한다. 여기에는 현재 운영되는 시스템의 문제점과 이를 개선한 목표 시스템에 대한 청사진을 그려 주는데, 목표 시스템을 정의할 때에는 빅데이터의 비즈니스 모델, 분석 프로세스 및 구축 시 기대효과를 설명해야 한다.
계획 수립 단계에서는 요구사항 분석, 기초 설계, 개발 계획을 수립한다. 요구사항 분석은 빅데이터 사용자들로부터 요구사항을 추출하여 정의한다. 기초 설계는 본격적인 구축 단계에 들어가기 전에 파일럿 형태로 구축하여 가능성을 타진하는 것인데, 여기에는 하드웨어, 소프트웨어, 네트워크 아키텍처 설계, 개념 검증 형태의 구축, 사전 검증 활동 등이 포함된다. 그리고 개발 계획에는 빅데이터 구축을 위한 일정, 범위, 인력 운용 계획 등이 포함되어 있는데, 인력 운용 계획은 빅데이터 아키텍처 설계, 구축 단계별 개발자의 투입 일자, 테스트 일자 등을 상세하게 나열해야 한다.
이렇게 개발 계획이 수립되면 본격적인 개발 단계로 들어간다. 빅데이터 구축 프로젝트에서 데이터 수집, 처리 설계가 가장 중요하다. 기간계 시스템에서 빅데이터를 수집하기 위해서는 시스템 인터페이스가 구체적이고 정확하게 정의되어야 한다. 그리고 빅데이터를 처리하기 위해서는 테이블 정의서, 테이블 명세서, 테이블 구조도 등의 설계가 필요하다. 또 빅데이터를 실시간 처리하기 위해서는 메인 메모리 적재 기술, 맵리듀스 기술 등이 필요하며, 데이터 처리 설계에 반영되어야 한다.
빅데이터 수집, 처리 설계가 완료되면 본격적인 구축 단계로 들어간다. 빅데이터 플랫폼 구축 단계는 실제 하드웨어 및 소프트웨어를 설치하고 데이터를 처리하기 위한 인프라 구축을 하는 단계다. 사용자가 빅데이터를 조회할 수 있도록 화면도 개발해야 한다. 그리고 빅데이터를 연동하기 위한 배치 프로그램도 이 단계에서 개발된다. 한편 빅데이터 플랫폼 구축 단계에서는 테스트를 위하여 데이터를 연동하는데, 연동된 데이터는 정보보호 이슈가 없도록 사용 후 파기해야 한다.
테스트 단계에서는 구축된 빅데이터 플랫폼이 제대로 동작하는지에 대한 단위, 통합, 시스템 테스트를 수행하는데, 시스템 테스트 단계에서는 빅데이터 플랫폼에 대한 부하 테스트, 볼륨 테스트 등을 수행하여 시스템이 여러 악조건 속에서도 기능하는지를 점검해야 한다. 단위, 통합, 시스템 테스트가 완료되면 최종적으로 사용자 인수 테스트를 수행하는데, 이때 프로젝트 초기에 정의된 요구사항 기준으로 테스트를 수행하며, 사용자가 정의한 요구사항대로 빅데이터 플랫폼이 기능하는지에 대해서 점검한다.
빅데이터 분석과 활용
왜 데이터 전처리가 중요할까?: 데이터는 절대로 우리가 원하는 대로 정렬되어 있지 않다. 지저분하고 관리가 안 된 상태로 방치된 경우가 대부분이다. 그렇기 때문에 빅데이터 분석을 하려는 엔지니어는 대부분의 시간을 전처리 단계에서 보낸다. 빅데이터에서 데이터 전처리는 데이터를 특정 플랫폼 또는 시스템에 공급하기 위해 필요한 작업의 전체를 말한다. 좀 더 구체적으로 말하면 이 기종 시스템 간에서 데이터를 전송(feeding)하고 적재하는 데 필연적으로 필요한 과정이다. 또한, 데이터 마이닝 및 분석을 위해 결측치를 처리하고, 데이터를 변환, 가공, 잡음 제거, 손실 데이터 보정, 데이터 형 변환 과정, 최근에는 비정형 데이터를 정형화(파싱, 자연어 처리)하는 과정을 말하기도 한다. 이렇게 데이터 전처리는 여러 가지 의미로 쓰인다.
데이터 전처리는 크게 데이터 전송과 데이터 적재 및 변환이라는 두 가지로 이루어져 있다. 데이터 전송 과정은 엄격하게는 전처리 과정으로 볼 수 없다. 하지만 전송 과정을 담당하는 시스템 및 담당자가 전처리를 함께하는 경우가 많아 전처리로 취급하는 것이 일반적이다. 아울러 데이터 적재 및 변환은 전송된 데이터를 플랫폼에 지원하는 형태로 변환하거나 목적에 맞게 가공하는 작업을 말한다. 특히, 데이터 분석 및 마이닝을 위한 전처리는 저수준 전처리보다는 고수준 전처리에서 이루어진다.
데이터 전처리에서 수준에 따라 나누어 보면, 저수준의 전처리와 고수준의 전처리가 있다. 저수준의 전처리는 플랫폼 간에 데이터를 전달하고, 임포트까지의 작업과 전송 및 적재의 보장을 집중해서 관리한다. 이를 위해 저수준의 구현체, 스크립트 등으로 데이터의 포맷을 바꾸고 분할, 병합, 정합성 체크 등을 수행하며 자동화로 이루어질 수 있는 데이터 마이그레이션을 통칭하여 부른다. 고수준의 전처리는 임포트 전 또는 후에 목적에 맞게 데이터를 가공하는 작업과 고급 분석(데이터 마이닝)을 위한 수작업, 그리고 SQL 등을 이용한 데이터 웨어하우스 내의 모델링 및 BI 추출/변환/로딩(ETL, Extract Transformation Loading)에 관련된 작업(자동 또는 반자동)을 말한다.