Files
dronevideoplayer/docs/history/2026-04-01_StationOverlay-렌더링분석.md
minsung 2aae3d1c0d feat: StationOverlay 렌더링 최적화 및 스무딩 적용 close #1
- 텍스트(측점/POI) 전 프레임 사전 계산 Map (requestIdleCallback 백그라운드)
- 드론 데이터 이동 평균 스무딩 (smoothFrame ±N프레임)
- 30fps→60fps 프레임 간 선형 보간 (performance.now() 기반)
- EMA(지수이동평균) 표시 위치 스무딩 (α=0.01 기본값)
- 글씨 2배 크기, bold, strokeText 테두리, 배경 박스 제거
- 카메라 파라미터 패널에 smooth/EMA α 슬라이더 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 15:11:39 +09:00

1.4 KiB

StationOverlay 렌더링 끊김 분석 + history 자동화 규칙 추가

소요 시간: 약 15분
Context 사용량: input ~8k / output ~3k tokens
이슈: 없음


작업 내용

1. StationOverlay 렌더링 파이프라인 분석

  • client/src/components/overlay/StationOverlay.tsx 코드 분석
  • 렌더링 구조: RAF 루프(60fps) + renderCache useEffect(드론 프레임 변경 시)
  • 끊김 원인 파악:
    • panelDroneFrame 상태 변경 시 useEffect에서 수백~수천 개 좌표 변환(toCameraCoords + pixelFromCamera)이 메인 스레드에서 동기 실행
    • 계산이 16ms 초과 시 RAF 프레임 드롭 → 뚝뚝 끊김
  • 측정 방법 제안: performance.now() 로깅으로 캐시 빌드 시간 측정
항목 실제
RAF draw 횟수 ~60fps (항상)
캐시 재빌드 횟수 ~30fps (드론 프레임 변경 시)
끊김 원인 캐시 빌드 시 메인 스레드 블로킹

2. history 자동화 규칙 CLAUDE.md 추가

  • 사용자 기대: 작업 완료 시 날짜+주제별 history 파일 자동 작성
  • 현재 훅은 "리마인더/가드"만 담당, 파일 생성은 Claude 몫
  • CLAUDE.md 상단에 "작업 완료 시 필수 — 히스토리 기록" 섹션 추가

산출물

  • CLAUDE.md — 히스토리 기록 규칙 섹션 추가
  • docs/history/2026-04-01_StationOverlay-렌더링분석.md (이 파일)