기본 콘텐츠로 건너뛰기

[빅데이터] 빅 데이터란 가치를 찾는 것이다 – 문용준 빅데이터 아키텍처



[빅데이터] 빅 데이터란 가치를 찾는 것이다 – 문용준 빅데이터 아키텍처





문용준 빅데이터 아키텍처
- SK C&C 부장
금융 차세대 프로젝트 및 IFRS 프로젝트 수행
금융 Application Architect로 활동 중

빅 데이터란 가치를 찾는 것이다과연 누구의 가치를 찾아야 하는 것인가?
기업들이 자신들의 가치를 찾는 것일까 아니면 공공기관들이 자신들의 가치를 찾는 것일까?
무엇을 위한 가치인지를 첫 번째로 인식해야 한다기업이나 공공기관들 자신들을 위한 가치가 아니라 그들의 고객인 사람들의 가치를 찾는 것이 진정한 빅데이터이다.
국내에서는 뉴스나 소셜에 있는 데이터 즉 텍스트 데이터단어를 가지고 주가 가격 변동을 분석하고 있다주식가격은 주식시장 참여자들이 실제 행위를 분석해야지 뉴스나 소셜로 분석한다고 주식시장 참여자들이 매매행위를 분석할 수 있는 것이 아니다.
최근 CRM에 빅데이터를 반영하자고 하는데 왜 CRM이 빅데이터에 최우선 과제가 될까?
기업은 자신의 만든 물건 즉 상품을 팔아야 생존하기 때문이다자신들이 상품을 잘 만들었다고 판매되는 것도 아닌데 과연 무엇을 분석할 것인가?
여기서 기존 CRM의 문제점을 다시 집어보고 가자첫째, CRM은 IT 벤더사의 솔루션을 도입했다둘째컨설팅 결과를 그대로 수용했다셋째고객 세그멘테이션을 세분화할 수 없다넷째고객의 반응을 수집하지 않는다.
단순히 이 4가지만을 봐도 현재 도입된 CRM은 생명력이 없는 소프트웨어이다소프트웨어는 세상의 변화에 따라 살아 움직여야 되는데도입만 했지 변화할 수 없니 관리만 하고 있다.
CRM은 앞으로도 없어지는 개념이 아니다진정한 고객관계를 가지려면 우리가 해야 할 일이 무엇일까?
고객에게 기업의 가치가 아닌 고객의 이익이 되는 가치를 돌려줘야 한다는 것이다고객이 필요한 가치를 고객의 남긴 데이터를 가지고 찾아 줄 수 있을 때 빅 데이터 기법이 필요한 지를 정확히 느낄 것이다.
기업의 고객 수가 3천만 명, 1년간 활동하는 고객 수는 1500만 명, 1일 거래하는 고객수가 5백만 명일 경우 고객 가치를 돌려주려면 어떤 방식으로 분석해야 할까?
통계기법으로 샘플링 하여 분석한다면 고객에게 가치를 돌려줄 수 없다누가 지금 거래하러 올지도 모르는데 몇 가지 규칙만을 가지고 고객에게 가치를 줄 수 있을 것인가?
기업이 관리하는 모든 고객을 다 분석하고 고객 개개인들의 프로파일링을 하고 고객 군을 이룰 때 기준이 되는 대상을 찾아야 한다내부에 가진 데이터를 분석했지만 잠재고객에 대한 성향을 분석하려면 외부의 다양한 데이터를 수집해야 한다외부데이터 수집도 기업의 분석한 결과를 기준이 되어야 한다.
빅데이터를 분석을 다하면 과연 통찰력이 늘어날까이점도 미지수이다.
실제 고객과의 대화를 하지 않았는데 고객들이 분석한 결과대로 움직일지는 아무도 모른다.
빅데이터 활용을 위한 실시간 고객 접점 채널을 만들어서 실제 분석한 결과를 활용해야한다.
고객의 반응을 정확히 포착하여 빅데이터 분석에 포함되어야 빅데이터를 도입한 하나의 결과가 완성되는 것이다.
가끔 신문에 빅데이터 홍보 기사가 실린다과연 홍보해서 무엇을 얻을까질문을 해본다고객과의 대화 체계도 없고 고객의 가치도 돌려주지 않는데 어떻게 프로젝트가 성공했다는 것일까?
빅데이터를 투자할 경우 ROI를 측정할 수 없는 것은 맞는 말이다빅데이터는 기업들이 자신의 고객들에게 가치를 주는 일이므로 꼭 수행해야 하는 것이다고객과의 대화를 통해 수집된 데이터가 곧 기업의 자원이며 돈이라는 것을 인식해야 한다.
빅데이터는 일반적인 가치를 창출하는 게 아니라 기업과 고객이 상호대화를 나누면서 함께 살아가는 사회를 만드는 것이다수익창출만 바라보면 고객이 보이지 않으니 늦었지만 고객의 가치가 무엇인지를 잘 파악하는 전략을 수립하여 빅데이터 세상으로 들어와야 한다.

댓글

이 블로그의 인기 게시물

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
}


golang에서 인터페이스 Type Assertion 처리하기

인터페이스: Type assertion 
인터페이스를 이용하여 메소드가 아닌 일반 변수에 할당하며 변수에 정의된 타입들에 대해 명확히 구분할 수 있다.   
Var 변수명 interface{} 로 정의하면 일반 변수정의 타입들도 전달할 수 있다.      //구조체 정의 var a BB = BB{X:10} 
//Type assertion 정의 var value interface{} 
   // 할당    value = a     //value.(타입)     fmt.Println("  type assertion ", value.(BB))  //출력값 {10}
리턴값을 interface{} 즉 type assertion 을 처리하도록 정의 func weird(i intinterface{} { if i < 0 { return"negative"      } return i }
func main() {

golang 에서 generic 처리하기

go언어에서 제너릭 처리를 위해서는 아래처럼  인터페이스를 정의하고 각 타입별로 구현을 한다.

슬라이스에 각 타입으로 컨버전하여 값을 넣고 슬라이스 순번대로 호출하면 자신의 타입에 맞는 메소들를 호출하여 처리한다.




type Integer16 int16
type Integer32 int32

type Calculator interface {
Calculate()
}

func (i Integer16) Calculate() {
/* behavior here */
fmt.Println(" Integer16 ", i)

}
func (i Integer32) Calculate() {
/* behavior here */
fmt.Println(" Integer32 ", i)
}


func main() {

container := []Calculator{Integer16(1), Integer32(2)}
fmt.Println("container   ", container)
container[0].Calculate()
container[1].Calculate()


}

// 결과값

ontainer    [1 2]
Integer16  1
Integer32  2