2026/05 17

[계좌 리팩토링] 17편(실전). "1초의 지연도 용납할 수 없다!" 웹소켓(WebSocket)으로 실시간 트레이딩 엔진 완성하기

1. 백테스트의 환상, 실전이라는 차가운 현실안녕하세요! 내 계좌를 지키고 불려주는 든든한 파트너, [계좌 리팩토링] 시리즈 17편입니다. 지난 시간까지 우리는 Parker Brooks의 뇌 구조를 시각화한 웹 HTS 시뮬레이터를 만들고, 과거 데이터를 통해 전략(VWAP + EMA 눌림목)을 완벽하게 검증했습니다.수익이 나는 파라미터를 찾았으니, 이제 진짜 돈을 넣고 봇을 돌릴 차례입니다. 그런데 막상 실전 스크립트를 가동하면 백테스트에서는 보지 못했던 치명적인 문제들이 터져 나옵니다. 그중 가장 개발자를 뼈아프게 하는 것은 바로 '데이터 수신 지연과 분봉 정렬의 어긋남'입니다.2. REST API 폴링(Polling) 방식의 치명적 한계초기 자동매매 봇을 만들 때 가장 흔히 하는 실수가 setInte..

[계좌 리팩토링] 16편(시각화). "숫자만으론 안 보여!" 봇의 뇌 구조를 들여다보는 웹 HTS 시뮬레이터 구축

1. 텍스트 로그(CLI)가 가진 치명적인 한계안녕하세요! 내 계좌를 위한 자동매매 시스템을 빚어가는 [계좌 리팩토링] 시리즈 16편입니다. 지난 15편에서는 실전과 완벽하게 동일한 로직(evaluateTick)으로 돌아가는 강력한 CLI 기반의 백테스팅 엔진을 완성하고, VWAP와 EMA를 활용한 눌림목 전략을 테스트해 보았습니다.CLI에서 수백 일치의 과거 데이터를 돌리면 '총 거래수 50회, 승률 45%, 순수익 15%' 같은 결과가 터미널에 텍스트로 찍힙니다. 하지만 개발자이자 트레이더로서 우리는 곧 깊은 갈증을 느끼게 됩니다."도대체 이 매매는 왜 여기서 진입한 거지? 수익이 나긴 했는데, 정말 내가 의도한 예쁜 눌림목(Pullback) 자리였나? 아니면 운 좋게 반등한 휩쏘(거짓 신호)였나?"..

[계좌 리팩토링] 15편(알고리즘). 실전과 테스트의 경계를 허물다: VWAP + EMA 눌림목 전략과 백테스팅 시스템 구축기

1. 봇에게 'Parker Brooks'라는 이름을 지어주다안녕하세요! 내 계좌와 코드를 튼튼하게 다지는 [계좌 리팩토링] 시리즈 15편입니다. 1편부터 지금까지 인프라와 배포 파이프라인을 구축하며 하드웨어적인 뼈대를 완성했다면, 이제는 봇에게 진정한 '두뇌'를 심어줄 차례입니다. 저는 이 고도화된 자동매매 봇 프로젝트에 'Parker Brooks'라는 이름을 붙였습니다.어떤 유튜브를 보다가 파커 브룩스라는 트레이더의 매매 방식을 알게되었습니다.자동매매를 개발하다 보면 필연적으로 이런 질문에 부딪힙니다. "내가 만든 이 매매 로직, 진짜로 돈을 벌어다 줄까?" 실전에서 내 피 같은 돈을 태우기 전에, 과거의 데이터로 수백, 수천 번의 모의고사를 치러보는 백테스팅(Backtesting)은 선택이 아닌 필수..

[계좌 리팩토링] 14편(인프라). '내 PC에선 되는데...' 완벽 방지! Docker로 자동매매 봇 컨테이너화하기

