abcVideo 플레이어 소스 (client / server / shared / pythonsource / docs / .claude). .gitignore 적용으로 node_modules·storage·samplevideo·미디어 등 대용량 일괄 제외. 103 files, ~964K. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.4 KiB
Markdown
33 lines
1.4 KiB
Markdown
# 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` (이 파일)
|