DEV Community

finaltype
finaltype

Posted on Originally published at finaltype.github.io

[260718] 첫 실주문 앞에서, 코드가 반대표를 던졌다

실제로 돈이 나가는 코드를 다시 감사했더니 진짜 버그가 여럿 나왔고, 그 김에 증권사 선택도 다시 따져봤습니다

실거래 범위를 넓히는 준비를 하는 중이라고 며칠 전에 얘기했었는데, 어제는 그 준비 과정에서 진짜 중요한 하루를 보냈습니다.

첫 실주문 앞에서, 코드가 반대표를 던졌다

실제로 주문이 나가는 코드 경로는 이 프로젝트에서 가장 조심스럽게 다루는 부분입니다. 실전에 쓰기 전에 외부 시각으로 한 번 더 감사를 맡겼는데, 결과부터 말하면 "지금 상태로는 첫 실주문을 넣으면 안 된다"는 판정이 나왔습니다.

실제로 몇 가지 진짜 버그가 나왔습니다. 이중으로 주문이 나가지 않게 막아주는 안전장치가, 정작 확인 자체가 실패했을 때는 조용히 통과해버리는 구멍이 있었습니다. 성공/실패 말고 "결과를 알 수 없음"이라는 상태를 최근에 도입했는데, 특정 상황에서는 이 상태가 제대로 안 걸리고 그냥 성공으로 새는 경로도 하나 남아있었습니다.

주문 기록을 먼저 남기고 그다음 실제 주문을 넣는 순서로 짜여 있는데, 기록 자체가 실패했을 때도 주문은 그냥 나가버리는 경로가 있다는 것도 찾았습니다. 이제는 기록이 실패하면 주문도 안 나갑니다. 계좌에 이 봇이 모르는 다른 보유분이 섞여 있을 수 있다는 전제도 다시 점검해서, 봇이 파악한 몫이 실제 잔고보다 많아지는 일이 없도록 안전장치를 하나 더 추가했습니다.

하나씩은 작아 보이는 버그들이지만, 전부 "평소엔 안 걸리다가 특정 조건에서만 걸리는" 종류라 감사 없이는 못 찾았을 것들입니다. 실계좌 자금이 걸린 유일한 경로라, 이번 감사는 시간을 넉넉히 들일 가치가 있었습니다.

증권사를 다시 골랐다

실거래를 넓히는 김에, 지금 쓰는 증권사 API를 계속 쓸지 다른 곳으로 옮길지도 다시 따져봤습니다. 처음엔 "굳이 옮길 필요 없다"로 결론이 났는데, 하루 안에 다시 검토하면서 결론이 뒤집혔습니다.

이유는 단순합니다. 아직 실주문을 한 번도 안 넣은 단계라, 지금이 증권사를 바꾸기 가장 싼 시점이기 때문입니다. 실제로 몇 주 더 쓴 뒤에 옮기려면 이미 쌓인 검증과 익숙함을 다 버려야 하는데, 지금은 버릴 게 없습니다.

결정한 뒤엔 바로 새 증권사 쪽 연결을 실제로 테스트해봤습니다. 인증, 잔고 조회, 종목 조회가 전부 문제없이 됐습니다.

장중에 AI를 붙이지 않기로 확정

예전부터 "장중에도 가벼운 AI 판단을 상시로 붙이면 어떨까" 하는 아이디어가 있었는데, 어제 최종적으로 접기로 했습니다. 여러 차례 검토를 거친 결론입니다.

핵심 이유는 이렇습니다. 장중에 빠르게 반응해야 하는 정보는 대부분 이미 시장 가격에 즉시 반영되고, AI가 진짜 가치를 더할 수 있는 더 느린 정보는 이미 하루 단위 분석이 소화하고 있습니다. 굳이 상시로 돌릴 이유가 빈약한데 비용은 결코 작지 않다는 게 최종 판단이었습니다.

대신 장중엔 규칙 기반 감지만 유지하고, AI 판단이 필요한 서술은 온디맨드로만 요청하기로 했습니다. 결정은 여전히 밤에, 하루 단위로 내립니다.

데이터 아카이브 — 어제 사각지대, 오늘 마무리

데이터 아카이브(새 창) 쪽에서 그제 발견한 문제 하나를 어제 마무리했습니다. 과거 뉴스를 종목과 연결하는 작업이 일부 종목만 대상으로 하고 있었던 그 사각지대입니다.

대상 범위를 전체 종목으로 넓히고, 이미 모아둔 기사들을 다시 연결하는 작업까지 마쳤습니다. 새로 기사를 다시 긁어올 필요 없이, 이미 있는 데이터를 다시 매칭하는 것만으로 해결됐습니다.

그 밖에

  • 과거 뉴스를 유료 서비스에서 사오는 방안도 검토했었는데, 이번엔 하지 않기로 결정했습니다. 지금 방식으로도 충분하다는 판단입니다.
  • 조만간 시작할 큰 구조 재편 작업의 사전 준비를 무위험 범위 안에서 미리 끝내뒀습니다. 실험 결과를 기록하는 방식과, 지금 어떤 프로세스가 뭘 하고 있는지 정리하는 문서 작업입니다.
  • 네트워크 오류를 감지하는 로직이 여러 곳에 흩어져 있던 걸 하나로 합쳤습니다. 이제 한 곳만 고치면 됩니다.

돌아보면 어제는 "실거래를 더 넓히기 전에, 지금 있는 걸 얼마나 못 믿어야 하는가"를 하루 종일 물어본 날이었습니다. 감사 없이 넘어갔으면 몰랐을 것들이 여럿 나왔습니다.

Top comments (0)