AlgoLab Blog · 구매자 가이드 · 납품 후 · 2026

자동매매 프로그램 첫 실행 오류 — 납품 당일 막히는 7곳

구매자 가이드 2026-10-17 · 약 7분 읽기 · 알고랩 AlgoLab
한 줄 요약

납품받은 자동매매 프로그램이 처음에 안 켜지거나 바로 꺼지는 이유는 대부분 코드가 아니라 설정입니다. 윈도우 SmartScreen 차단, 메모장이 만든 .env.txt, 실전·모의 앱키 혼동(키움 8030·8031), 허용 IP 미등록(키움 8010), 계좌번호 8자리+2자리 형식(한국투자증권 CANO·ACNT_PRDT_CD), 토큰 만료(KIS EGW00123), 파이썬 미설치 — 이 7곳에서 거의 다 걸립니다. 화면에 오류 번호가 보이면 아래 표에서 그 번호를 찾는 것이 가장 빠르고, 그래도 안 되면 캡처·로그 30줄·실행 환경 세 가지만 제작자에게 보내면 됩니다. 앱키·시크릿은 보내지 않습니다.

목차

  1. 어디서 멈췄는지부터 — 3갈래
  2. 막히는 7곳과 고치는 법
  3. 오류 번호 빠른 표
  4. 제작자에게 보낼 것, 보내면 안 되는 것
  5. 자주 묻는 질문

1. 어디서 멈췄는지부터 — 3갈래

토요일 오전, 프로그램 압축 파일을 받은 김 대표님이 바탕화면에 풀고 두 번 클릭했습니다. 파란 창이 뜨고 끝입니다. 이런 상황에서 "프로그램이 안 돼요"라고만 보내면 원인을 찾는 데 하루가 갑니다. 먼저 어느 단계에서 멈췄는지만 구분하면 7곳 중 두세 곳으로 좁혀집니다.

더블클릭했다 A. 창이 아예 안 뜬다 윈도우·파이썬 문제 B. 켜졌다 바로 꺼진다 설정 파일 문제 C. 오류 번호가 찍힌다 증권사 계정 문제 ①SmartScreen ②python 미설치 ③.env.txt ⑤계좌번호 8+2 ④실전·모의 8030 ⑥IP 8010 ⑦토큰 EGW00123
멈춘 위치만 알아도 원인이 2~3개로 줄어든다

B처럼 창이 순식간에 꺼지면 메시지를 읽을 수가 없습니다. 프로그램 폴더의 logs 폴더(이름은 제작자마다 다름)에 날짜별 로그 파일이 있으면 그걸 열어 마지막 줄을 보면 되고, 없다면 폴더 주소창에 cmd를 입력해 명령 프롬프트를 연 뒤 실행 파일 이름을 직접 쳐서 실행하면 창이 닫히지 않고 메시지가 남습니다.

2. 막히는 7곳과 고치는 법

① 윈도우가 실행을 막는다 — SmartScreen·백신

맞춤 제작한 .exe는 서명 인증서가 없는 경우가 많아 처음 실행할 때 이런 파란 창이 뜹니다.

Windows의 PC 보호
Microsoft Defender SmartScreen에서 인식할 수 없는 앱의 시작을 차단했습니다.
이 앱을 실행하면 PC가 위험에 노출될 수 있습니다.
                                   [실행 안 함]

제작자에게서 직접 받은 파일이 맞다면 추가 정보 → 실행을 누르면 됩니다. 더 곤란한 경우는 아무 창도 없이 파일이 사라지는 것인데, Microsoft Defender나 V3 같은 백신이 PyInstaller로 묶은 실행 파일을 오탐해 격리한 경우입니다. 원인과 예외 등록 방법은 PyInstaller exe 백신 오탐 글에 정리돼 있습니다. 출처를 모르는 파일이라면 이 단계에서 멈추는 게 맞습니다.

