adsense(728_90)


noSQL기반의 실시간 고객 마케팅 시스템 아키텍처 Enterprise

나는 작년에 noSQL기반의 이벤트처리에 특화된 룰엔진 솔루션을 이용하여 실시간 고객 마케팅 시스템을 구축하는 프로젝트에 6개월간 솔루션 아키텍트로 참여하였다.
때는 바야흐로 BigData의 시대, 고객의 정보는 넘쳐나고 그것들의 의미를 찬찬히 분석하고 의사결정을 하는 것도 중요하지만 고객이 정말 가려운 곳이 있을 때 재빨리 파악해서 대응을 하는 똘똘한 마케팅 시스템이 주목받고 있다. 즉, 대중 마케팅이나 타겟마케팅이 아니라 개인화 마케팅같은 눈치빠른 마케팅의 시대에 있다.

그런데 문제는 이러한 극단적인 실시간 개인화 마케팅에는 대량의 데이터에 대한 아주 아주 빠른 처리 능력이 요구된다는 점이다.

분당에 사는 30대 남자가 롯데마트에 와서 10만원 이상을 결제하고 분유와 맥주를 구매했을 때 그가 과거 해당 롯데마트에서 얼마나 실적이 있으며 신용도는 어떠한지, 구매한 시간대가 언제인지에 따라 그에게 롯데마트 포인트를 2배 올려주는 서비스를 제공할지 치킨을 할인된 가격으로 제공할지 술을 마실 수 없는 아내를 위해 콜라를 덤으로 제공할지 2초에서 3초 안에 결정해야하는 상황에서 기존의 RDB나 DW방식은 아주 많은 한계를 갖고 있다.

이처럼 고객 정보 자체보다 해당 정보와 관계맺고 있는 수없이 많은 열린 정보들과의 관계와 변화가 더 중요하고 그 관계와 변화를 빨리 파악해내는 데 있어 noSQL과 이벤트처리 솔루션은 큰 효율성을 제공한다.

아래는 해당 프로젝트에서 noSQL기반의 솔루션이 어떻게 대량의 이벤트 정보를 처리하는 지를 대략적으로 보여준다.


그림에서 보는 것같이 Grid기반의 memory cache스타일의 noSQL은 고객의 정보를 다양한 채널로부터 받아서 그것들간의 Context정보를 저장한다. 그리고 그 정보는 실시간으로 마케터에게 통계 및 분석 정보를 전달하기도 하고 실시간 룰엔진처리 엔진을 통해 즉각적인 마케팅 활동에 도움을 주기도 한다.

과거의 기술 방식이었다면 초당 몇만건의 SQL문을 처리해야 했고 그럼에도 불구하고 몇십초 몇분이 걸릴 수도 있었던 상황이었으나 noSQL과 이벤트 처리 솔루션을 통해 1-2초 내에 처리가 가능해졌다.

이 프로젝트에서 사용된 noSQL기술은 하둡(Hadoop)기반의 범용적인 noSQL이 아니라 그리드 기술이 적용된 memory cache방식인 IBM Extreme Scale(Oracle의 coherence와 유사함)이다. 5-6년 전에 이미 나온 기술이어서 기술적인 완성도도 높고 성능도 충분히 발휘할 수 있었다. 하지만 Row oriented sparse column store방식인 HBaseCassandra로도 구현이 당연히 가능하리라고 본다.

물론 실시간 마케팅을 처리하기 위해서는 noSQL기술만으로 되는 것은 아니다. 기획부터 테스트, 시뮬레이션, 실행, 분석에 이르는 모든 마케팅 프로세스를 지원해야하기 때문에 noSQL기술은 전체 중 아주 일부분이지만 실시간 마케팅 시스템에서 가장 큰 난제였던 성능 부분을 해결할 수 있는 핵심기술 중의 하나이기에 이렇게 소개하게 되었다.

덧글

  • 제우스 2011/06/02 13:23 # 답글

    잘보고 있습니다.
    계속 좋은 포스팅 기대할께요
  • Calmglow 2011/06/02 14:04 #

    예 감사합니다.
  • kkamagui 2011/06/15 12:17 # 삭제 답글

    좋은 글 감사합니다.

    데이터 처리쪽이 전공은 아니지만, 읽으면 머리에 쏙쏙 들어오게 잘 정리해주시니 이해가 잘 되는군요.

    앞으로도 좋은 글 많이 부탁드립니다. ^^
  • Calmglow 2011/06/15 17:41 #

    힘이 나는 댓글을 주셔서 너무나 감사합니다. 노력하겠습니다.
댓글 입력 영역


Google Analytics