010:00 – 3:03
실시간 시세 플랫폼의 요구사항과 구조
토스증권 마켓플랫폼 팀의 서버 개발자가 실시간 시세 플랫폼을 만들며 얻은 경험을 공유한다. 주식 화면에서 보이는 종목 가격·호가·차트 같은 정보가 곧 시세 데이터인데, 국내 시세는 한국거래소가 체결가·호가뿐 아니라 거래정지·공매도·외국인 투자 현황 같은 정보까지 전문(電文) 형식으로 새벽부터 저녁까지 끊임없이 내려보낸다. 특히 아침 9시 개장 직후에는 거래량이 폭증해 처리할 데이터도 함께 늘어나는데, 이런 피크 시간에도 처리가 밀리거나 누락되지 않게 만드는 것이 시세 플랫폼의 핵심 과제다.
시세 플랫폼은 거래소 데이터를 가장 먼저 받아 가공한 뒤 내부 서비스들에 제공하고, 그 결과가 최종적으로 토스 앱 화면에 노출된다. 단순히 전문을 디코딩해 전달만 하는 것이 아니라 차트처럼 과거 데이터를 누적하거나 여러 정보를 합성해 주기도 한다. 이 플랫폼은 낮은 지연 시간과 빠른 장애 복구를 최우선 목표로 삼는데, 시세가 지연되거나 부정확하면 투자자에게 큰 혼란을 줄 수 있기 때문이다. 구조는 크게 세 파트로, 거래소가 UDP 멀티캐스트로 뿌리는 데이터를 구독해 읽어오는 수신부, 비즈니스 로직이 모여 결과를 Redis에 저장하고 실시간 전달하는 처리부, REST API를 제공하는 서빙부로 나뉜다. 처리부는 블로킹 IO가 있어 처리 시간에 가장 큰 영향을 주고, 서빙부는 코드 변경이 잦아 장애 확률이 높은 지점이다.