운영자가 한 곳(웹 관리자)에서 매매할 종목 풀을 관리하면, 여러 대 PC의 자동매매가 그 목록을 실시간으로 따라오게 하고 싶다 —
이 요청을 웹 종목 풀 서버 + 다중 PC 클라이언트 구조로 구현한 사례입니다.
운영자가 매수를 대신 눌러주는 카피트레이딩이 아니라, 매매 후보 종목 리스트만 공유하고 각 PC는 자기 조건검색으로 독립 매매하는 방식입니다.
플랫폼
키움 OpenAPI+ 클라이언트 + FastAPI/SQLite (EC2) 서버
특징
웹 관리자 종목풀 → 다중 PC 3초 동기화
유형
국내주식 멀티슬롯
제작 기간
약 3~4주
좌: 자동매매 클라이언트(슬롯·조건검색·포지션) / 우: 웹 관리자 종목 풀(등록·삭제·동기화 상태) — 예시 화면
01배경 · 고객 요구사항
고객은 이미 키움 조건검색 기반 자동매매를 여러 대의 PC에서 돌리고 있었습니다.
문제는 "오늘 매매할 종목 풀"을 PC마다 따로 관리해야 했다는 것. 운영자가 종목을 골라도 각 PC에 일일이 옮겨 넣어야 했고,
PC가 늘어날수록 손이 배로 들고 실수도 잦았습니다.
요청은 명확했습니다. ① 운영자가 웹 한 곳에서 매매 종목 풀을 관리하면, ② 등록된 모든 PC의 자동매매가 그 목록을 자동으로 반영하고,
③ 각 PC는 여전히 자기 키움 조건검색으로 독립 판단해 매매하는 것.
착수 전 가장 중요했던 것은 요구 범위를 정확히 못박는 일이었습니다.
"운영자가 사면 유저도 같이 산다(카피트레이딩)"가 아니라 "종목 리스트만 공유하고 매매는 각자 한다"는 점을
대화로 명확히 구분한 뒤 시작했습니다. 이 한 줄의 차이가 서버 권한 설계와 책임 범위를 완전히 갈랐기 때문입니다.
02구현 방식
중앙 종목 풀 서버(FastAPI + SQLite, EC2)를 두고, 여러 대의 자동매매 클라이언트가 이 서버를 주기적으로 폴링해
종목 풀을 맞춰오는 서버-클라이언트 동기화 구조로 설계했습니다. 흐름은 이렇습니다:
웹 관리자 → 운영자가 매매할 종목 풀을 등록·삭제 (직접 입력·종목명 검색·CSV 업로드, 모바일 반응형)
종목 풀 서버 → 등록된 풀을 저장하고 GET /api/symbols로 제공 · 세션 로그인(웹)과 X-API-Key(클라이언트) 이중 인증
다중 PC 클라이언트 → 각 PC가 3초 주기로 폴링해 종목 풀을 캐시에 반영 (여러 대가 동시에 같은 풀을 바라봄)
교집합 매수 → "서버 종목 풀 ∩ 키움 조건검색" 교집합에 든 종목만 매수 (운영자 선별 + 유저 조건식 이중 필터)
시스템 구성 — 웹 종목 풀 등록부터 다중 PC 동기화·교집합 매수·고급 청산까지
핵심은 "제어권 공유"가 아니라 "데이터(종목 풀) 공유"라는 점입니다. 서버는 종목 목록만 배포하고, 실제 매수/매도 판단과 주문은
각 PC의 조건검색과 매매 룰이 독립적으로 수행합니다. 덕분에 PC를 몇 대로 늘려도 운영자는 웹 한 곳만 관리하면 됩니다.
연결이 끊겼을 때의 규칙도 명확히 했습니다. 서버 폴링이 끊기고 일정 시간(기본 60초)이 지나면 신규 매수를 차단하되,
이미 보유한 종목의 매도(청산)는 그대로 진행합니다. "종목 풀을 못 받았다고 손절까지 멈추는" 위험을 원천 차단한 설계입니다.
03해결한 기술 난제
다중 PC 종목풀 동기화 + 분할매수 무한루프 하드 가드 (대량 오매수 방지)
여러 대 PC가 같은 종목 풀을 실시간으로 공유하게 만드는 것과 동시에, 실거래에서 대량 오매수를 부르는 분할매수 무한 루프를 원천 차단했습니다.
같은 계좌를 두 슬롯에 잘못 배정하면 체결 통보가 한쪽 슬롯으로만 몰려 "아직 안 샀다"고 오인하고,
미체결 정리 로직이 돌 때마다 2차 매수를 반복 발송하는 구조적 위험이 있었습니다.
그래서 포지션 사이클당 각 분할 단계를 정확히 한 번만 발송하는 하드 가드와,
같은 계좌를 쓰는 슬롯의 중복 실행을 시작 단계에서 거부하는 이중 방어를 넣었습니다.
실거래 봇은 "확인 안 되면 다시 사기"보다 "덜 사더라도 안전"을 택합니다.
분할매수 무한 루프 하드 가드 — 각 포지션 사이클에서 2/3차 매수를 단계별 1회만 발송. 체결 통보 누락·다른 슬롯 라우팅·미체결 정리 어떤 경우에도 재발송 불가, 전량 매도 후에만 초기화
같은 계좌 중복 배정 차단 — 이미 실행 중인 슬롯과 같은 계좌를 다른 슬롯에 지정하면 시작을 거부해, 통보 편향 라우팅으로 인한 오매수를 사전 예방
서버 끊김 시 매수 차단 — 폴링이 끊기고 설정 시간(기본 60초)이 지나면 신규 매수만 정지, 보유 종목 청산은 계속
종목명 자동 조회 — 키움 OCX를 쓸 수 없는 리눅스 서버 환경에서 종목코드→종목명을 외부 금융 데이터로 폴백 조회·캐시
API 키 입력 정제 — 클립보드 복붙 시 개행·공백·보이지 않는 문자를 제거하고 형식을 실시간 검증, 표시/숨김 토글 제공
설정 무손실 마이그레이션 — 손절·수익실현·분할매수 스키마가 바뀌어도 기존 사용자 설정을 자동 변환해 재입력 없이 업데이트
04핵심 기능
웹 관리자 종목 풀 — 종목 등록·삭제(직접 입력·종목명 검색·CSV 업로드), 종목명 자동 조회, 모바일 반응형
※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률·수익금은 공개하지 않습니다.
알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천·투자 자문·수익 보장 서비스가 아닙니다.
과거 백테스트 결과가 미래 실거래 수익을 보장하지 않습니다. 주식 투자는 원금 손실 위험이 있습니다.
이런 자동매매, 바로 견적 받아보세요
이미 조건검색 자동매매를 쓰고 계셔도, 아직 아이디어 단계여도 괜찮습니다.
알고랩이 24시간 빠르게 답변드립니다.