코인 레이더가 이틀 동안 갱신되지 않았습니다. 원인은 김치 프리미엄이 0종이었기 때문입니다.
먼저 좋은 소식부터. 검사가 제 역할을 했습니다. 수집기는 결과를 커밋하기 전에 검사를 통과해야 하는데, 김프가 하나도 없는 결과가 거기 걸려 커밋이 막혔습니다. 빈 김프로 등급을 매겨 올리느니 어제 데이터를 그대로 두는 게 낫다는 설계대로 동작한 것입니다. 조용히 이상한 등급이 올라가는 것보다 갱신이 멈추는 편이 낫습니다.
로컬에서만 되는 소스를 1순위에 뒀습니다
원인은 바이낸스였습니다. 자동 실행이 도는 서버는 미국 IP를 쓰는데, 거기서 바이낸스가 451(Unavailable For Legal Reasons)을 돌려줍니다.
부끄러운 건 그 전날 이미 같은 신호를 봤다는 것입니다. 다른 경로에서 똑같이 막히는 것을 확인하고도 "수집기는 회사망에서 도니까 괜찮다"고 판단하고 넘어갔습니다.
수집기가 실제로 도는 곳은 제 PC가 아니라 자동 실행 서버입니다. 하루 네 번 자동으로 돌리려고 거기 올려 놓고서, 판단은 로컬 기준으로 했습니다. 그 대가를 이틀치 갱신으로 치렀습니다.
폴백으로도 안 남겼습니다
고치는 방법은 두 가지였습니다. 바이낸스를 폴백으로 내리거나, 아예 빼거나.
뺐습니다. 로컬에서만 되는 소스가 목록에 남아 있으면 같은 코드가 환경에 따라 다른 김프를 내놓기 때문입니다. 제 PC에서는 바이낸스 기준으로, 서버에서는 다른 거래소 기준으로 계산됩니다. 그런 차이는 배포한 뒤에야 드러나고 재현도 안 됩니다.
지금은 OKX와 Bybit와 Gate.io를 전부 받아서 합칩니다. 첫 성공에서 멈추지 않는 이유는 거래소마다 상장 목록이 다르기 때문입니다. 앞 소스를 우선하니 기준 거래소는 언제나 OKX로 일정합니다.
결과적으로 김프를 계산할 수 있는 종목이 오히려 늘었습니다. 149종 → 195종입니다.
심볼 충돌 목록을 지웠습니다
예전에 하드코딩해 둔 목록이 있었습니다. DATA, PROS, LIT, BEAM, WAVES, SNT, ELF — 국내와 해외가 같은 티커로 다른 코인을 상장해 김프가 +20,898% 같은 값으로 튀던 종목들입니다.
OKX로 재 보니 그 종목들이 전부 +0.2~0.6%로 정상입니다. 애초에 종목이 이상했던 게 아니라 바이낸스가 같은 티커로 다른 코인을 상장하고 있었을 뿐입니다. 그러니까 그 목록은 종목의 성질이 아니라 '바이낸스 기준'이라는 사실을 적어 둔 것이었습니다.
소스가 바뀔 때마다 어긋나는 목록 대신, ±40% 하드컷 하나로 처리합니다. 김프는 차익거래로 메워지므로 개별 코인이 40% 넘게 벌어진 채 유지되는 건 시장 현상이 아니라 데이터 문제입니다. 이 규칙은 어느 거래소를 쓰든 똑같이 작동합니다.
목록을 지우고 규칙을 남긴 셈입니다. 특정 환경에서만 맞는 예외 목록은 그 환경이 바뀌는 순간 조용히 틀린 답을 냅니다.
이어서 읽을 것
수집기가 실제로 어디서 도는지 모르면 막힌 이유도 못 찾습니다. 같은 종류로 회사망에서 무엇이 막히고 무엇이 되는지는 회사망 TLS 검사 프록시 뒤에서 개발하기에 적었습니다. 점수를 매기는 것과 그 점수가 맞는지는 다른 문제라는 쪽은 주식 레이더에 있습니다.