코인, 시그널 감시 웹서비스, 자체 운영

바이낸스 선물 350종목 시그널 감시 웹서비스

저희가 직접 만들어 운영하는 서비스입니다. 웹서비스 규모의 일을 맡기면 어디까지 만들어지는지 보여 드리려고 사례에 넣었습니다. 바이낸스 USDⓈ-M 선물 약 350종목의 6개 시간봉을 서버가 계속 훑다가 다이버전스나 삼박자 신호가 뜨면 텔레그램과 웹으로 알립니다. FastAPI 서버 한 대에 차트 화면, 회원과 플랜, AI 브리핑, 무중단 배포까지 붙였고 2026년 8월에 열었습니다.

데이터
바이낸스 선물 공개 API
(REST와 WS, 키 불필요)
서버
FastAPI, SQLite(WAL)
우분투 1대, blue-green
프론트
바닐라 JS 단일 파일
Lightweight Charts
규모
약 350종목, 6개 시간봉
상용 운영 중
시그널 감시 웹서비스 첫 화면. 373종목을 대신 지켜본다는 헤드라인과 BTCUSDT 1시간봉 차트, 종목 목록 패널
운영 중인 서비스 첫 화면 (2026-09-08 캡처). 종목 수는 매일 자동 갱신됩니다

01무엇을 하는 서비스인가

파동에너지 다이버전스 지표를 만들고 나서 든 생각에서 시작했습니다. 지표는 차트를 열어야 보이는데, 350종목의 6개 시간봉을 사람이 다 열어 볼 수는 없습니다. 그래서 서버가 대신 보게 했습니다. 신호 계산부는 트레이딩뷰 원본과 결과가 일치하는지 검증한 파이썬 사본입니다. 이 부분은 수정 금지로 묶어 두어 서비스 코드가 바뀌어도 그대로입니다.

성과를 말하지 않기로 했다

2년, 7년, 횡보장, 상승장 네 구간으로 백테스트를 돌렸더니 전부 기계적 우위가 없다는 결과로 모였습니다. 그래서 확률, 승률, 수익률은 계산하지도 표기하지도 않습니다. 신호 문구도 매수와 매도 대신 바닥형과 천정형으로 씁니다. 이 서비스가 하는 일은 차트를 지켜보는 수고를 덜어 주는 데까지입니다. 한 구간에 맞춘 설정이 다른 구간에서 뒤집힌 실측 기록도 열 건 남아 있습니다. t값이 +6.04에서 −9.02로 바뀐 경우도 있었습니다.

02운영하면서 터진 것

가장 큰 사고, 배포가 DB를 잘라먹음

회원 테이블이 통째로 사라졌다

배포 직후 DB가 손상됐다는 오류와 함께 서버가 계속 죽었습니다. 서버 DB가 35MB에서 147KB로 잘려 있었고 회원과 세션 정보는 영영 사라졌습니다. 원인은 SQLite가 DB 옆에 만드는 보조 파일이었습니다. 배포 스크립트는 DB 파일 하나만 제외했는데, 로컬에서 앱을 한 번 띄우기만 해도 생기는 보조 파일이 배포 묶음에 실려 올라갔습니다. 이 파일이 서버 DB와 짝을 이루자 SQLite가 서버 DB를 로컬 크기로 잘라 버렸습니다.

복구는 불가능했습니다. 신호는 다시 계산하니 사고 전과 정확히 일치했지만 회원 정보는 잃었습니다. 지금은 배포 묶음을 만든 뒤 목록을 검사해서 DB 관련 파일이 하나라도 있으면 배포를 멈춥니다. 재시작 직전에는 서버에서 DB 스냅샷을 떠서 14개까지 보관합니다. 다시 계산할 수 있는 신호와 그럴 수 없는 회원 정보도 서로 다른 파일로 나눴습니다. 사고보다 백업이 없었던 것이 더 큰 문제였습니다.

국내망, 실시간 배지는 초록인데 가격이 멈춤

WebSocket 침묵 차단

국내망에서 바이낸스 실시간 서버에 접속은 정상으로 되는데 데이터만 한 건도 오지 않았습니다. 오류도 끊김 신호도 없어서 연결 상태로는 알 수 없습니다. 그래서 후보 서버 두 곳을 동시에 열어 실제 데이터가 먼저 온 쪽을 씁니다. 마지막으로 데이터를 받은 시각에서 20초가 지나면 다시 접속하고, 그동안은 저희 서버에서 3~5초마다 가격을 받아 옵니다. 연결이 살아 있는지는 데이터가 실제로 도착하는지로 판단해야 한다는 걸 여기서 배웠습니다.

배포할 때마다 2~3분 서비스 거절

기동 폭풍

재시작하면 345종목의 6개 시간봉을 전부 다시 받느라 바이낸스의 분당 요청 한도(가중치 2,400)를 두 배 넘겼고, 사용자 요청까지 거절됐습니다. 캔들 데이터를 디스크에 스냅샷으로 남겨 두었다가 기동할 때 되살리고, 스냅샷 이후에 마감된 시간봉만 스캔하게 바꾸니 기동 때 API 호출이 0회가 됐습니다. 여기에 blue-green 배포를 붙였습니다. 대기 인스턴스를 먼저 띄운 다음 교체하는 방식이고, 배포 중 요청 745건에서 실패는 0건이었습니다.

03다른 프로젝트에 그대로 가져가는 것

이 서비스에서 만든 부품은 의뢰 프로젝트에 그대로 들어갑니다. 요청 한도를 스스로 지키는 바이낸스 공개 API 연결부, 범용 다이버전스 엔진, DB 보조 파일 검사가 들어간 blue-green 무중단 배포 세트가 있습니다. 쿠키 없는 자체 유입 통계, 검색엔진용 서버 렌더링, 성과 주장 표현 검사기, 헤드리스 크롬 화면 검증 도구도 같이 씁니다. 비슷한 계보의 의뢰 사례가 14거래소 김치프리미엄 스캐너 웹서비스입니다.

서비스 이용 가이드 페이지. 신호 종류와 시간봉, 알림 설정 방법 설명
서버에서 그려 내보내는 가이드 페이지. 검색 로봇, 비회원, 회원에게 같은 화면을 보여 주고, 최근 48시간 신호는 건수만 공개합니다
Python 3.10, FastAPI, uvicorn SQLite WAL, sqlite3.backup() 바닐라 JS, Lightweight Charts 4.1 SSE, 텔레그램 Bot API nginx, systemd 템플릿 유닛, cloudflared Claude API (AI 브리핑)

04관련 사례

※ 본 사례는 알고랩이 직접 운영하는 서비스의 구축 기록이며, 서비스 화면의 신호는 지표 조건 충족 사실의 통지이지 투자 권유가 아닙니다. 수익률과 승률은 계산하지도 공개하지도 않습니다. 알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천, 투자 자문, 수익 보장 서비스가 아닙니다.

감시 서비스를 만들고 싶으시다면

알림만 보내는 작은 규모부터 회원제 웹서비스까지, 이 사례에서 쓴 부품으로 만듭니다.
어떤 것을 지켜보고 싶으신지 상담에서 말씀해 주세요.

무료 상담 시작하기 고객 후기 보기
← 제작 사례 전체 보기