Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

병렬 컴퓨팅에서 멀티 프로세서를 사용할 때 프로그램의 성능향상은 프로그램의 순차적인 부분에 의해 제한된다. 예를 들면, 프로그램의 95%가 병렬화 할 수 있다면 이론적인 최대 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 20배로 제한된다.


멀티스레드 프로그래밍을 하게되는 경우, 대표적으로 다음과같은 4가지 문제를 피하기 어려울수 있습니다.

  • DeadLock(교착상태)
  • Starvation(빈곤)
  • LiveLock
  • Race Condition


AKKA역시 멀티스레드를 활용하기 때문에  암달의 법칙에서 자유로울수는 없지만,  순차적으로 처리하는 부분에 대한 면적을 최대한 줄이면서 멀티스레드 프로그래밍을 할필요 없게 단순화해주며 동일한 개발컨셉으로 네트워크 분산처리를 지원합니다. 원격에 있는 멀티스레드를 제어할수 있다라는 이야기이며 다음과 같은 특징을 가지게 됩니다.

...

  • MailBoxQueue : 모든 발생이벤트는 수행 되기전 Queue에 적재됩니다. 작업완료는 별도의 메시지를 통해 통지 받을수 있으며  
  • Dispatcher : 요청된 이벤트의 수행을 어떠한 스레드전략으로 수행할지 규칙은 Dispatcher에 할수 있으며, 멀티스레드를 이용하지만 멀티스레드 프로그래밍을 할 필요가 없습니다.
  • 액터 : 모든 액터는 메시지로 명령수행이 가능하며 리모트로 확장될시 클러스터 라우터를 통해서도 작업분배가 용이합니다. 이것은 로컬과 리모트의 프로그래밍 방식에 큰차이가 없음을 의미하며 Kafka와 같은 메시징 툴과의 조합도 유리할수 있습니다. ( alpakka 는 Reactive Stream의 구현체로 Akka를 모든곳과 연결을 할수 있는 모듈명입니다. )


해결사례와 적용사례

...

루나소프트에서 AKKA의 부분요소를 활용하여 문제를 어떻게 해결하였는지 살펴보겠습니다.


스마트 플러스 상품연동

  • 호스팅 연동 상품정보 병렬및 동시성처리를 위해 멀티스레드를 대신하여, Akka의 Dispatcher가 Kafka와 함께 활용되고 있으며 상품정보를 안정적으로 업데이트하고 있습니다.


AKKA Dispatcher

Akka Dispatcher를 활용하면, 멀티스레드 프로그래밍을 할 필요없지만 다중스레드를 안정적으로 작동시키게 됩니다.

나이키 드로우 이벤트 - 타임리밋 이벤트


문제 : 나이키 드로우 이벤트에서는 타임리및 이벤트를 진행하며, 전설적인 상품의 경우 100만건 이상의 이벤트가 짧은 시간에 응모됩니다. 순식간에 발생하는 대용량 이벤트를, 초기 시스템은 처리하지 못하였습니다.

...

  • 반품 - 회수 - 지역명  : 반품 CS에는 주로 지역명이 함께 언급됩니다.
  • 원피스-블라우스-사이즈-색상 : 언급되는 카테고리및 옵션들은 주요 트렌드가 될수 있습니다.
  • 퇴실/ 복숭아 : 패션뿐 아니라 다양한 산업군에서 루나톡을 사용하는것을 활용할수 있으며, 산업군 별로 트렌트 파악또한 가능합니다.
  • 고객감동 지표 키워드 : 중요한것은 고객 CS(CUSTOMER SERVICE)가 잘 처리되어, 고객이 CS(Customer Satisfied)하는것입니다. CS가 잘 마무리된 경우 "감사" 라는 단어가 랭킹 되며 루나톡에서 중위권에 언급되는 단어입니다.



Image Added

쇼핑 이커머스 대부분의 상담내용중 대부분은 상담접수는 교환/배송/반품이며 해당 CS처리를 위한 택배회수 챗봇기능이 제공됩니다. 

CRM EVENT GRAPH


이벤트를 단지 적재하고 통계를 내는것만으로는  부족하며,  GRAPH로 사용자 이벤트를 연결하여 시각화하여 고객의 불만뿐아니라 고객의 새로운 니즈를 찾아 낼수 있습니다.

...