라이브 스트리밍 추천 백엔드 시스템
코드너리 | 2022. 02. 27
추천 서비스
실시간 스트리밍
MSA
Event Driven
사용된 기술:
간단 요약
- 하이퍼커넥트의 라이브 추천 백엔드 시스템은 이벤트 주도 아키텍처로 개발되어 있습니다. 다른 마이크로서비스에 의존성이 없고, Kafka를 통해 받아오는 event 만으로 데이터를 관리 중이죠. 덕분에 새로운 모델을 배포하면서 새로운 데이터를 사용하고 싶을 때, 다른 조직과 별도의 커뮤니케이션 없이 자체적으로 이벤트를 consume 하고 가공하여 빠르게 새로운 피쳐를 사용하고 있습니다.
- 일반적으로 Machine Learning의 성능이라고 하면 모델의 성능이 가장 중요하다고 생각하기 쉽습니다. 물론 실제로도 모델은 매우 중요합니다. 하지만 라이브 스트리밍과 같이 실시간으로 데이터를 주고받을 일이 많은 추천 시스템에서는 어떤 시스템 아키텍처를 가져가는지도 추천 성능에 영향을 끼칠 수 있습니다. 연구 단계에서 높은 성능의 추천 모델을 만들었다고 하더라도, 해당 모델을 서빙하기 위해 필요한 실시간 피쳐를 시스템에서 가져올 수 없다면 해당 모델은 프로덕션에서 사용할 수가 없습니다. 또는 서빙 사이드의 개발 속도가 모델 연구 속도를 따라오지 못한다면 iteration이 느려질 수밖에 없고, 더 높은 성능 향상을 이룰 기회를 날려버릴 수 있죠. Machine Learning에서 가장 중요한 가설 → 오프라인 실험 → 온라인 실험 → 개선 → 가설 의 Cycle을 더 빠르게 굴리기 위해서는 충분히 높은 생산성을 ML 백엔드 시스템에서도 보여주어야 합니다.
- 이벤트 주도 아키텍처를 사용하면 개발의 독립성이 보장되고, 시스템이 커져도 조직 간 커뮤니케이션 비용으로 인한 생산성 저하 문제가 줄어들게 됩니다. 덕분에 시스템이 성숙해지며 코드가 복잡해져도 계속 빠른 개발과 배포가 가능하며, 모델 실험 및 개선 cycle도 여전히 자주 돌릴 수 있게 되죠.