로컬에서의 성공, 서버에서도 보장할 수 있을까?안녕하세요! 내 계좌를 위한 견고한 시스템을 구축하는 [계좌 리팩토링] 시리즈 14편입니다. 지난 13편에서는 GitHub Actions를 통해 코드를 Push하기만 하면 VRT 테스트가 자동으로 수행되는 세련된 CI/CD 파이프라인을 구축했습니다.테스트도 통과했고, 이제 클라우드 서버(AWS EC2, Oracle Cloud 등)나 집에 있는 미니 PC에 봇을 올려서 24시간 돌릴 일만 남았습니다. 그런데 막상 서버에 접속해서 코드를 받고 실행해 보면, 당황스러운 에러들을 마주하게 됩니다."어? 내 맥북에서는 잘 되는데, 왜 우분투 서버에서는 에러가 나지?""Node.js 버전이 달라서 패키지 설치가 안 되네..."이러한 '내 PC에선 되는데 환경(It wo..

[계좌 리팩토링] 13편(자동화). VRT부터 배포까지! GitHub Actions로 나만의 CI/CD 파이프라인 구축하기

수동 테스트의 늪에서 벗어나, 완벽한 자동화의 세계로안녕하세요! 내 계좌와 코드를 튼튼하게 다지는 [계좌 리팩토링] 시리즈 13편입니다. 지난 12편에서 우리는 Playwright와 Storybook을 활용하여 대시보드 UI의 픽셀 하나까지 방어하는 든든한 VRT(시각적 회귀 테스트) 환경을 구축했습니다.하지만 "테스트 코드를 짜는 것"과 "테스트를 꾸준히 돌리는 것"은 전혀 다른 문제입니다. 바쁘게 기능을 개발하다 보면 깜빡하고 pnpm exec playwright test를 로컬에서 실행하지 않은 채 코드를 원격 저장소에 Push 해버리는 실수가 반드시 발생합니다.그래서 이번 시간에는 우리가 봇의 매매를 자동화했듯이, 테스트와 배포 과정마저 자동화(CI/CD) 해보겠습니다. GitHub 저장소에 코드..

[계좌 리팩토링] 12편(안정성). 대시보드 UI를 완벽하게 지키는 법: Playwright와 Storybook을 활용한 VRT 구축

