피드로 돌아가기
GitHub BlogFrontend
원문 읽기
IndexedDB 기반 Client-side Caching으로 HPC <200ms 즉각적 응답 구현
From latency to instant: Modernizing GitHub Issues navigation performance
AI 요약
Context
서버 렌더링과 중복 데이터 페칭으로 인한 Navigation Latency가 개발자의 작업 흐름을 저해하는 병목 지점으로 작용. 기존 SSR 중심 구조는 Cold Start 및 네트워크 비용을 매번 지불하여 사용자 체감 성능을 저하시키는 한계 존재.
Technical Solution
- Perceived Latency 최적화를 위해 로컬 데이터 우선 렌더링 후 백그라운드에서 재검증하는 'Render-then-Revalidate' 전략 채택
- IndexedDB 기반의 Client-side Caching Layer를 구축하여 네트워크 요청 없이 즉각적인 데이터 제공 구조 설계
- Cache Hit Rate 향상을 위해 사용자 행동 패턴을 분석한 Preheating 전략을 도입하여 불필요한 요청 최소화
- Hard Navigation 상황에서도 캐시 데이터 활용이 가능하도록 Service Worker를 통한 데이터 가용성 확보
- 단순 Latency 측정이 아닌 HPC(Highest Priority Content) 지표를 도입하여 사용자 체감 성능 중심의 최적화 기준 설정
실천 포인트
- LCP와 유사한 HPC 지표를 설정하여 실제 사용자가 느끼는 핵심 콘텐츠 렌더링 시점을 측정할 것 - 네트워크 요청 전 로컬 캐시를 먼저 렌더링하고 백그라운드에서 최신 데이터를 동기화하는 패턴 검토 - 단순한 캐싱을 넘어 사용자 다음 경로를 예측하여 미리 데이터를 채우는 Preheating 전략 적용 - Hard Navigation 시의 성능 저하를 막기 위해 Service Worker 도입 및 리소스 제어 고려