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>
This commit is contained in:
45
.claude/hooks/protect-files.sh
Normal file
45
.claude/hooks/protect-files.sh
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
# protect-files.sh
|
||||
# PreToolUse (Edit|Write) 훅: 보호 파일 수정 차단
|
||||
#
|
||||
# 차단 대상:
|
||||
# - CLAUDE.md (명시적 요청 없이 수정 금지)
|
||||
# - .env 파일 (보안)
|
||||
# - storage/ 외부에 영상/바이너리 파일 쓰기
|
||||
|
||||
INPUT=$(cat)
|
||||
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
|
||||
|
||||
# 파일 경로가 없으면 통과
|
||||
if [ -z "$FILE_PATH" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# .env 파일 직접 수정 차단
|
||||
if echo "$FILE_PATH" | grep -qE '\.env$'; then
|
||||
echo "Blocked: .env 파일 직접 수정은 보안상 차단됩니다. .env.example을 수정하세요." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# storage/ 외부에 영상 파일 쓰기 차단
|
||||
# 주의: .ts는 TypeScript와 HLS 세그먼트 모두에 사용됨
|
||||
# src/ 하위의 .ts 파일은 TypeScript이므로 허용
|
||||
if echo "$FILE_PATH" | grep -qiE '\.(mp4|mkv|webm|mov|avi|m3u8)$'; then
|
||||
if ! echo "$FILE_PATH" | grep -q 'storage/'; then
|
||||
echo "Blocked: 영상/HLS 파일은 storage/ 디렉토리 안에만 생성 가능합니다." >&2
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
# HLS .ts 세그먼트 파일만 차단 (src/ 하위 TypeScript 제외)
|
||||
if echo "$FILE_PATH" | grep -qE '\.ts$'; then
|
||||
if ! echo "$FILE_PATH" | grep -qE '(src/|\.config\.ts|tsconfig)'; then
|
||||
if echo "$FILE_PATH" | grep -q 'storage/'; then
|
||||
: # storage 내 .ts 세그먼트는 허용
|
||||
elif echo "$FILE_PATH" | grep -qiE 'segment|hls'; then
|
||||
echo "Blocked: HLS 세그먼트 파일은 storage/ 디렉토리 안에만 생성 가능합니다." >&2
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user