반응형

5 - 고객 프로파일링(Customer Profiling) - 기술 구현 관점

안녕하세요,
이번에는
고객 프로파일링을 위해 기술/인프라를 구현하는 방법에 대해서 이야기해 보겠습니다. ^^​
크게 3가지가 있지 않을까 싶습니다.

수작업(엑셀 활용), DBMS 활용, 빅데이터 기술 활용

(아, 분석 기법, 즉, 통계기법(예: 스코어링 기법), 인공지능, 기계학습 등의 내용은
설명할 내용도 많고 광범위해서 별도로 다루어야 할 것 같구요
여기서는 IT기술과 관련된 내용을 다루어 보겠습니다. )
첫째, (반)수작업 !!!
엑셀 등을 이용해서 하나하나 한땀한땀 고객과 관련된 지수를 계산하는 방법이죠
데이터 분석 4 - 고객 프로파일링 - 데이터 분석 프레임 관점에서 설명 드렸던
분석 프레임을 먼저 만들고
(그리고 필요하다면 추가로 분석 기법을 활용해서)
​분석 프레임에 사용될 데이터 또는 지수를 만드는 작업을 해야합니다.
이때 데이터가 있는 IT시스템에서 다운로드 받아서 엑셀에서
분석 프레임을 구현하는 것이지요.
분석 프레임에 대한 이해는 전 포스팅을 참고하세요

당연히(?) 분석 데이터량이 많지 않은 경우
(즉, 고객이 적고, 상품/서비스가 적은 경우)
사용가능한 방법입니다.)
엑셀(?) 이라는 한계성으로 (Access DB연결등 확장 방법은 제외 하고요 ^^)
대량의 데이터를 처리하기는 어렵지만
그래도 무시하면 안됩니다.
늘 우리 곁에 (?) 있기 때문에 엑셀은 친숙하고
이용하기 쉽고, 빠르게 구현할 수 있습니다.
엑셀에 추가 설치하는 소프트웨어를 구매하시면
엑셀 내에서 각종 통계 분석도 가능하며 쉽게 구현할 수 있습니다.
그러나 오늘의 메인 메뉴는 아니니까 이쯤하겠습니다. ^^ 


둘째, DBMS 이용 방법 !!!
잘 아시겠지만 DB 또는 DW/Mart를 구축한다고하죠.
​이 방법도 운영 시스템에서 필요한 데이터를 연동 받아
(여기서는 고급지게 ETL 이란 용어를 씁니다. Extract Tranform Load)
새로운 DB에 적제하고 분석 프레임에 맞게 데이터를 생성합니다.
분석 프레임에서 원한는 방법 대로 (또는 통계 분석 기법 대로)
데이터(Table, Mart)를 만들어 놓습니다.
당연히 추천을 하기 위한 대상(고객 또는 상품)을 기준으로
각각 어떤 추천을 제공할 것인지 만들어 놓습니다.
실제 추천할 시스템에서는 이렇게 만들어 놓은 데이터를 가져다가
주어지는 조건에 맞게 추천을 제시하게 개발하면 됩니다.
물론, 실시간으로 데이터를 분석해서 제공하는 방법은 조금 다릅니다.
앞으로는 이처럼 알고리즘이 어플리케이션 시스템에 내장된 개발이 증가할 것으로 예상되지만 현재는 많지 않습니다. 그럴 필요성/효과도 높지 않고요.

일반적으로 DW/Mart를 구축하는 프로젝트라고 할 수 있으며
일반적으로 DBMS(오라클:Oracle, MS SQL, MySQL 등)라는 미들웨어를 사용하여 구축합니다.
(여기에 OLAP, 시각화 Tool을 함께 개발하여 BI (Business Intelligence) 구축 프로젝트라고도 합니다)

전통적으로 데이터 관리/분석을 위해 기본이 되는 영역으로
이부분도 이야기가 많으니 다음 시간이 더 자세히 하시죠.^^ 



세번째, 빅데이터 기술 이용 방법 !!!
드디어~ 관심이 많으실 것 같은 ​빅데이터 기술 이용 방법입니다.
아래 설명을 쉽게 이해하시려면 빅데이터와 아키텍처라는 용어를 이해하는게 좋으니까요
잘 모르시면 아래의 이전 포스팅 내용을 먼저 참고하세요.


그럼 이해하셨다고 생각하고 설명을 이어가겠습니다.

앞서 설명드린 두가지 방법과 절차는 같습니다.
즉, 데이터를 확보(다운로드 or ETL)하고
분석 프레임에 따라 데이터를 생성하고
이 프로피일링 데이터를 실제로 이용할 어플리케이션 시스템에 연동/제공해주면 됩니다.
(ETL 하고 연동하는 것은 일반적인 내용이고 이번주제의 핵심은 아니니까 넘어가겠습니다.
즉, 주로 분석 프레임에 따라 데이터를 생성하기 위해 필요한
빅데이터 아키텍처에 대해서 설명 드리겠습니다.)

빅데이터가 발생함에 따라 두번째 방법인 DBMS 이용하는 방법에서
한계성과 효율성에 대한 의문이 발생합니다.

