AlgoLab Blog · 플랫폼 선택 가이드

키움 OpenAPI+ vs 한국투자증권 KIS API — 자동매매 어떤 걸 골라야 할까

가이드 2026-05-08 · 약 8분 읽기 · 알고랩 AlgoLab

알고랩이 359건 이상 자동매매를 제작하면서 가장 많이 받는 질문 중 하나가 "키움이랑 한투 중 뭐 써야 해요?" 입니다. 두 API 모두 운영해본 입장에서, 단순 비교가 아니라 어떤 상황에 어떤 걸 골라야 하는지를 정리합니다. 잘못 고르면 중간에 갈아타야 하는데, 그러면 코드의 80% 이상을 다시 써야 하는 경우가 많습니다. 시작 전 한 번씩 짚어보세요.

결론부터 — 한 줄 요약

이유를 하나씩 풀어봅니다.

핵심 차이 10가지 — 한눈에

항목키움 OpenAPI+한국투자증권 KIS API
API 방식OCX / COMREST + WebSocket
운영체제Windows 전용크로스플랫폼 (Win/Mac/Linux)
Python 비트32bit 필수64bit
필수 라이브러리PyQt5 + pywin32requests / httpx
인증 방식영웅문 자동 로그인 (HTS)OAuth 2.0 토큰 (24시간)
해외주식 지원❌ (국내만)✅ (미국·일본·홍콩·중국·베트남)
시장가 주문✅ 국내 가능국내 ✅ / 해외 ❌ (지정가만)
1계정 동시 실행1개로 제한다중 가능
실시간 시세 한도화면번호당 100종목WebSocket 세션 20개
Rate Limit (요청/초)권장 5회국내 20 / 해외 1

이제 결정에 영향을 주는 항목들을 깊게 봅니다.

1. 운영체제와 Python 비트 — 가장 먼저 부딪히는 벽

키움 OpenAPI+ 는 OCX (COM 인터페이스) 기반입니다. 이게 의미하는 건:

이건 "버전을 신경 쓰면 됩니다" 수준의 제약이 아니라, 개발 환경 전체의 결정 요소입니다. 평소 64bit Python 에서 NumPy · Pandas · 머신러닝 라이브러리를 쓰던 분이 키움으로 옮기면, 32bit 버전 패키지가 일부 호환 안 되거나 빌드해야 하는 상황을 자주 만납니다.

KIS API 는 이 모든 게 사라집니다. REST API 라서 OS · 언어 · 비트와 무관합니다. macOS 노트북에서 개발하고 Windows 서버에서 운영하는 일반적인 워크플로우가 그대로 적용됩니다.

실무 팁: macOS 사용자가 키움을 써야 한다면 Windows VM (Parallels, VMware) 또는 별도 Windows PC 가 필수입니다. KIS API 는 그런 우회가 필요 없습니다.

2. 코드 복잡도 — REST 가 압도적으로 단순

같은 작업("주식 1주 매수")을 두 API 로 비교하면 차이가 명확합니다.

키움 (OCX + PyQt5)

from PyQt5.QAxContainer import QAxWidget
from PyQt5.QtWidgets import QApplication

app = QApplication([])
ocx = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
ocx.dynamicCall("CommConnect()")  # 비동기 — OnEventConnect 콜백 대기
# ... 로그인 완료까지 이벤트 루프 대기
ocx.dynamicCall(
    "SendOrder(QString, QString, QString, int, QString, int, int, QString, QString)",
    ["매수", "0101", account, 1, "005930", 1, 0, "03", ""]
)
# OnReceiveChejanData 콜백 바인딩 + 응답 파싱 별도 필요

KIS API (REST)

import requests

resp = requests.post(
    f"{base}/uapi/domestic-stock/v1/trading/order-cash",
    headers={"authorization": f"Bearer {token}", "tr_id": "TTTC0802U", ...},
    json={"CANO": ..., "PDNO": "005930", "ORD_DVSN": "01", "ORD_QTY": "1", "ORD_UNPR": "0"},
)
result = resp.json()  # 즉시 응답

키움은 이벤트 기반 비동기 (콜백 + 시그널) 모델이고, KIS 는 동기 요청-응답 입니다. 이벤트 모델이 익숙하지 않으면 키움은 학습 곡선이 가파릅니다. 특히 이런 함정들이 있습니다.

이 함정들은 알고랩 키움 자동매매 직접 만들기 vs 외주 글에서 더 자세히 다뤘습니다. KIS REST 는 이런 종류의 함정이 거의 없습니다 — HTTP 응답 코드와 JSON 만 보면 됩니다.

