본문으로 이동
ksqlDB를 활용한 증권사의 실시간 데이터 처리하기
문서

ksqlDB를 활용한 증권사의 실시간 데이터 처리하기

강병수 · 토스 · 토스 기술 블로그

원본 보기

소개

이번 글에서 토스증권 실시간 데이터 프로세싱에 활용 중인 ksqlDB에 대해서 소개하려고 합니다.

AI 핵심 요약

실시간 데이터 처리 작업을 혼자 개발·운영해야 했던 토스증권은 생산성과 배포·모니터링의 단순성, Kafka 생태계와의 적합성을 고려해 ksqlDB를 도입했습니다. 이를 이용해 동시 접속자 수를 윈도우 집계하고, 환율 이상 징후를 감지하며, CDC로 만든 KTable을 주문 이벤트나 사용자 활동 로그와 조인해 계좌 상태 확인과 ML 특성 태깅을 처리했습니다. SQL만으로 다양한 실시간 Job을 운영할 수 있었지만, Kafka에 대한 이해와 쿼리·토픽 형상 관리, 관리 UI의 부족은 해결해야 할 과제로 남았습니다.

  • ksqlDB의 윈도우 집계는 GROUP BY와 함께 사용하며, 키를 나누면 병렬성을 높일 수 있습니다.
  • Hopping Window와 HAVING을 조합하면 최근 구간의 평균 대비 급격한 값 변화를 감지할 수 있습니다.
  • CDC 데이터를 KTable로 유지하면 원천 DB를 반복 조회하지 않고 스트림과 조인해 읽기 부하를 분산할 수 있습니다.
  • SQL 기반이라도 Kafka의 토픽·오프셋·상태 저장 구조를 이해해야 하며, 쿼리와 내부 토픽의 형상 관리도 고려해야 합니다.