[Data Flow] 실시간 차트 데이터 흐름도 재설계: 프론트엔드 연산 제거와 완벽한 정합성 보장하기
·
[Spring] - Study/Project - CoinFlow(비트코인 차트)
이전 블로그 글인 Data Flow 설계하기: Latency와 Consistency를 고려해보자에서 이어지는 포스팅입니다. 오늘은 Data Flow 재설계를 하게된 배경과 왜 재설계를 하게 되었는지에 대해 자세히 설명해보고자 합니다! 그럼 지금부터 시작합니다~~ [1] 이전 아키텍처(Dual-Path)의 회고: 어떻게 정합성을 맞추려 했는가? 이전 포스팅에서 다루었던 코인플로우의 초기 아키텍처는 Dual-Path Architecture였습니다.금융 데이터의 생명인 실시간성과 데이터 정합성 모두 잡기 위해, 시스템을 속도 전용 파이프라인(Fast-Path)과 정확도 전용 파이프라인(Slow-Path)으로 완전히 분리했던 구조입니다. 이 구조에서 데이터 정합성을 맞추기 위해 사용했던 핵심 전략 세 가지는..
초당 수만 건의 틱 데이터, 거래량은 어떻게 집계해야 할까? (BigDecimal vs Long)
·
[Spring] - Study/Project - CoinFlow(비트코인 차트)
안녕하세요, 오늘은 거래량 계산 방법에 대해 소개하고자 합니다! CoinFlow에서 가장 많이 수신되고, 가장 빈번하게 계산되는 데이터는 체결 틱(Tick)의 거래량과 가격입니다.보통 많은 사람들이 1주를 사면 거래량도 1개 증가하는 것으로 알고 계시지만, 사실 0.xx 단위로도 거래가 될 수 있습니다.그렇기에 매 틱마다 들어오는 거래량 소수점 데이터(예: 0.00123456 BTC)를 1분 봉, 5분 봉으로 쉴 새 없이 더해야 합니다. 물론 아직 초당 수만 건 정도의 Tick 데이터가 수신되지는 않습니다. 하지만 추후에 종목을 늘린다면 초당 수만 건의 거래량 데이터는 충분히 처리해야 합니다. 이를 해결하기 위해 어떤 방식들이 있었고, 최종적으로 제가 적용한 방식이 무엇이었는지 소개해드리고자 합니다. ..