
정적 추천 리스트를 넘어 실시간 피드백 루프와 공통 RAG 플랫폼으로 진화하는 토스증권의 AI 데이터 생태계
이 아티클은 토스증권 AI 데이터 플랫폼 팀이 사내 데이터 파편화 문제를 극복하고 실시간 개인화 추천과 하이브리드 검색 플랫폼을 성공적으로 구축한 여정을 다룹니다. 과거의 단순 정적 배치 기반 추천 방식에서 한 단계 도약해 실시간 이벤트와 임베딩 버저닝을 접목한 '루프 시스템'으로 진화시킨 실무 아키텍처를 공개합니다. 나아가 실전 환경에서 마주친 고차원 벡터 인덱싱과 JVM 메모리 과부하, 가비지 컬렉션 관리 노하우 등 머신러닝 엔지니어링 관점의 뼈아픈 고민과 해결책을 함께 녹여냈습니다.
실시간 데이터가 핵심인 금융, 증권 도메인에서 실시간 추천 및 고성능 개인화 시스템을 설계하려는 ML 엔지니어에게 최적의 레퍼런스입니다. 또한 사내에 난립하는 RAG 파이프라인을 공통 시스템으로 일원화하고 고부하 벡터 DB 서빙 시의 GC 성능 병목을 해결하고 싶은 인프라 아키텍트에게 실무적인 실마리를 제공합니다.
토스증권이 성장하면서 과거 배치 및 클러스터 기반의 정적 추천 방식으로는 실시간으로 변화하는 유저의 관심사와 주식 시장 이벤트를 즉각적으로 반영하기 어려워졌습니다. 또한, 다양한 LLM 서비스들이 각기 파편화된 방식으로 검색 쿼리를 작성하고 문서를 수집하게 되면서 데이터 품질 일관성 저하와 중복 개발 문제가 발생하였습니다.
실시간 이벤트와 유저 피드백을 지속적으로 흡수해 벡터 인덱스에 반영하는 '실시간 추천 루프' 아키텍처로 전환하였으며, 텍스트와 벡터를 결합한 하이브리드 검색 및 리랭킹 단계를 표준화한 공통 뉴스 RAG 파이프라인을 구축했습니다. 이를 위해 벡터 생성 버전 제어, 임베딩 모델 일관성 유지 기법을 도입하고 핵심 서빙 모듈을 내재화했습니다.
개별 서비스별 데이터 파편화와 쿼리 개발 부담을 해소하여 AI 데이터 생태계의 일관된 데이터 품질을 확보했습니다. 대량의 과거 아이템 임베딩을 다루는 mget 워크로드 등에서 검색 지연뿐 아니라 JVM 메모리 압박 및 가비지 컬렉션(GC) 지연을 면밀히 분석함으로써 높은 부하 상황에서도 실시간 AI 서비스를 안정적으로 운영할 수 있게 되었습니다.
Trade-off
임베딩 모델 고도화 시 기존 인덱스와의 연계 문제로 인해 벡터 재생성 및 인덱스 전체 재구축 작업을 수반해야 하므로 운영 리소스가 지속적으로 소모됩니다. 또한, 대규모 고차원 벡터 임베딩을 한 번에 조회하는 작업 과정에서 서빙 인프라의 JVM 메모리 오버헤드가 발생하기 때문에 하드웨어 사양 설계 시 신중한 성능 테스트가 강제됩니다.
사용자의 실시간 행동 데이터와 아이템의 동적 속성 변경 사항을 수집하여 추천 시스템의 피처 스토어와 벡터 인덱스에 즉시 반영하는 동적인 순환 구조입니다. 사용자 관심사의 급격한 변화나 실시간 시장 트렌드를 민첩하게 반영하는 데 유용합니다.
전통적인 키워드 매칭 중심의 텍스트 검색과 맥락적 유사성을 이해하는 밀집(Dense) 벡터 검색을 동시에 결합하는 검색 기법입니다. 여기에 날짜나 범주형 변수 같은 메타데이터 필터를 적용해 정확도와 맥락적 관련성을 모두 극대화합니다.
다양한 임베딩 모델 고도화 과정에서 구버전 벡터와 신버전 벡터가 혼재되어 검색 왜곡이 발생하는 현상을 방지하는 버전 관리 전략입니다. 모델 업데이트와 벡터 인덱스 갱신을 단일 작업 단위로 묶어 배포해야 일관성을 잃지 않습니다.