② 소스로 받았는데 파이썬이 없다

.py 소스와 requirements.txt로 납품받은 경우입니다. 명령 프롬프트에서 실행했을 때 이 문장이 나오면 파이썬이 설치되지 않았거나 PATH에 없는 것입니다.

'python'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.

윈도우 10·11에서는 파이썬이 없을 때 python을 치면 Microsoft Store가 열리기도 합니다. 제작자가 지정한 버전을 python.org에서 설치하고 설치 첫 화면의 Add python.exe to PATH를 체크하십시오. 그다음 pip install -r requirements.txt를 빼먹으면 ModuleNotFoundError: No module named 'dotenv'처럼 라이브러리 이름이 들어간 오류가 납니다. 버전이 너무 새것이어도 일부 라이브러리가 설치되지 않으니, 납품 문서에 적힌 버전을 따르는 것이 가장 안전합니다.

③ 설정 파일 이름이 .env.txt가 됐다

앱키와 계좌번호는 보통 .env나 config.yaml 같은 설정 파일에 따로 넣게 만듭니다(코드에 키를 박지 않기 위해서입니다). 메모장으로 .env를 만들고 저장하면 파일 형식이 '텍스트 문서'로 잡혀 실제 이름이 .env.txt가 되는데, 윈도우 탐색기는 확장자를 숨기므로 겉보기엔 멀쩡합니다. 탐색기 보기 → 표시 → 파일 확장명을 켜서 확인하고, 저장할 때 형식을 '모든 파일'로 바꾸십시오. 내용은 이런 모양입니다(값은 예시).

# .env — 따옴표·공백 없이, 등호 양옆도 붙여서
KIWOOM_APPKEY=발급받은앱키를그대로
KIWOOM_SECRETKEY=발급받은시크릿키를그대로
KIWOOM_MODE=mock

키를 복사할 때 앞뒤에 공백이나 줄바꿈이 딸려 오는 경우도 흔합니다. 증권사 홈페이지에서 더블클릭으로 선택하면 끝 글자가 빠지기도 하니 길이를 한 번 맞춰 보십시오.

④ 실전 키와 모의 키가 섞였다

가장 많이 걸리는 곳입니다. 증권사는 실전투자와 모의투자의 앱키·주소·주문 코드를 전부 따로 둡니다. 한국투자증권 공식 저장소(open-trading-api)의 설정 샘플 kis_devlp.yaml을 보면 구조가 한눈에 보입니다.

#실전투자
my_app: "앱키"
my_sec: "앱키 시크릿"

#모의투자
paper_app: "모의투자 앱키"
paper_sec: "모의투자 앱키 시크릿"

#domain infos
prod: "https://openapi.koreainvestment.com:9443" # 서비스
vps: "https://openapivts.koreainvestment.com:29443" # 모의투자 서비스

모의투자로 시험하려면 KIS 모의투자를 따로 신청해 모의용 앱키를 받아야 하고, 주문 코드도 다릅니다. 현금 매수 주문의 tr_id가 실전은 TTTC0012U, 모의는 VTTC0012U입니다(공식 예제 order_cash.py). 키움 REST API는 섞어 쓰면 오류 번호로 바로 알려 줍니다.

8030  투자구분(실전/모의)이 달라서 Appkey를 사용할수가 없습니다
8031  투자구분(실전/모의)이 달라서 Token를 사용할수가 없습니다
8104  모의투자에서 지원하지 않는 API 입니다.

(키움 공식 명세 kiwoom_api_spec.json의 error_codes 원문.) 8104는 설정이 틀린 게 아니라 그 기능 자체가 모의투자에 없다는 뜻이라, 실전에서만 확인할 수 있습니다. 실전으로 넘어갈 때 바꿔야 할 항목 목록은 KIS 모의→실전 전환 글에 있습니다.

⑤ 계좌번호를 한 칸에 다 넣었다