'도저히 DBMS로 감당할(저장/처리할) 용량이 아니다',
또는
'요구되는 처리 시간내에 데이터를 만들어 내지 못한다'
는 현상이 나왔고
그렇게 감당하려고 하더라도 DBMS 라이센스를 사다보면
비용이 어마무시하게 나와서 기업에서 쓸수가 없었습니다.
(이 이야기는 빅데이터 기술의 출현 배경과도 일맥상통합니다.)

아키텍처 관점에서 기존에는 집중(통합) 아키텍처였다면
빅데이터에서는 분산 아키텍처로 구성합니다.
집중과 분산의 기준을 서버로 생각하시면 이해가 쉽겠습니다.
즉, 1대의 서버에서 데이터를 저장/처리하면 집중 아키텍처,
여러대의 서버에서 저장/처리하면 분산 아키텍처로 생각하세요.
(물론 DBMS로 여러 서버를 묶어서 사용할 수 있으나 실질적인 한계와 비용 효율성에서 문제가 있습니다.
그리고 DBMS는 유명한 CAP 정리에서
(일관성: Consistency, 가용성: Availability, 분할내성: Partition tolerance 모두를 만족하는 분산시스템은 없다는 이론)
C와 A를 선택/구현한 방법입니다.
즉, 메시지 처리나 시스템이 잘못되면 서비스가 죽는거죠)

그래서 이러한 (많은 양의 데이터를 효율적으로 저장/처리해야하는) 문제를 해결하고자 나온 구조가
바로 빅데이터 기술(분산 아키텍처)이고
(DBMS에서 C일관성과 A가용성을 선택했다면 빅데이터 아키텍처에서는 다른 조합의 두가지를 선택한 것이지요
예를 들면 C/P 또는 A/P를 선택 구현한 방법입니다. 몽고DB, 카산드라, HBASE 등)
이에 활용되는 요소
기술이 오픈소스 중심의 소프트웨어 들입니다.
예를 들면, 많이 들어보셨을 HDFS, 하둡(Hadoop), HiVE, Pig, HBASE, Spark 등 입니다. 
이처럼 개별 솔루션을 서로간의 버젼별 호환성을 일일히 확인해가면서 설치/사용해야하는데...
이런 불편함을 해소하고자 클라우데라(Cloudera), 호튼웍스(HortonWorks) 맵R(MapR)에서
버전간 호환성을 점검하고 일부는 추가 기능까지 포함된 배포판을 제공하고 있습니다.
(물론 무료도 있고 유료버전도 있습니다..^^)
한국에서​, 예전에 (2011년 전후, 대부분) 빅데이터 기술을 이용하여
프로파일링 분석 프레임을 구현하기 위해서는 
HDFS 와 하둡을 기반으로, Java 개발언어로 Map/Reduce(MR)를 이용하여 프로그램을 개발해야했습니다.
그래서, 그나마 산술 통계나 간단한 로직 구현은 가능했지만
통계 알고리즘을 구현하기위해서는 고도의 개발 역량이 필요했습니다.
이러한 문제가 있어서 이후에 인기를 끌은게 아파치 머하웃(Apache Mahout)입니다.

복잡한 기계학습 알고리즘을 라이브러리 형태로 제공하여 쉽게 MR로 개발할 수 있게 해주었지요.
그러나 이또한 MR(Map/Reduce)라는 문제로
성능의 상대적(저는 이렇게 주장합니다 ^^) 한계를 보이게 되었고
그래서 요즘 한창 뜨고 있는 스파크 Spark 가 확산되기 시작했습니다.
(간단히 말씀드리면 MR은 HardDisk 데이터를 처리하고 Spark는 메모리의 데이터를 처리합니다.
컴퓨터 지식이 있으면 아시겠지만 당연히 메모리에서 처리하는 것이 디스크 대비 업청나게 빠릅니다.
특히, 알고리즘 중 반복작업을 할때는..더.)

스파크도 기계학습 라이브러리를 제공하여 쉽게 알고리즘을 구현할 수 있습니다.
그리고 말씀드린 것처럼 메모리에서 처리하기 때문에 빨리 처리합니다.
마이크로 베치를 이용하여 준 실시간에 가깝게 서비스를 할 수 있으며,
클러스터(여러대의 서버를 한대처럼 만들어서 사용하는방법) 구성이 가능하여 수평 확장이 가능합니다. (이말은 즉, 용량이 부족하면 서버를 추가하면 된다는 의미입니다)
요즘 고객 프로파일 관련 분석 프레임을 구축한다고 하면
통계 알고리즘이나 기계학습, 인공지능이 빠질 수 없겠지요.
그래서 이러한 알고리즘(라이브러리 활용)을 구현하기 쉬운 방법인 스파크가 뜨고 있는 것 같습니다.


이번에는 고객 프로파일링을 위한 분석 프레임 구현시 기술적 방법인
수작업(엑셀 활용), DBMS 활용, 빅데이터 기술 활용
방법에 대해서 이야기해 보았습니다.

다음에는 마케팅 기법과 통계/기계학습 분석 방법에 관해서 이야기해 보겠습니다.
마케팅 기법과 분석 목적에 따라서 사용하는 방법을 달리하는 것이 효과적/효율적입니다.
그래서 마케팅 기법과 모델링 알고리즘 그리고 구현 IT기술을 잘 아는 것이 중요합니다


감사합니다.

 

 

반응형

+ Recent posts