3. 해외주식 — 키움은 아예 못 한다

이게 가장 큰 갈림길입니다. 키움 OpenAPI+ 는 국내주식만 지원합니다 (선물 · 옵션도 국내). 미국 · 일본 · 중국 주식 자동매매를 만들고 싶으면 키움으로는 불가능합니다.

KIS API 는 미국 (NYSE/NASDAQ/AMEX), 일본 (도쿄), 홍콩 (HKEX), 중국 (상해A/심천A), 베트남 (호치민/하노이) 모두 지원합니다. 해외주식 자동매매를 검토 중이시라면 사실상 KIS API 가 거의 유일한 선택지입니다 (국내 증권사 중에서는).

다만 KIS 해외주식에는 별도 함정이 있습니다.

이 패턴들은 알고랩 KIS API 미국 프리마켓 자동 손절 사례 에서 실제 운영 코드와 함께 정리했습니다.

실무 팁: 미국주식만 자동매매하실 거면 KIS API 보다 IBKR (Interactive Brokers) 이 시장가 · 시간외 · 옵션 · 선물 모두 더 자유롭습니다. 다만 IBKR 은 시장 데이터 유료, TWS / Gateway 상시 실행 등 다른 제약이 있어 한국 거주 개인 트레이더에게는 KIS 가 진입장벽이 낮습니다.

4. 시장가 주문 — 국내는 둘 다, 해외는 KIS 만 그것도 지정가

자동매매에서 시장가 주문이 필요한 대표적 경우는 손절 트리거 발동 시 즉시 청산입니다. 가격이 빠르게 흐를 때 지정가로는 체결 보장이 어렵습니다.

KIS 해외에서 시장가 효과를 내려면 현재가 대비 슬리피지를 반영한 지정가를 사용합니다.

# 손절 시 — 현재가에서 1% 더 낮은 지정가
slippage = 0.01
limit_price = current_price * (1 - slippage)

알고랩이 자주 쓰는 패턴은 트리거 가격과 주문 가격을 분리하는 것입니다. 트리거 가격에서 발동 → 그보다 1~2% 낮은 지정가로 주문 → 현재가가 이미 트리거가보다 낮은 상태이므로 즉시 체결.

5. Rate Limit 과 1초 폴링 — 시스템 설계의 분기점

자동매매의 표준 패턴 중 하나가 "1초마다 가격 · 잔고 폴링"입니다. 이게 가능한지가 시스템 설계에 큰 영향을 줍니다.

시나리오키움KIS 국내KIS 해외
1초 폴링OK (직렬화 락 필수)OK (초당 20회 여유)빡빡 (초당 1회)
보유종목 30개 동시 시세100종목 한도 내 OKWebSocket 추천잔고 응답에 시세 통합
동시 잔고 + 시세 조회TR busy 충돌 주의여유잔고 응답으로 통합 처리

KIS 해외주식의 초당 1회 제약은 처음엔 빡빡해 보이지만, 잔고 조회 응답에 현재가 (now_pric2) 가 포함되어 있어 별도 시세 조회 없이 한 번에 처리할 수 있습니다. 이걸 알면 1초 폴링 시스템을 무리 없이 구현할 수 있습니다.

6. 1계정 동시 실행 — 봇 여러 개 돌릴 때

키움 OpenAPI+ 는 같은 PC 에서 1계정당 1실행 으로 제한됩니다. 즉, 한 계좌로 "주도주 봇"과 "지수 추종 봇"을 동시에 돌리려면:

KIS API 는 OAuth 토큰 기반이라 여러 봇이 같은 계정으로 동시에 동작 가능합니다. 토큰 만료 (24시간) 와 Rate Limit 만 공유 자원으로 관리하면 됩니다.

7. 학습 자료와 커뮤니티 — 키움이 압도적으로 풍부

이건 정량적이지 않은 항목이지만 무시 못 합니다. 키움 OpenAPI+ 는 국내 자동매매 표준으로 자리잡은 지 10년 이상이라, 한국어 블로그 · 강의 · GitHub 코드가 압도적으로 많습니다. 처음 자동매매를 시작하시는 분이 검색해서 답을 찾기 가장 쉬운 환경입니다.

KIS API 는 2022년 이후 본격 보급되었고, 자료는 점점 늘고 있지만 키움보다는 적습니다. 다만 공식 문서가 깔끔하고 (REST API 표준 형식), 모의투자 환경이 실전과 동일 구조라 직접 시도하면서 배우기 좋습니다.