한국투자증권 계좌번호는 10자리지만 API는 앞 8자리(CANO)와 뒤 2자리(ACNT_PRDT_CD)를 나눠 받습니다. 위 샘플에서도 my_acct_stock: "증권계좌 8자리"와 my_prod: "01" # 종합계좌가 따로입니다. 하이픈을 넣거나 10자리를 한 칸에 넣으면 조회부터 실패합니다. 뒤 2자리는 종합계좌 01, 국내선물옵션 03, 개인연금 22처럼 계좌 종류마다 다르니 자세한 건 CANO·ACNT_PRDT_CD 글을 보십시오.

⑥ 이 PC의 IP가 등록되지 않았다

키움 REST API는 앱키를 받을 때 접속할 PC의 공인 IP를 등록해야 하고(포털 '계좌 App Key 관리', 최대 10개), 다른 곳에서 붙으면 이 번호가 납니다.

8010  Token을 발급받은 IP와 서비스를 요청한 IP가 동일하지 않습니다

흔한 경우는 세 가지입니다. 집에서 등록하고 사무실에서 켰을 때, 공유기를 재부팅해 통신사가 IP를 바꿨을 때, 그리고 VPS(원격 서버)에 올렸는데 내 PC IP만 등록했을 때입니다. VPS에서 돌린다면 그 서버의 IP를 등록해야 합니다. 등록 화면은 키움 REST API 앱키 발급 가이드 STEP 3에 그림으로 있습니다.

⑦ 어제는 됐는데 오늘 안 된다 — 토큰

앱키는 한 번 받아 계속 쓰는 값이고, 실제 호출에는 그 키로 받은 접근 토큰을 씁니다. 한국투자증권 공식 코드 kis_auth.py의 주석은 토큰을 "유효시간 1일, 6시간 이내 발급신청시는 기존 토큰값과 동일, 발급시 알림톡 발송"이라고 적고 있습니다. 하루가 지나면 만료되고, 만료된 토큰으로 부르면 msg_cd EGW00123이 옵니다. 공식 샘플도 이 코드를 보고 재발급합니다.

# open-trading-api legacy/rest/current_price_samle.py
    # 토큰 만료 시
    elif res.status_code == 200 and res.json()["msg_cd"] == "EGW00123" :
        auth()
        get_current_price(stock_no)

제대로 만든 프로그램이라면 이 재발급을 스스로 합니다. 그런데 카카오톡으로 'KIS 접근토큰 발급' 알림이 하루에 수십 번 온다면 프로그램이 토큰을 저장하지 않고 매번 새로 받고 있다는 뜻이니 제작자에게 알리십시오. 키움에서는 8005 Token이 유효하지 않습니다가 같은 상황입니다. 구조는 KIS 토큰 만료·재발급 글에 있습니다.

3. 오류 번호 빠른 표

보이는 것어디 문제내가 할 일
Windows의 PC 보호① 윈도우추가 정보 → 실행 (출처 확실할 때만)
'python'은(는) 내부 또는 외부 명령…② 파이썬지정 버전 설치 + PATH 체크
ModuleNotFoundError② 라이브러리pip install -r requirements.txt
KeyError: 'KIWOOM_APPKEY' 류③ 설정 파일확장자·파일 위치·변수 이름 확인
키움 8001·8020③ 키 값앱키·시크릿 공백·누락 확인
키움 8030·8031, KIS 모의 주소④ 실전·모의키와 모드를 같은 쪽으로
KIS 잔고 조회 실패⑤ 계좌번호8자리 / 2자리 분리
키움 8010⑥ IP지금 PC(또는 VPS) IP 등록
KIS EGW00123, 키움 8005⑦ 토큰재실행 후 반복되면 제작자에게

