Skip to content

perf(navigation): 화면 전환 대기와 초기 로딩 개선 - #210

Merged
devy1540 merged 1 commit into
mainfrom
feat/navigation-performance
Sep 22, 2026
Merged

devy1540 merged 1 commit into
mainfrom
feat/navigation-performance

Conversation

@devy1540

Copy link
Copy Markdown
Owner

목적

첫 메뉴 이동에서 차트와 글 본문 자산 다운로드가 화면 전환을 막던 문제를 개선합니다. 느리거나 실패한 연결에서도 진행 상태와 복구 방법을 제공합니다.

내용(의도 포함)

  • 분석 차트를 화면 렌더링 이후 불러오도록 분리해 제목·요약·기간 선택을 먼저 표시합니다.
  • 메뉴 포인터·포커스·터치 및 브라우저 idle 시 라우트를 사전 로드합니다. 중복 요청을 공유하고 절약 모드/느린 연결에서는 idle 다운로드를 생략합니다.
  • 전환 진행 표시, 지연 안내, 로드 시간 제한과 재시도를 추가하고 사이드바의 스냅샷 전환을 제거합니다. Chromium의 실패한 모듈 캐시를 고려해 다운로드 오류는 새로고침으로 복구합니다.
  • 초기에는 글 메타데이터만 로드하고 본문과 언어별 본문 검색 인덱스를 필요할 때 가져옵니다. 글 상세 SSG와 현재 글의 hydration 데이터, 검색·목차·번역 안내를 유지합니다.
  • 초기 HTML이 요청하는 JS를 변경 전 main 1d45d56 기준 85개/1,350,376 bytes에서 15개/579,536 bytes로 줄였습니다(압축 전 크기 57.1% 감소, 네트워크 시간 개선율 아님).
  • CDN은 실제 응답 헤더만 확인했으며 원격 캐시 설정을 변경하지 않았습니다. 과거 장시간 전송의 정확한 네트워크 원인은 아직 특정하지 못했습니다.

성공기준

  • pnpm build: 116개 정적 페이지 생성
  • pnpm type-check: 통과
  • pnpm lint: 오류 0개, 기존 경고 16개
  • pnpm test:loading: 7개 통과 — 중복 로드 공유, 실패/시간 초과 후 재시도, 메타데이터·발행 필터, 초기 의존성 분리, SSG 본문 유지
  • pnpm test:post-dates, pnpm test:sitemap-lastmod: 각각 6개 통과
  • pnpm check:internal-links: 누락된 내부 글 링크 없음
  • Chrome production preview에서 차트 요청 20초 지연 중 화면·기간 선택 동작, 차트/라우트 파일 실패 및 첫 진입 오류 복구 확인
  • 대기 중 다른 메뉴 이동, 연속 클릭, 한·영 본문 검색과 빠른 검색, 글 직접 진입/목차/뒤로가기 확인
  • 390px 모바일 메뉴 이동과 가로 넘침 없음, reduced-motion 진행 애니메이션 비활성 확인
  • 세부 기준과 관측 결과: docs/navigation-performance.md

@github-actions github-actions Bot added documentation Improvements or additions to documentation target: main PR targets the main branch area: blog Blog listing, post rendering, search, tags, or series area: analytics Analytics, page views, or charts area: ui Shared UI, layout, or styling area: i18n Localization and translations area: routing Routes, app shell, or navigation layout area: seo SEO metadata, prerendering, or public site metadata area: build Build, tooling, or project configuration area: ci GitHub Actions and CI configuration dependencies Dependency manifest or lockfile changes labels Sep 22, 2026
@devy1540
devy1540 merged commit 8991837 into main Sep 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: analytics Analytics, page views, or charts area: blog Blog listing, post rendering, search, tags, or series area: build Build, tooling, or project configuration area: ci GitHub Actions and CI configuration area: i18n Localization and translations area: routing Routes, app shell, or navigation layout area: seo SEO metadata, prerendering, or public site metadata area: ui Shared UI, layout, or styling dependencies Dependency manifest or lockfile changes documentation Improvements or additions to documentation target: main PR targets the main branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant