영웅문 조회순위 창에 새 종목이 튀어 오르는 순간, 그 종목에 뉴스가 있는지까지 붙여서 휴대폰으로 받고 싶다는 요청이었습니다.
매매는 없습니다. 키움 신 REST API로 30초마다 순위를 받고, 새로 들어온 종목을 LS증권 실시간 뉴스와 네이버 뉴스로 대조해 텔레그램으로 보냅니다.
2026년 4월 납품, 이후 v1.4까지 다섯 건을 고쳤는데 그중 첫 번째가 파라미터 값 하나였습니다.
플랫폼
키움 신 REST (ka00198) + LS 신 OpenAPI 뉴스 WS
부가
네이버 뉴스 검색 API 텔레그램
역할
비매매 · 알림 전용 PC 트레이 상주
제작 기간
약 1~2주
메인 화면은 LED 넷과 로그입니다. 진입 종목, 어느 채널에서 뉴스가 맞았는지, 발송 여부가 한 줄씩 남습니다 (종목·기사는 예시)
01흐름
트리거 — 30초마다 조회순위 상위 20개를 받아 직전 조회와 집합 차이를 냅니다. 새로 들어온 종목만 다음 단계로.
A 갈래 · LS 뉴스 — LS증권 실시간 뉴스를 WebSocket으로 구독해 1시간 슬라이딩 버퍼에 쌓아 두고, 진입 종목명으로 대조. 진입 후 5분간 추가 감시.
B 갈래 · 네이버 뉴스 — 진입 즉시 최근 2시간 기사를 검색하고, 없으면 30초 × 10회 재검색.
두 갈래는 독립 — 한쪽이 못 찾아도 다른 쪽은 진행. 종목당 알림 최대 2건. 엑셀에 적은 제외 키워드는 즉시 반영. 재진입 정책은 세 모드.
02"영웅문은 30초인데 왜 1분마다 와요?"
납품 직후 의뢰인이 정확히 이렇게 물었습니다. 30초 만에 들어왔다 나가는 종목은 아예 못 잡는다고요.
원인은 ka00198 요청 본문이었습니다. 정확한 명세를 못 찾아 웹 검색으로 추정한 필드 일곱 개를 채워 보냈는데, 실제 필수 필드는 qry_tp 하나였고 그 값이 문제였습니다.
qry_tp 1 = 1분 2 = 10분 3 = 1시간 4 = 당일 누적 5 = 30초 (영웅문과 동일)
첫 빌드: {"qry_tp": "1"} ← 서버가 "1분 단위로 집계한 데이터"를 정확히 돌려주고 있었다
수정 후: {"qry_tp": "5"}
서버 캐시 문제가 아니라 저희가 잘못된 값을 요청하고 있었던 겁니다. 다행히 요청 본문을 처음부터 config.json으로 빼 두어서 코드 재빌드 없이 고쳤습니다.
이 일 이후로 외부 API의 enum 값은 공식 문서 표 캡처나 고객이 쓰던 호출 예시를 확보하기 전엔 미확정으로 둡니다.
그다음 질문: "PC 시계가 :30인데 서버가 :28이면?"
의뢰인의 후속 우려였습니다. PC 시계 기준 :30.5에 폴링하면 서버 갱신 직전에 쏴서 매번 직전 사이클 데이터를 받고, 최악엔 항상 30초 늦습니다.
HTTP 응답의 Date 헤더로 서버 시각 오프셋을 구해 다음 폴링을 서버 시각 기준 :00 + 1.5초로 잡도록 바꿨습니다.
오프셋이 5초 이상이면 Windows 시간 동기화를 권하는 경고를 띄웁니다. 시각 정렬 폴링은 PC 시계를 믿지 않는다는 원칙이 여기서 나왔습니다.
03그 밖에
8050 지정단말기 인증 실패 — 첫 실행에서 "초기화 실패" 팝업만 떠 의뢰인이 당황했습니다. 키움 신 REST는 포털에 등록한 PC에서만 토큰이 나옵니다. 이후 8050·지정단말기 문구를 받으면 포털 메뉴 경로를 한국어로 안내합니다. HTTP 200에 비즈니스 오류 코드가 실리는 건 국내 증권사 API의 공통 패턴이라 return_code를 항상 따로 봅니다.
LS 키를 다른 프로그램과 공유 — 명세 단계에서 의뢰인이 다른 프로그램과 같은 LS 키를 쓰겠다고 했습니다. 동시 접속 차단이 오면 일반 끊김(5초)과 구분해 30초 백오프를 걸고, 설명서에 별도 키 발급을 권했습니다.
LS 인증 코드를 키움에 복제하면 안 됐다 — 둘 다 OAuth2인데 LS는 form 본문 + appsecretkey + expires_in, 키움은 JSON 본문 + secretkey + expires_dt. 거의 같아 보이는 코드를 그대로 베끼면 동작하지 않습니다.
동작 설정 탭. 폴링 간격·버퍼·재검색 횟수·재진입 정책이 전부 설정입니다
04납품물 · 기술
Windows 64bit 실행 파일 — 영웅문 불필요, 트레이 상주, 24시간 실행 가능
설정 다이얼로그(API 키 / 동작 설정 / 기타), 엑셀 제외 키워드 파일
사용설명서 — 첫 실행 오류(8050 지정단말기, 8051 시간 만료, 8052 IP 제한) 자가 해결 절 포함
키움증권 신 REST API (ka00198)LS증권 신 OpenAPI (REST + WS)네이버 뉴스 검색 APIPython 3.10 64bit · PyQt5 · websocketsTelegram Bot API
※ 본 사례는 고객 요구사항을 익명 처리하여 재구성한 것이며, 화면의 종목·기사·계정은 예시값입니다. 알림은 조회순위 진입과 뉴스 존재 사실의 통지일 뿐 매매 권유가 아닙니다.
알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천·투자 자문·수익 보장 서비스가 아닙니다.
이런 알림, 바로 견적 받아보세요
영웅문에서 눈으로 보던 창이 있으면 그게 명세입니다.
알고랩이 24시간 빠르게 답변드립니다.