CREON Plus로 주식 DB 만들기: 32비트 환경·연결·검증 체크리스트

CREON Plus로 국내 주식 데이터를 모으려 할 때 가장 먼저 막히는 지점은 데이터베이스가 아닙니다. 로그인했는데 연결 상태가 잡히지 않거나, 64비트 Python에서 COM 객체를 불러오지 못하거나, 요청을 빠르게 반복해 제한에 걸리는 일이 먼저 생깁니다.

CREON Plus는 Windows COM 기반 API입니다. 공식 안내에 따르면 Windows 운영체제가 64비트여도 API를 호출하는 프로그램은 32비트여야 합니다. 따라서 이 글은 ‘일봉을 받는 코드’를 바로 복사하는 방법보다, 수집을 시작하기 전에 환경과 데이터 품질을 확인하는 순서를 정리합니다.

이 글의 핵심

  • CREON Plus 수집 프로그램은 Windows와 32비트 Python 환경을 전제로 합니다.
  • 연결 여부와 요청 가능 횟수를 확인하기 전에는 대량 수집을 시작하지 않습니다.
  • 받은 데이터는 곧바로 전략에 쓰지 말고 원본 보관·중복·OHLCV 관계를 먼저 점검합니다.

CREON Plus가 맞는 경우

CREON Plus는 CREON HTS 환경에서 시세·계좌·주문 관련 기능을 COM 객체로 연결하는 방식입니다. 이미 CREON을 사용하고 있고, Windows에서 32비트 Python 환경을 별도로 관리할 수 있다면 데이터 수집 경로가 될 수 있습니다.

반대로 macOS·Linux에서 같은 수집기를 돌리거나, 64비트 전용 라이브러리와 한 가상환경을 공유해야 한다면 시작 전에 운영 방식을 다시 정하는 편이 좋습니다. 32비트 제약은 설치 단계의 작은 설정이 아니라 이후 패키지 선택과 배포 환경까지 영향을 주는 조건입니다.

확인 항목 수집 전 판단 기준
운영체제 CREON Plus가 설치·로그인되는 Windows 환경인가
Python 비트 수 API를 호출할 Python이 32비트인가
실행 권한 연결 오류가 날 때 관리자 권한 실행이 필요한 환경인가
로그인 상태 HTS 로그인 뒤 API 연결 상태가 정상인가
API 도움말 사용할 TR의 입력값·출력 필드·제한을 현재 도움말에서 확인했는가

CREON 공식 FAQ는 Plus API가 32비트로 작성돼 Python을 포함한 호출 프로그램도 32비트여야 한다고 안내합니다. 관리 권한이 없으면 데이터 수신이 되지 않을 수 있다는 안내도 함께 확인할 수 있습니다. CREON Plus FAQ

수집 전에 연결과 요청 여유를 확인한다

데이터 수집의 첫 요청은 일봉 조회가 아니라 연결 확인이어야 합니다. 로그인 창이 떠 있거나 HTS 화면이 열려 있어도 API 연결 상태가 준비됐다고 볼 수는 없습니다.

권장 흐름은 다음과 같습니다.

TEXT
HTS 로그인 → API 연결 확인 → 요청 가능 횟수 확인 → 한 종목·짧은 구간 조회 → 응답 구조 확인 → 저장

이 순서를 건너뛰고 수백 종목을 반복 요청하면, 연결 오류·제한 초과·빈 응답이 섞였을 때 어디서 실패했는지 찾기 어려워집니다. 요청 제한의 숫자와 적용 단위는 바뀔 수 있으므로, 수집기를 실행하는 환경의 Plus 도움말에서 다시 확인해야 합니다. CREON은 요청 제한을 넘으면 대기하거나 오류가 날 수 있음을 안내합니다. CREON Plus 요청 제한 도움말

여기서는 특정 TR 코드나 필드명을 고정한 예제 코드를 제시하지 않습니다. TR별 입력값과 응답 필드는 변경될 수 있고, 실제 계정·로그인 환경에서 확인하지 않은 코드를 그대로 실행하게 하면 잘못된 데이터가 저장될 수 있기 때문입니다. 수집 대상에 맞는 최신 명세를 확인한 뒤, 한 종목의 응답부터 출력해 열 이름과 날짜 순서를 검토합니다.

DB보다 먼저 정할 데이터 계약

