영웅문 조회순위 창에 새 종목이 올라오는 순간, 그 종목에 뉴스가 있는지까지 붙여서 휴대폰으로 받고 싶다는 요청이었습니다.
매매는 없습니다. 키움 신 REST API로 30초마다 순위를 받고, 새로 들어온 종목을 LS증권 실시간 뉴스와 네이버 뉴스로 대조해 텔레그램으로 보냅니다.
2026년 4월에 납품했고 이후 v1.4까지 다섯 건을 고쳤습니다. 첫 번째 수정은 요청에 넣는 값 하나였습니다.
플랫폼
키움 신 REST (ka00198) LS 신 OpenAPI 실시간 뉴스
부가
네이버 뉴스 검색 API 텔레그램
역할
매매 없음, 알림 전용 PC 트레이 상주
제작 기간
약 1~2주
메인 화면은 LED 넷과 로그입니다. 진입 종목, 어느 쪽에서 뉴스가 맞았는지, 발송 여부가 한 줄씩 남습니다. 종목과 기사는 예시입니다.
01흐름
30초마다 조회순위 상위 20개를 받아 직전 조회와 비교합니다. 새로 들어온 종목만 다음 단계로 넘어갑니다.
LS증권 실시간 뉴스는 계속 받아서 최근 1시간치를 쌓아 둡니다. 새 종목이 들어오면 종목명으로 대조하고, 진입 후 5분 동안 더 지켜봅니다.
네이버 뉴스는 종목이 들어온 즉시 최근 2시간 기사를 검색합니다. 없으면 30초 간격으로 10번 더 찾습니다.
두 뉴스 경로는 따로 움직여서 한쪽이 못 찾아도 다른 쪽은 진행합니다. 알림은 종목당 최대 2건입니다. 엑셀에 적은 제외 키워드는 바로 반영되고, 같은 종목이 다시 들어왔을 때 처리하는 방식은 세 가지 중에서 고릅니다.
02"영웅문은 30초인데 왜 1분마다 와요?"
납품 직후 의뢰인이 이렇게 물었습니다. 30초 만에 들어왔다 나가는 종목은 아예 못 잡는다고요.
원인은 조회순위를 요청할 때 넣는 값이었습니다. 정확한 명세를 못 찾아 웹 검색으로 추정한 항목 일곱 개를 채워 보냈는데, 실제 필수 항목은 qry_tp 하나였고 그 값이 틀렸습니다.
qry_tp 1 = 1분 2 = 10분 3 = 1시간 4 = 당일 누적 5 = 30초 (영웅문과 동일)
첫 빌드: {"qry_tp": "1"} (서버는 1분 단위로 집계한 데이터를 정확히 돌려주고 있었다)
수정 후: {"qry_tp": "5"}
서버에는 문제가 없었고 저희가 잘못된 값을 요청하고 있었습니다. 다행히 요청 내용을 처음부터 설정 파일로 빼 두어서 프로그램을 다시 빌드하지 않고 고쳤습니다.
이 일 이후로 외부 API의 선택값은 공식 문서의 표나 고객이 쓰던 호출 예시를 확보하기 전에는 미확정으로 둡니다.
그다음 질문: "PC 시계가 :30인데 서버가 :28이면?"
의뢰인이 이어서 걱정한 부분입니다. PC 시계가 서버보다 빠르면 서버가 순위를 갱신하기 직전에 조회하게 되어 매번 직전 데이터를 받습니다. 최악의 경우 항상 30초 늦습니다.
그래서 응답에 실려 오는 서버 시각으로 PC와의 차이를 구하고, 다음 조회를 서버 시각 기준 :00에서 1.5초 뒤로 잡도록 바꿨습니다.
차이가 5초 이상이면 Windows 시간 동기화를 권하는 경고를 띄웁니다.
03그 밖에
첫 실행에서 초기화 실패 팝업만 떠서 의뢰인이 당황한 일이 있습니다. 키움 신 REST는 포털에 지정단말기로 등록한 PC에서만 인증이 됩니다. 지금은 이 오류(8050)를 받으면 포털의 어느 메뉴에서 등록하는지 한국어로 안내합니다.
의뢰인은 다른 프로그램과 같은 LS 키를 쓰겠다고 했습니다. 동시 접속으로 차단되면 일반 끊김(5초)과 구분해서 30초를 기다렸다 다시 붙고, 설명서에는 키를 따로 발급받기를 권했습니다.
LS와 키움은 인증 방식이 거의 같아 보이지만 요청 형식과 항목 이름이 조금씩 다릅니다. LS 인증 코드를 키움에 그대로 옮기면 동작하지 않아서 따로 만들었습니다.
동작 설정 탭. 조회 간격, 뉴스 보관 시간, 재검색 횟수, 재진입 처리 방식을 여기서 바꿉니다.
04납품물과 기술
Windows 64bit 실행 파일. 영웅문 없이 트레이에 떠서 24시간 실행할 수 있습니다.
설정 창(API 키, 동작 설정, 기타)과 엑셀 제외 키워드 파일
사용설명서. 첫 실행 때 자주 나는 오류(8050 지정단말기, 8051 시간 만료, 8052 IP 제한)를 직접 해결하는 방법을 넣었습니다.
키움증권 신 REST API (ka00198)LS증권 신 OpenAPI (REST, WS)네이버 뉴스 검색 APIPython 3.10 64bit, PyQt5, websocketsTelegram Bot API
※ 본 사례는 고객 요구사항을 익명 처리하여 재구성한 것이며, 화면의 종목, 기사, 계정은 예시값입니다. 알림은 조회순위 진입과 뉴스 존재 사실의 통지일 뿐 매매 권유가 아닙니다.
알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천, 투자 자문, 수익 보장 서비스가 아닙니다.
매매 없이 알림만 필요하셔도 됩니다
영웅문에서 눈으로 보던 창이 있으면 그 창 이름만 알려 주셔도 됩니다.
무엇을 언제 받고 싶은지 상담에서 말씀해 주세요.