알고랩이 제작 의뢰를 받을 때, 사용자가 직접 만들어보다 막혀서 오시는 비율은 키움 쪽이 더 높습니다. 자료가 많은 만큼 함정도 직접 부딪히는 케이스가 많기 때문입니다.

시나리오별 추천 — 의사결정 트리

[시작] │ ├─ Q1. 해외주식(미국·일본·중국 등)이 필요한가? │ └─ 예 → KIS API │ └─ 아니오 → 다음 │ ├─ Q2. macOS / Linux 개발 환경인가? │ └─ 예 → KIS API │ └─ 아니오 → 다음 │ ├─ Q3. 키움 HTS(영웅문)을 평소에 쓰고 있는가? │ └─ 예 → 키움 OpenAPI+ │ └─ 아니오 → 다음 │ ├─ Q4. 한 계정으로 봇 여러 개 동시 운영 계획? │ └─ 예 → KIS API │ └─ 아니오 → 다음 │ ├─ Q5. 코딩 경험이 많은 편? (PyQt5·이벤트 루프 익숙) │ └─ 예 → 둘 다 가능, 자료 많은 키움 추천 │ └─ 아니오 → KIS API (REST 가 단순) │ └─ [둘 다 가능한 경우] — 키움 추천 (자료·커뮤니티 풍부)

둘 다 쓰는 케이스 — 의외로 흔합니다

알고랩 의뢰 중에는 "국내주식은 키움, 미국주식은 KIS" 조합도 자주 있습니다. 이유:

같은 PC 에서 두 봇을 동시에 돌리는 것도 가능합니다. 키움 32bit Python 환경과 KIS 64bit Python 환경을 가상환경으로 분리하면 충돌하지 않습니다.

project/
├── kiwoom_bot/         # 32bit venv
│   └── (국내주식 봇)
├── kis_bot/            # 64bit venv
│   └── (미국주식 봇)
└── shared/
    ├── notifier.py     # 텔레그램 공통
    └── logger.py

비용 — 둘 다 무료 (조건부)

두 API 모두 API 사용료는 무료입니다. 다만:

자동매매 시스템의 진짜 비용은 API 료가 아니라 개발 시간 + 운영 안정화 비용입니다. 직접 만들 경우 함정에 부딪히며 디버깅하는 시간이 가장 큽니다.

알고랩의 선택 기준 — 의뢰받을 때

알고랩이 신규 의뢰를 받으면 다음 순서로 플랫폼을 결정합니다.

  1. 거래 대상 자산 — 해외주식이면 KIS 또는 IBKR
  2. 의뢰인의 기존 환경 — 이미 키움 HTS 쓰면 키움 우선 (학습 · 운영 부담 ↓)
  3. 의뢰인의 OS — Mac 이면 KIS 자동 추천
  4. 전략의 복잡도 — 다중 봇 / 다계정이면 KIS
  5. 의뢰인이 직접 운영 후 코드 수정 가능성 — 가능하면 KIS REST (이해 쉬움)

이 결정 트리가 거의 모든 케이스를 커버합니다. 예외는 의뢰인이 특정 API 에 대한 강한 선호가 있을 때 정도입니다.

마무리 — 한 줄 정리 다시

상황추천
한국주식, Windows, 키움 HTS 사용 중키움 OpenAPI+
미국 · 일본 · 중국 주식 자동매매KIS API
macOS · Linux 에서 개발KIS API
한 계정으로 봇 여러 개 운영KIS API
코딩 경험 적음, 직접 만들기 시도KIS API
국내 + 해외 둘 다 필요키움 + KIS 병행

플랫폼 선택은 자동매매 프로젝트 시작 단계에서 가장 중요한 의사결정입니다. 잘못 골라서 중간에 갈아타면 코드의 80% 이상을 다시 써야 하는 경우가 많습니다. 시작 전에 위 항목들을 한 번씩 짚어보시길 권합니다.

참고: 알고랩은 키움 OpenAPI+ · 한국투자증권 KIS API 둘 다 운영 검증된 표준 코드베이스를 보유하고 있어, 어느 쪽이든 동일한 안정성과 짧은 일정으로 제작 가능합니다. 더 자세한 기술 문서는 키움 자동매매 페이지KIS API 페이지 를 참고하세요.

플랫폼 선택부터 막막하시다면

전략과 환경만 알려주시면 알고랩이 최적의 플랫폼 + 구조까지 제안드립니다.
AI 상담이 24시간 응답합니다.

무료 상담 시작하기