#performance
13개의 게시물
조회수 집계를 일별로 전환하고 비정규화 필드 도입
🤖 1382 in / 1494 out / 2876 total tokens 조회수 집계 구조를 행 단위에서 일별 집계로 변경하고 Post 테이블에 비정규화된 viewCount 필드를 추가해 쿼리 효율을 높였습니다. 뷰트래커에 세션 스토리지 기반 중복 조회 방지 로직을 적용하고, 메타데이터 생성 시 React cache를 사용해 불필요한 DB 쿼리를 제거
SavedRoutesList 동적 import로 초기 로딩 속도 최적화
🤖 770 in / 1276 out / 2046 total tokens SearchOverlay에서 사용하던 SavedRoutesList를 Next.js dynamic import로 변경했습니다. 사용하지 않는 store import를 제거하고 로딩 스켈레톤을 구현했습니다. 초기 번들 크기를 줄여 사용자 경험을 개선했습니다.
캐시 TTL 7일로 연장한 v0.64.0 배포
🤖 840 in / 611 out / 1451 total tokens 검색 결과 캐시 TTL을 대폭 연장했다. 기존 24시간이던 DEFAULT_TTL과 30분이던 LEGACY_TTL을 모두 7일로 통일했다. 오프라인 환경에서도 일주일간 검색 결과를 활용할 수 있어 사용자 경험이 크게 개선됐다. getCacheStats 함수에 ttlDays 필드를 추가
v0.56.0 - 성능 모니터링 시스템 구축
🤖 1641 in / 730 out / 2371 total tokens 이번 버전에서는 성능 가시화에 집중했다. 사용자 경험을 개선하려면 먼저 측정이 필요하니까. Vercel Analytics를 연동해서 Web Vitals를 자동으로 수집하도록 했다. layout.tsx에 Analytics 컴포넌트 하나 추가하는 걸로 끝이라 간편했다. 여기에 더해
v0.44.0 - 다크모드 전환 애니메이션 추가 및 스타일 개선
🤖 1298 in / 1113 out / 2411 total tokens 다크모드 전환 시 부드러운 애니메이션을 추가했다. 0.2-0.3초 ease-out 타이밍으로 자연스러운 테마 전환을 구현했다. 성능을 고려해 모든 요소에 전환을 적용하지는 않았다. 지도, 캔버스, 이미지, 비디오 같은 무거운 요소는 전환에서 제외했다. card, panel, b
v0.43.0: 폰트와 아이콘 최적화로 PWA 성능 개선
🤖 982 in / 1047 out / 2029 total tokens v0.43.0에서 폰트와 아이콘 최적화로 PWA 성능을 개선했다. Next.js의 next/font를 활용해 Noto Sans KR을 최적화했다. display: swap 옵션으로 폰트 다운로드 전에도 텍스트가 바로 표시되고, preload로 초기 렌더링 속도를 높였다. CSS
지도 마커 클러스터링으로 성능과 가독성 잡았다
🤖 1624 in / 775 out / 2399 total tokens v0.37.0에서 카카오맵과 네이버맵에 마커 클러스터링을 적용했다. 카카오맵은 MarkerClusterer, 네이버맵은 MarkerClustering 라이브러리를 각각 사용했다. 줌 레벨에 따라 마커가 자동으로 그룹핑되고, 네이버는 maxZoom 12, minClusterSize
v0.28.0 배포: 초기 번들 30-40KB 절감 및 라우팅 최적화
🤖 1268 in / 1850 out / 3118 total tokens 초기 번들 크기를 30-40KB 줄였다. PlaceDetail, SaveRouteDialog, FeedbackWidget 컴포넌트를 동적 로딩으로 변경하여 초기 로드 시간을 단축했다. 복잡한 로직 분리를 위해 shouldDropShortestRoute 함수를 route-utils
v0.28.0: 컴포넌트 lazy loading으로 초기 번들 30-40KB 절감
🤖 1268 in / 639 out / 1907 total tokens 이번 릴리즈는 성능에 집중했다. PlaceDetail, SaveRouteDialog, FeedbackWidget 세 컴포넌트를 동적 로딩으로 전환했다. 결과적으로 초기 번들 크기가 gzipped 기준 30-40KB 줄었다. 변경은 단순하다. 기존 정적 import를 dynamic
v0.24.0: 에러 경계와 성능 모니터링으로 안정성 확보하기
🤖 1752 in / 949 out / 2701 total tokens 앱이 터지면 사용자는 떠난다. 이번엔 에러 처리와 성능 측정을 동시에 잡았다. ErrorBoundary 컴포넌트를 새로 만들어 React 컴포넌트 트리에서 발생하는 에러를 우아하게 처리한다. Next.js error.tsx도 추가해서 루트 레벨 에러까지 커버한다. 사용자에게는 친
v0.22.0 번들 사이즈 최적화 및 레이지 로딩 적용
🤖 956 in / 1493 out / 2449 total tokens ResultList 컴포넌트를 동적 임포트로 변경하여 초기 번들 크기를 줄였습니다. 로딩 상태를 표시할 ResultListSkeleton을 추가하고 클라이언트 사이드 렌더링만 수행하도록 설정했습니다. 결과적으로 285.8KB (gzip)로 줄어들어 초기 로딩 시간이 개선되었습니다.
Worker 테스트 속도 50% 단축 및 v5.21.0 배포
🤖 821 in / 1512 out / 2333 total tokens Worker 테스트의 maxSeconds와 timeout을 절반으로 줄여 실행 속도를 50% 단축했습니다. 모든 테스트가 통과되었으며, 0 스킵과 0 취소라는 우수한 결과를 보였습니다. CHANGELOG.md와 package.json을 업데이트하여 v5.21.0을 릴리즈했습니다.
Worker threads로 병렬 실행 구현 — v3.0.0
🤖 1555 in / 753 out / 2308 total tokens radar_fun_meter v3.0.0이다. Node.js worker_threads를 활용해 게임 시뮬레이션을 N개 Worker에 분산 실행하는 --parallel=N 옵션을 추가했다. 핵심은 src/worker/runnerWorker.js다. 각 Worker가 독립적인 게임