2023.10~2024.06 · 프론트엔드 리드

EntityX — 실시간 대시보드와 주문, Bybit 마이그레이션

EntityX — 실시간 대시보드와 주문, Bybit 마이그레이션

초당 수백 건 체결 데이터를 처리하는 실시간 대시보드/주문 UI와 OKX→Bybit 전환 운영 안정화.

DjangoVanilla JSWebSocketTradingView

문제

WS 부하로 인한 렌더링 지연, 거래소 전환(OKX→Bybit)에 따른 API/데이터모델 차이.

목표

실시간 데이터 처리 성능 최적화와 모델 정규화로 전환 리스크 최소화.

해결

- WebSocket 기반 주문·포지션 스트림 파이프라인 설계 - TradingView 차트 커스터마이징 및 손익 시각화 - DOM 업데이트 최소화로 렌더링 병목 제거 - OKX→Bybit 데이터 모델 정규화 및 API 차이 흡수

성과

- 차트 렌더링 지연 40% 감소 - 거래소 전환 기간 3주→1주 단축 - 사용자 이탈률 50% 감소

인사이트

효율적인 코드가 곧 UX.

상세

EntityX 거래하기 (파생 거래 UX·실시간 시스템)

파생 거래 핵심 플로우(주문·포지션·손익·자산)를 단일 화면군으로 통합하고, TradingView 기반 실시간 차트/데이터 파이프라인을 직접 구현했습니다. 2024.02 실시간 차트, 2024.05 OKX→Bybit 마이그레이션, 2024.08 Django PWA 안정화 등 단계적으로 고도화했습니다.

기능 목록

  1. 티커
  2. 대시보드 콘솔
  3. 단일주문
  4. 셀프레시피
  5. 오토봇
  6. 포지션
  7. 대기주문
  8. 주문내역
  9. 자산상태창
  10. 손익내역

세부 기능 요약

  • 티커: 현재가·시장평균가·24h 등락/고저/거래량/거래금액
  • 대시보드 콘솔: 차트 오버레이(BUY/SELL/체결), 주문 실행(단일·셀프레시피·오토봇), 주문 관리(포지션·대기·내역)
  • 단일주문: Limit/Market, 수량 단위(Coin/USDT), 가용자산, 호가창·체결내역 연동
  • 셀프레시피: Long/Short, 체결률(보통/높음/매우높음/사용자정의), 현금비중, 6호가 레시피·유효성 검사
  • 오토봇: ON/OFF, 파라미터(시간·상위코인·레버리지·방향·체결률·원금) 조회
  • 포지션: 방향/레버리지/마진유형/수량/IM·MM/pnl/entry/mark/청산가, 종료(시장가/지정가/추적가) 설계
  • 대기주문: 요약(방향/TP·SL), 상세(시장가/지정가, 취소/수정), 추적가(TP/SL) 스펙
  • 주문내역: 1일/7일/3개월, 주문·체결가/수량/수수료/상태
  • 자산상태창: equity/available/upnl/frozen
  • 손익내역: 종료주문·종료포지션, 기간 필터(7/30/180d·최대 2년)

왜 이 스택인가

  • TradingView — 실시간 차트/손익 — 위젯 커스텀·DOM 최소 업데이트 — 렌더링 지연 40%↓
  • WebSocket — 주문/포지션 스트림 — 혼합형 스트림 설계 — WS 부하 30%+↓
  • 데이터 모델 정규화 — OKX→Bybit 차이 흡수 — 표준 파서 — 전환 3주 내 완료
  • Django PWA — 캐시/즉시 복구 — 오프라인 견고성 — 초기 로딩 69%↓
V2: 클릭 1번으로 투자하는 단순한 거래 경험을 목표로 설계

TradingView 실시간 차트 시스템 (2024.02)

구버전 위젯에서 문서 부재 상태를 코드 리딩과 이벤트 추적으로 보완. 내부 WS 이벤트와 렌더링 타이밍을 역추적하여 차트-WS 결합 실시간 시스템을 직접 구현.

  • 세션 체류시간 4분 → 9분(2.25배)
  • 데이터 반영 지연 3.2초 → 0.7초

문서보다 코드를 먼저, 코드보다 사용자 반응을 먼저.

OKX → Bybit 마이그레이션 (2024.05)

수량 체계(contract/coin/USDT) 차이와 WS 제공 범위의 차이를 해소하기 위해 스키마·파서·실시간 스트림을 재설계. REST+Ticker WS 혼합형으로 부하를 줄이며 정합성 확보.

  • 새 데이터 스키마/타입 정의 + 표준화 파서 구현
  • 혼합형 스트림 설계로 WS 부하 30%+ 감소
  • 실시간 거래 오류율 0.3% 이하
  • BDD 도입으로 2개월 일정 대비 3주 내 완료

API 문서는 가이드, 구조 차이는 언어. 해석이 곧 구현 역량.

TradingView 기능 업데이트 (2024.06)

  • 레시피 안내선(BUY/SELL): 가격 수정(그리드), 레시피테이블 연동
  • 대기주문 표시: 가격 수정(그리드), 수량 수정(클릭시 팝업), 취소 버튼
  • 포지션 라인: 실시간 PNL 표시
  • 체결 내역: 화살표 표시
레시피 안내선/가격 수정 그리드
레시피 안내선(SELL/BUY) 가격 수정(그리드) & 테이블 연동
대기주문 표시/수정/취소
대기주문 표시 — 가격/수량 수정(팝업), 취소 버튼
포지션 라인 PNL
포지션 라인에서 실시간 PNL 표시
체결 내역 화살표
체결 내역 화살표 오버레이

Django 기반 PWA 안정화 (2024.08)

서비스워커·브라우저·Django 캐시를 병행하여 불안정 네트워크에서도 차트/주문 모듈이 로컬 캐시로 즉시 복구되도록 구조화. SSR-비동기 캐시 불일치 이슈 완화.

  • 초기 로딩 6.8초 → 2.1초(69% 개선)
  • 네트워크 지연 시 차트 오류율 ~80% 감소
  • 거래 유지율 15%+ 상승

시스템의 한계를 이해하고, 그 한계를 넘는 전환을 설계한다.