기본 콘텐츠로 건너뛰기

[빅데이터] ‘Big fast data’를 통한 고객과 의사소통?



[빅데이터] ‘Big fast data’를 통한 고객과 의사소통?




문용준 빅데이터 아키텍처
- SK C&C 부장
금융 차세대 프로젝트 및 IFRS 프로젝트 수행
금융 Application Architect로 활동 중 
Big data는 고객의 가치를 분석하여 고객 포트폴리오고객의 속한 집단의 포트폴리오를 구성할 수 있다이를 기반으로 고객의 가치를 돌려주기 위해 실시간으로 고객과의 의사소통 체계를 구축하는 것이 Big fast data이다.
고객의 행동은 장소와 시간에 구애를 받지 않고 일어나고 있으며그 데이터를 기업에게 전송해 주고 있다하지만 기업은 실시간으로 이 데이터를 수집하고 저장만 할뿐 이를 재분석하여 고객에게 좋은 정보를 되돌려주지 않는다따라서 기업은 쿠폰 등 다양한 마케팅 정보를 고객들이 활동하는 시간과 장소에 맞춰줘야 한다.
그렇다면 어떻게 구성할 것인가?
Big fast data 서비스는 실시간 처리이며 실시간으로 고객의 행동에 맞추려면 In-Memory를 이용한 분석을 통해 즉각적인 반응을 수행하여야 한다.
Big fast data 분석을 위한 기본 데이터는 고객 포트폴리오와 고객 집단의 포트폴리오 분석서비스에 필요한 상품정보 등을 In-Memory에 수 테라에서 수십 테라 바이트 정보가 적재되어 있어야 하고 고객의 거래로 발생한 로그가 즉시 적재되어 스트림분석을 통해 고객의 현재 위치와 행위에 따른 적절한 서비스를 제공되어야 한다.
스트림 분석을 위한 알고리즘은 기존 Big data 분석의 알고리즘과는 차이가 있다면 이 또한 고객과의 의사소통 결과에 따라 변화가 필요하다.
유통과 금융 등 서비스 기업에서는 고객들의 구매성향과 고객들의 지갑분석 등을 통해 Big fast data 서비스를 구성할 수 있다면 고객 개인화 마케팅이 실제로 구현되어 기존 CRM의 캠페인과 이벤트 마케팅을 대처할 수 있다해외 사례로 미국 아멕스 카드와 싱가포르 DBS 은행이 현재 구축되어 서비스가 되고 있다.
소액결제와 대단위 시스템 서비스 기업에서는 결제의 정당성을 실시간으로 점검하여 고객의 결제에 대한 실시간 사기탐지를 파악하여 조치한다해외 사례로 미국의 페이팔이 수십 테라바이트의 거래내역과 사기 패턴들을 In-Memory 적재하여 실시간 분석 있다.
고객과의 대화는 아니지만 사물인 서버의 이상 유무를 점검하여 1초 수 테라바이트의 실험 데이터를 놓치지 않고 적재하기 위해 실시간 서버모니터링을 한다해외 사례로 유럽입자물리연구소 등이 구축되어 서비스 하고 있다.
이처럼 Big fast data를 구축하여 고객과의 대화를 통해 고객의 감성을 재분석하여 서비스를 수행하여 고객만족을 높여 기업의 수익을 창출하고 있습니다.
유럽입자물리연구소 경우 국내 제조업 등에 공장자동화 데이터나 사물인터넷에도 적용할 수 있어 다양한 실시간 분석을 할 수 있다.
Big data 분석을 활용하기 위해서는 반드시 Big fast data가 구축되어야 하며 기업과 고객 간의 가치교환이 원활히 되어 서로의 이익이 극대화된다.

댓글

이 블로그의 인기 게시물

golang overload 처럼 처리하기

go 언어에서는 함수명이 같을 경우 재선언 오류를 발생시킨다. 다른 메소드를 만들고 오버로드 처리하도록 설계해서 구현해야 한다. 오버로드 처리를 위해 type switch를 사용해서 들어오는 타입에 따라 메소드 호출하는 처리를 사용한다. 함수나 메소드 인자를 다양하게 처리하려면 []interface{} 로 정의해서 다양한 인자를 받아서 오버로딩 처리하면된다. package main import (  "fmt" ) func main() {  var p Person  p = Person{"dahl"}  var s string = "moon"  fmt.Println(" overloading  ", p.Overload(s))  fmt.Println(" overloading", p.Overload(nil)) } type Person struct {  name string } func (this *Person) Overload(args interface{}) string {  switch args.(type) {  case string:   return this.GetName2("moon")  case nil:   return this.GetName1()  default:   return " no match"  } } func (this *Person) GetName1() string {  return this.name } func (this *Person) GetName2(s string) string {  return this.name }

Python으로 julian date 산출하기

줄리안 일수 산출을 위해서는 윤년여부 체크를 하여 실제 그 해의 해당 일자에 대한 일수를 365 나 366 일수에 해당 일자로 전환하여 산출한다. 현재 일자를 줄리안 즉 시퀀스 일자대로 수정하는 로직이다 #일자 산출 함수 def dayconvert(month) :      convertDay = 0      dayDict = {'01':0, '02':31, '03':59, '04':90, '05':120,      '06':151, '07':181, '08':212, '09':243, '10':273,      '11':304, '12':334}      convertDay = dayDict[month]      return convertDay #줄리안데이 산출 함수 def julian(date):     year = int(date[0:4])    month = date[4:6]    day = int(date[6:8])    #윤년여부 호출   yuncheck = yunyear(year)   # 일자산출   Dday = dayconvert(month)   # 줄리안 데이 산출   Dday = Dday + day   # 유년여부 체크 및 윤년일 경우 일수조정   if yuncheck == 1:       if int(month) > 2 :            Dday = Dday + 1   # 100일 미만일 경우 포맷조정   if Dday < 100 :          Dday = '0' + str(Dday)   else :         pass   #줄리안 일자를 스트링으로 포맷 조정

Understanding golang Type . 타입이해하기...

Pre-declared Types   go 언어에서 빌드인으로 정의된 데이터 타입들.   string, number(int, uint, float...), boolean 타입들 Named vs Unnamed Type    go언어에서는 사용자 정의(type T_Int int 등)는 기본적으로 named type 으로 인식한다.   그리고  pre-declared types도 named type으로 인식한다.    unnamed type은 composited 타입들로 []int, *int 등을 별도로 인식한다.    named type 들은 메소드 정의가 가능하지만 unnamed type은 메소드를 만들 수 없다.    type Map map[string]string //this is valid func (m Map) Set(key string, value string){ m[key] = value } //this is invalid func (m map[string]string) Set(key string, value string){ m[key] = value } Underlying Type     모든 타입은 underlying type 을 가집니다.  리터럴과 declared type들은 자신의 타입을  underlying type으로 처리한다.     새로 생성되는 타입들에는 기존의 타입들이 있어야 하고 이 타입들도 항상 underlying type 을 가진다.      type Map map[string]string type SpecialMap Map SpecialMap과 Map이 underlying type은 map[string]string 이다. Assignability      //사용자 정의 타입 type Mystring string // pre-de