기능이 추가될수록 불안해지는 화면, 어떻게 방어할까?안녕하세요! 내 계좌와 코드를 튼튼하게 다지는 [계좌 리팩토링] 시리즈 12편입니다. 지난 11편에서 우리는 Nuxt를 활용해 봇의 상태를 실시간으로 보여주는 멋진 웹 대시보드를 구축했습니다.앞으로 이 대시보드에는 10편에서 다룬 일목균형표 차트, 호가창 애니메이션, 매매 내역 검색 필터 등 수많은 기능이 추가될 것입니다. 그런데 기능이 늘어날수록 개발자에게는 새로운 두려움이 생깁니다. "새로운 CSS를 한 줄 추가했는데, 어제까지 잘 보이던 잔고 표시 카드 레이아웃이 엉뚱하게 깨지면 어떡하지?"이러한 불안감을 해소하고 UI의 무결성을 보장하기 위해, 이번 시간에는 Playwright와 Storybook을 결합한 시각적 회귀 테스트(VRT, Visual..

[계좌 리팩토링] 11편(심화). 내 봇의 상태를 한눈에! Nuxt로 실시간 트레이딩 대시보드 만들기

터미널의 검은 화면을 넘어, 나만의 종합 상황실로안녕하세요! [계좌 리팩토링] 시리즈 11편입니다. 우리는 지금까지 Node.js를 이용해 백엔드에서 묵묵히 돌아가는 강력한 트레이딩 봇을 완성했습니다. 10편의 일목균형표 알고리즘이 매일 시장을 분석하고, 9편의 텔레그램 연동을 통해 결과도 스마트폰으로 잘 받아보고 계실 겁니다.하지만 진정한 시스템 트레이더의 로망은 무엇일까요? 바로 영화에 나오는 펀드매니저들처럼 내 봇의 실시간 수익률, 현재 포지션, 그리고 매매 로그가 차례대로 올라오는 멋진 '웹 대시보드(Dashboard)'를 띄워두는 것 아닐까요?이번 시간에는 모던 웹 프레임워크인 Nuxt(Vue.js 기반)를 활용하여, 우리 봇의 상태를 시각적으로 모니터링할 수 있는 프론트엔드 웹 페이지를 구축해..

[계좌 리팩토링] 10편(심화). 진짜 퀀트의 시작! 일목균형표(Ichimoku Cloud) 매매 로직 연동하기

시스템은 완성되었다, 이제는 '두뇌'를 장착할 시간안녕하세요! 9편의 텔레그램 알림을 마지막으로 자동매매 봇의 물리적인 아키텍처는 모두 완성되었습니다. 하지만 우리 봇은 아직 "언제 사야 할지" 스스로 결정하지 못합니다. 단지 우리가 하드코딩해 둔 특정 가격이나 단순 비율에 의존할 뿐이죠.진정한 자동매매, 즉 '퀀트(Quant)' 투자의 세계로 넘어가기 위해서는 차트의 흐름을 읽고 수학적 통계에 기반한 매매 알고리즘(전략)을 봇에게 심어주어야 합니다.수많은 보조지표(RSI, MACD, 볼린저 밴드 등)가 있지만, 이번 심화편에서는 추세의 방향과 지지/저항을 한눈에 파악할 수 있어 강력한 팬덤을 가진 일목균형표(Ichimoku Cloud)를 활용한 매매 로직을 Node.js로 구현해 보겠습니다.1단계: 차..

[계좌 리팩토링] 9편(외전). 봇의 보고서를 내 폰으로! 텔레그램(Telegram) 실시간 알림 연동

서버에 있는 봇과 소통하는 방법안녕하세요! 내 계좌를 프로그래밍하는 [계좌 리팩토링] 시리즈, 그 대망의 마지막 9편(외전)입니다. 지난 8편에서 우리는 PM2를 통해 서버 구석에서 조용히, 하지만 24시간 쉬지 않고 돌아가는 무중단 자동매매 시스템을 완성했습니다.그런데 시스템이 알아서 매매를 한다고 하더라도, 내 피 같은 돈이 오가는 일인데 "방금 삼성전자 1주를 샀습니다", "수익률 3% 도달로 익절했습니다" 같은 상황을 전혀 모른다면 하루 종일 불안하겠죠? 매번 터미널에 접속해 pm2 logs를 쳐다보고 있을 수도 없는 노릇입니다.그래서 이번 시간에는 텔레그램(Telegram) API를 활용해, 봇이 중요한 행동(매수/매도 체결, 심각한 에러 발생 등)을 할 때마다 내 스마트폰으로 실시간 메시지를 ..

[계좌 리팩토링] 8편. 24시간 잠들지 않는 봇! PM2와 node-cron으로 무중단 자동화 완성하기

우리가 일할 때도, 봇은 차트를 본다안녕하세요. 감정 없는 기계적인 매매로 내 계좌를 든든하게 지켜내는 [계좌 리팩토링] 시리즈 8편입니다. 지난 7편까지 우리는 API 토큰 발급, 잔고 조회, 실시간 시세 연동, 그리고 대망의 매수/매도 로직까지 모두 완성했습니다.하지만 여기까지는 절반의 완성입니다. 우리가 터미널에서 node app.js를 치고 컴퓨터를 켜두어야만 봇이 돌아간다면, 진정한 의미의 '자동화'라고 할 수 없겠죠. 컴퓨터가 꺼지거나, 우리가 직장에서 본업에 집중하는 동안에도 봇은 백그라운드에서 조용히 자신의 임무(수익 창출)를 수행해야 합니다.이번 8편에서는 봇을 서버(또는 항상 켜두는 PC)에 올려두고, 정해진 시간에만 작동하며 에러가 나도 스스로 재시작하는 완벽한 무중단 시스템을 구축해..