수집 API가 달라도 저장 기준은 먼저 정할 수 있습니다. 종목별 테이블을 계속 늘리는 방식보다, 하나의 일봉 테이블에 종목코드와 거래일을 함께 두면 중복 검사와 여러 종목 비교가 단순해집니다.

예시 역할 점검 기준
symbol 종목 식별자 거래소·API 기준 코드 규칙을 함께 기록
trade_date 거래일 symbol + trade_date를 중복 기준으로 사용
open, high, low, close 원시 OHLC 가격 고가·저가 관계가 맞는지 확인
volume 거래량 음수·비정상 0 여부를 별도 점검
source 수집 경로 creon_plus처럼 출처를 남김
collected_at 수집 시각 재수집·수정 이력을 비교할 기준

수정주가 여부, 거래정지일 처리, 주식분할 반영 방식도 이 계약에 포함합니다. API 응답의 가격이 무엇을 의미하는지 확인하지 않은 채 close라는 이름만 붙이면, 나중에 다른 데이터원과 합칠 때 차트와 백테스트 결과가 어긋날 수 있습니다.

안전한 수집은 원본과 검증 결과를 함께 남긴다

수집이 성공했다는 메시지만으로 데이터가 정상이라는 뜻은 아닙니다. 다음 다섯 가지는 저장 직후 자동으로 남기는 편이 좋습니다.

  1. 응답 원본 또는 원본에 가까운 수집 파일
  2. 요청한 종목·기간·TR과 수집 시각
  3. 받은 행 수와 첫·마지막 거래일
  4. 중복 키, 결측값, low ≤ open/close ≤ high 관계 검사 결과
  5. 실패·재시도·제한 초과 같은 실행 로그

특히 결측이나 비정상 가격을 발견했다고 테이블 전체를 바로 삭제하지 않습니다. 먼저 원본 응답, 수집 로그, 해당 날짜의 공식 시세를 비교해 원인이 API 응답인지 저장 과정인지 판단합니다. 원본 없이 다시 수집하면 같은 문제가 반복돼도 차이를 확인할 수 없습니다.

yfinance로 국내 주식 데이터 받기: 수정주가·결측·티커를 먼저 확인하는 법도 데이터원은 다르지만, 티커·수정주가·결측을 저장 전에 확인해야 하는 이유를 다룹니다.

32비트 수집기를 운영할 때 자주 놓치는 것

상황 바로 확인할 것 피해야 할 대응
연결 상태가 준비되지 않음 HTS 로그인, 실행 권한, API 연결 상태 빈 응답을 정상 데이터로 저장
요청 제한에 걸림 남은 요청 수, 요청 간격, 재시도 로그 고정된 짧은 대기만 반복
날짜가 비어 있음 거래정지·휴장·응답 범위·저장 키 결측 행을 임의 가격으로 채움
가격 관계가 맞지 않음 원본 필드와 단위, 수정주가 기준 예외 값을 조용히 삭제
환경을 옮김 Python 비트 수와 COM 등록 상태 64비트 가상환경에서 그대로 실행

이 글은 CREON Plus의 특정 TR을 실행 검증한 코드 안내가 아닙니다. 계정 권한, 설치 버전, 로그인 상태, API 명세에 따라 결과가 달라질 수 있으므로 실제 수집 전에는 모의 또는 소량 조회로 응답과 저장 결과를 확인해야 합니다.

정리

CREON Plus로 주식 DB를 만들 때 가장 중요한 것은 빠르게 많이 받는 일이 아닙니다. 32비트 환경이라는 제약을 분리하고, 연결·요청 제한·응답 구조를 작은 단위에서 확인한 뒤, 원본과 검증 결과를 남기며 수집 범위를 넓히는 일입니다.

수집 전 체크리스트

  • [ ] 32비트 Python과 CREON Plus 연결 환경을 분리했는가
  • [ ] 실제 사용할 TR의 최신 입력·출력 명세를 확인했는가
  • [ ] 한 종목·짧은 기간의 응답을 저장 전에 확인했는가
  • [ ] 중복·결측·OHLCV 관계 검사와 실행 로그를 남기는가

이 글은 API 기반 데이터 수집의 환경과 검증 절차를 설명하기 위한 교육용 자료입니다. 특정 증권사 서비스의 사용 가능 여부나 API 명세는 공식 안내에서 다시 확인해야 하며, 실제 투자 판단과 책임은 투자자 본인에게 있습니다.