🎒 라이프문라이즈 트레이딩

데스크탑 최적화 작업

🔥 최대 병목 — 렌더 폭풍 제거 (App.jsx)

원인: 단일 panels useMemo의 deps에 globalPrices(2.5s 상시)·walletData(3s)·chartTelemetry(포지션 중 0.5s)·flowTick(5s)·trendScan(15스 죽은 dep)이 함께 있어, 갱신마다 30개 패널 전체가 재생성 — 3,360줄 LiveEntryChart까지 매번 풀 재렌더.

수리:

  • 3-버킷 분리: core(25패널, 핫 데이터 배제) + trade(차트·주문패드·자동매매) + price(포지션카드·전광판확대) — 핫 갱신이 담당 패널만 다시 그림
  • 죽은 deps 제거: trendScan(소비자 0건)·autoTrends(set 없는 state)
  • flowTick → flowStore(신규 모듈 스토어): 차트·차트분석이 useFlowTick() 자가 구독 — 5s 갱신이 차트에만 도달
  • 환율/자본금 스칼라 추출(fxRates·capitalLive): 라이브 시장에서 매번 변하는 가격 맵을 deps에서 몰아냄
  • voiceHeard → 스토어(신규): 음성 인식 partial(초당 수회)이 🎤 버튼 라벨만 갱신

⚠️ 도중에 스스로 치명적 위험을 포착했습니다: 원래 deps 목록 자체에 구멍이 15개쯤 있었는데(2.5s 전체 재생성이 가려줌) 버킷 분리 후엔 진짜 stale-closure가 됨 → 세 deps를 완전 상위집합으로 재구성하고 96개 식별자 전수 자동검증으로 확인.

나머지 수리 (14개 파일)

영역수리
타이머/폴링
bgInterval ★오버랩 가드(이전 큐포화 사고 재발 방지) · 팝아웃 창 폴링
게이트 6종 추가(창마다 백엔드 웜업 메인 창만(9회×N창 → 9회)
틱 경로
DepthLadder 250ms 페인트 코알 hange 800ms 코알레싱(PositionCard 틱레이트
재렌더 차단) · setPendY 1.2px 임계 · useMarketSignals WS 재연결 시 호가 원장 리셋(스테일 누적 차단)
누수
OrderPad 인라인 Div 제거(렌더 nRecorder 언마운트 정리(녹화 스트림·타이머
잔류) · AlertLogDock memo 복원
동등성
refreshWallet(주문 직후 3연속 재렌더 버스트)·ChartBoard(10s마다 심볼설정 팬아웃)·KrOptionBoard
jsonEq 가드
뷰 인지블로그 전체화면(패널 숨김)에서dden 절감
기동main.cjs 창 복원 350ms 스태거 재시작 필요)

건드리지 않은 것 (사유)

  • coachMsg — 적대적 검증 반려: React 19 배칭 + pushAlert가 같은 핸들러에서 이미 setAlertLog → 한계 비용 없음
  • candlesRef 캡 — 코드에 명시된 의도적 설계(20nc 사고)
  • drawLines — 이미 시그니처 가드 존재(감사 과
  • React.lazy 팝아웃 — 유보: 이번 batch 중 최고ode 상호작용), 별도 세션 권장
  • 폴러 완전 통합·vite 튜닝·StrictMode — 낮은 편익/별도 이유로 유보

기대 효과: 플랫 상시 상태에서 2.5s마다 재렌더되는 패널이 30개 → 2개, 포지션 보유 시 0.5s마다 30개 → 3개, 음성 세션 중 App 재렌더 0회, 팝아웃 창당 폴링 스트림 −6종. 다음 재부팅 때 창들이 순차적으로 뜨는 것도 보이실 겁니다.

이 폴더의 다른 기록