クイズ: スナップショットと差分で板を組み直す
한국어 원문으로 표시합니다.
스냅숏에 마지막 반영 순번이 함께 실려 오는 가장 큰 이유는?
- 스냅숏이 몇 번째로 발행된 것인지 세어 중복 수신을 거르기 위해서다
- 스냅숏을 만드는 데 걸린 시간을 재서 피드 지연을 감시하기 위해서다
- 스냅숏을 찍는 동안에도 증분이 나가므로, 받는 쪽이 어디부터 얹어야 하는지 알아야 해서다
- 스냅숏마다 호가창 깊이가 달라서 몇 단계까지 실렸는지 알려야 해서다
증분 갱신에 수량 0 이 실려 왔다. 옳은 처리는?
- 그 가격 단계를 호가창에서 지운다
- 그 가격 단계의 수량을 0 으로 저장하고 화면에서만 감춘다
- 잘못된 메시지로 보고 무시한 뒤 오류 수를 센다
- 그 종목의 호가창 전체를 버리고 새 스냅숏을 기다린다
증분 파일만 보고 추가와 변경을 가를 수 없는 이유는?
- 파일이 도착 순서로 실려 있어 순번 순서를 알 수 없기 때문이다
- 추가와 변경은 같은 메시지 종류라서 거래소가 구분해 보내지 않기로 정했기 때문이다
- 가격이 문자열로 실려 있어 같은 가격인지 비교할 수 없기 때문이다
- 그 가격이 지금 호가창에 있는지 없는지에 따라 동작이 갈리는데, 그 상태는 받는 쪽에 있기 때문이다
재구성한 호가창에서 최우선 매수가가 최우선 매도가보다 높게 떴다. 가장 먼저 의심할 것은?
- 거래소가 교차 호가를 허용하는 시간대에 들어간 것
- 사라졌어야 할 가격 단계가 남아 있는 것. 그 단계를 지우는 증분을 못 받았을 수 있다
- 가격 정렬을 매수와 매도에서 같은 방향으로 한 것
- 수량이 큰 주문이 한꺼번에 들어와 호가가 순간적으로 뒤집힌 것
두 가격의 차이가 한 호가 단위인지 보는 판정이 한 번도 참이 되지 않았다. 가장 그럴듯한 원인은?
- 가격을 이진 부동소수로 빼서 한 호가 단위와 정확히 같아지지 않는 것
- 호가 단위를 세션 파일이 아니라 코드에 박아 두어 값이 낡은 것
- 매수와 매도의 최우선 값을 뽑는 순서를 바꿔 부호가 뒤집힌 것
- 가격을 문자열로 두고 사전 순서로 비교해 자릿수가 다른 값이 어긋난 것
증분 스트림에서 순번이 끊긴 것을 발견했다. 그 뒤로 옳은 처리는?
- 끊긴 구간의 순번을 건너뛰고 받은 증분을 계속 얹되 그 사실을 기록으로 남긴다
- 끊긴 구간 앞뒤의 가격 단계를 보간해 채운 뒤 계속 얹는다
- 증분 적용을 멈추고, 끊긴 자리를 메울 수 있는 가장 이른 스냅숏에서 호가창을 다시 세운다
- 끊긴 구간이 짧으면 계속 얹고 길면 다시 세우도록 길이로 기준을 둔다