KIS의 다른 EGW 코드(예: 호출 한도 EGW00201)는 KIS API 에러코드 글, 키움의 1xxx·8xxx 전체는 키움 return_code 글에 있습니다. 여기 없는 번호라면 설정보다는 프로그램 쪽일 가능성이 높으니 다음 절대로 보내 주시면 됩니다.

4. 제작자에게 보낼 것, 보내면 안 되는 것

위 7곳을 확인해도 안 되면 그때부터는 제작자의 일입니다. 아래 세 가지만 있으면 대부분 한 번에 원인이 나옵니다.

  1. 화면 캡처 — 오류 창 또는 명령 프롬프트에 남은 메시지 전체
  2. 로그 파일 마지막 30줄쯤 — 날짜 붙은 .log 파일을 메모장으로 열어 끝부분 복사
  3. 실행 환경 — 실전인지 모의인지, 내 PC인지 VPS인지, 증권사(키움·한국투자증권 등)

App Key·App Secret·계좌 비밀번호·접근 토큰은 보내지 마십시오. 카카오톡·이메일에 한 번 올라간 키는 지울 수 없습니다. 로그에 키나 토큰이 찍혀 있으면 그 줄을 가리고 보내고, 이미 보냈다면 증권사 포털에서 키를 재발급하는 게 맞습니다. 정상적인 제작자는 원격 지원 중에도 키를 직접 받아 가지 않습니다. 키 관리 원칙은 API 키 보안 글에 있습니다.

첫날 켜는 데 성공했다면 다음은 며칠 동안 지켜보는 단계입니다. 무엇을 언제 확인하는지는 자동매매 봇 배포 후 첫 30일 글에 이어집니다. 이 글은 실행 설정을 다루며 특정 종목이나 수익을 약속하지 않습니다. 증권사 화면과 오류 문구는 바뀔 수 있으니 각 증권사 공식 안내를 함께 확인하십시오.

5. 자주 묻는 질문

프로그램이 안 켜지면 코드가 잘못 만들어진 건가요?

첫 실행에서는 대부분 아닙니다. 납품 당일 막히는 원인은 윈도우 보안 차단, 설정 파일 이름·형식, 실전·모의 앱키 혼동, 허용 IP 미등록, 계좌번호 형식처럼 고객 PC와 증권사 계정 쪽 설정이 대부분입니다. 오류 번호가 보이면 그 번호로 원인을 거의 특정할 수 있습니다.

제작자에게 오류를 알릴 때 무엇을 보내야 하나요?

화면 캡처, 로그 파일 마지막 30줄 정도, 실전인지 모의인지와 실행 위치(내 PC인지 VPS인지) 세 가지면 충분합니다. App Key·App Secret·계좌 비밀번호는 절대 보내지 마십시오. 로그에 키가 찍혀 있으면 그 줄을 가리고 보냅니다.

모의투자에서는 되는데 실전에서 안 되는 이유는 무엇인가요?

앱키·도메인·주문 코드가 실전과 모의에서 따로입니다. 한국투자증권은 실전 my_app과 모의 paper_app이 다른 키이고 주소도 9443과 29443 포트로 나뉘며, 매수 주문 tr_id도 TTTC0012U와 VTTC0012U로 다릅니다. 키움은 섞어 쓰면 8030·8031 오류가 납니다.

어제는 됐는데 오늘 갑자기 안 되는 건 왜인가요?

토큰 만료나 IP 변경이 가장 흔합니다. 한국투자증권 토큰은 유효기간이 1일이고 만료되면 EGW00123이 옵니다. 키움은 공유기나 통신사 사정으로 공인 IP가 바뀌면 8010이 납니다. 둘 다 프로그램이 자동으로 처리하도록 만들 수 있으니 제작자에게 확인하십시오.

설정까지 같이 끝내 드립니다

알고랩은 납품 후 첫 실행 설정을 함께 확인해 드립니다. 지금 막힌 화면이 있다면 캡처부터 보내 주세요. 24시간 빠른 답변 가능합니다.

무료 상담 시작하기