피드로 돌아가기
How I Built a 3D Interactive Portfolio with React, Three.js, and Cloudflare Workers
Dev.toDev.to
Frontend

최초 로드 페이로드 2MB 제한 및 60 FPS 달성 기반 3D 포트폴리오 구축

How I Built a 3D Interactive Portfolio with React, Three.js, and Cloudflare Workers

Kunal Gautam2026년 4월 27일1intermediate

Context

WebGL 기반 3D 솔라 시스템 구현 시 발생하는 대용량 에셋으로 인한 초기 로딩 지연 및 성능 저하 해결 필요. SPA 구조의 한계로 인한 검색 엔진 최적화(SEO) 부족과 메인 스레드 부하에 따른 프레임 드랍 방지가 핵심 과제.

Technical Solution

  • 사용자 인터랙션 발생 시점에 오디오를 로드하는 Lazy Loading 기법을 통한 초기 대역폭 낭비 제거
  • Vite Manual Chunking을 통한 Vendor 및 에셋별 번들 분리로 업데이트 시 캐시 효율 극대화
  • Cloudflare Edge Caching의 Immutable 설정과 HTML Revalidation 조합을 통한 즉각적인 배포 반영 및 전송 속도 향상
  • 프로젝트별 정적 HTML 페이지 생성 및 history.pushState 연동을 통한 SPA 환경의 SEO 인덱싱 최적화
  • GA4 커스텀 이벤트 설계를 통한 페이지 뷰 중심 분석에서 사용자 실제 인게이지먼트 분석 체계로 전환

1. 대용량 미디어 파일의 preload="none" 설정 및 유저 제스처 기반 지연 로딩 적용 여부 확인

2. Vite 등 번들러의 Manual Chunking을 통한 라이브러리별 캐시 전략 분리 검토

3. SPA 환경에서 중요 페이지의 정적 HTML 사전 생성(SSG) 및 Deep-linking 구조 설계

4. 정적 자산에 대한 Cache-Control: immutable 설정으로 브라우저 재요청 최소화

원문 읽기