국내주식 · 키움 REST + LS OpenAPI · 알림 전용

키움 실시간조회순위 + LS·네이버 뉴스 텔레그램 알림

영웅문 조회순위 창에 새 종목이 튀어 오르는 순간, 그 종목에 뉴스가 있는지까지 붙여서 휴대폰으로 받고 싶다는 요청이었습니다. 매매는 없습니다. 키움 신 REST API로 30초마다 순위를 받고, 새로 들어온 종목을 LS증권 실시간 뉴스와 네이버 뉴스로 대조해 텔레그램으로 보냅니다. 2026년 4월 납품, 이후 v1.4까지 다섯 건을 고쳤는데 그중 첫 번째가 파라미터 값 하나였습니다.

플랫폼
키움 신 REST (ka00198)
+ LS 신 OpenAPI 뉴스 WS
부가
네이버 뉴스 검색 API
텔레그램
역할
비매매 · 알림 전용
PC 트레이 상주
제작 기간
약 1~2주
키움 조회순위 뉴스 알림 프로그램 메인 화면 — 키움·LS·네이버·텔레그램 상태 LED 4개, 신규 진입 종목과 LS뉴스·네이버뉴스 매칭 알림이 시간순으로 찍힌 로그
메인 화면은 LED 넷과 로그입니다. 진입 종목, 어느 채널에서 뉴스가 맞았는지, 발송 여부가 한 줄씩 남습니다 (종목·기사는 예시)

01흐름

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. 거의 같아 보이는 코드를 그대로 베끼면 동작하지 않습니다.
설정 다이얼로그 동작 설정 탭 — 30초 폴링, LS 뉴스 60분 버퍼와 5분 감시, 네이버 2시간·30초·10회 재검색, 재진입 정책
동작 설정 탭. 폴링 간격·버퍼·재검색 횟수·재진입 정책이 전부 설정입니다

04납품물 · 기술

키움증권 신 REST API (ka00198) LS증권 신 OpenAPI (REST + WS) 네이버 뉴스 검색 API Python 3.10 64bit · PyQt5 · websockets Telegram Bot API

05관련 사례 · 더 보기

※ 본 사례는 고객 요구사항을 익명 처리하여 재구성한 것이며, 화면의 종목·기사·계정은 예시값입니다. 알림은 조회순위 진입과 뉴스 존재 사실의 통지일 뿐 매매 권유가 아닙니다. 알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천·투자 자문·수익 보장 서비스가 아닙니다.

이런 알림, 바로 견적 받아보세요

영웅문에서 눈으로 보던 창이 있으면 그게 명세입니다.
알고랩이 24시간 빠르게 답변드립니다.

무료 상담 시작하기 요금제 보기
← 제작 사례 전체 보기