Fluent 2016 - 그래프 이론을 활용한 추천 엔진 구축

Source

  • Evernote/ancom21c's notebook/Fluent 2016 - Building Recommendation Engine with Graph Theory.md

Summary

소규모 엔지니어링 팀이 마켓플레이스 환경에서 기존 SQL 기반 추천 시스템의 성능 문제(300ms 이상 지연)를 해결하기 위해 그래프 이론 기반의 경량 추천 엔진을 1 주 만에 자체 구현한 사례입니다. Neo4j 같은 외부 라이브러리 대신 Node.js 메모리 상에서 직접 그래프 자료구조를 구현하여, 사용자/상품을 노드, 상호작용을 엣지로 모델링했습니다. 가중치 기반 그래프와 다익스트라 알고리즘을 적용해 최소 경로(가장 가까운 노드)를 계산함으로써 빠른 응답 속도와 기술 부채 없는 솔루션을 달성했습니다.

Key Points

  • 기존 SQL 기반 추천 시스템은 전체 사용자 기반 생성에 시간이 오래 걸리고 쿼리 응답이 느림 (300ms+).
  • 외부 그래프 DB(Neo4j) 도입 대신, Node.js 메모리 상에서 직접 그래프 자료구조를 구현하여 경량화.
  • 노드 (User/Listing) 와 엣지 (Request/Favorite/View) 로 구성한 가중치 기반 그래프 모델 적용.
  • 다익스트라 알고리즘 등을 활용해 노드 간 거리 (가중치 반비례) 를 계산하여 가장 관련성 높은 추천 대상 추출.
  • 1 주 만에 구축 완료, 빠른 성능 확보 및 기술 부채 최소화 성공.