Skip to content

무한 스크롤 다음 페이지 프리페치 도입 검토 #402

Description

@Jae-Hyuk-Jang

🧾 이슈 개요

use-infinite-scroll.ts는 pages.length가 바뀐 뒤에야 다음 페이지를 요청한다(use-infinite-scroll.ts:83-86).
이전 구조(items를 로컬 state로 복사)에서는 새 페이지가 화면에 커밋되기 전에도 다음 요청이 나갈 수 있어 렌더와 네트워크가 겹쳤다.

#344에서 로컬 state 복사를 없애면서 측정 결과 회차 간 간격이 2ms(#387 이후 기준) → 약 48ms로 늘었다.
프로브(파생 상태만 되돌리는 임시 코드)로 원인을 격리한 결과, 카드 12장을 렌더하는 비용만큼 다음 요청이 늦게 나가는 것으로 확인했다.
요청 수·중복은 영향 없음(5회/0건 그대로).

전체 로드 시간(중앙값)도 723ms(after-387) → 955ms(after-344)로 늘었다. 다만 이 값은 next dev에서 잰 상대 비교용 수치라, production 빌드 기준으로는 절대값도 32%라는 비율도 다시 확인해야 한다.

버그는 아니다. 다만 겹침을 의도적으로 되살릴지(prefetch) 아니면 현재처럼 커밋 후 요청을 기본값으로 둘지는 결정된 적이 없다.

⚙️ 요구사항

  • 48ms가 실사용에서 체감 가능한 수준인지 판단 근거 마련
  • next build && next start로 재측정한다. 지금까지의 측정은 전부 next dev(컴파일 캐시·HMR 오버헤드 포함) 기준이라, 48ms/955ms가 production에서도 같은 크기인지, 심지어 같은 방향인지 확인되지 않았다.
  • 되살린다면 방식 결정: 센티넬 진입 시 렌더 대기 없이 요청, 혹은 다음 페이지 명시적 prefetch
  • 측정 하네스(infinite-scroll-measurement.spec.ts)로 결정 전/후 비교

✅ TODO

  • production 빌드로 재측정해 48ms/955ms가 dev 환경 아티팩트가 아닌지 확인
  • 48ms 트레이드오프 유지/개선 여부 결정
  • (개선 결정 시) 트리거 방식 설계 및 구현
  • 측정 하네스로 회귀 확인

💬 Remarks

Activity

  1. changed the title [-][무한 스크롤] 페이지 렌더 커밋 후 다음 요청 — 프리페치 재도입 여부 결정[/-] [+]무한 스크롤 다음 페이지 프리페치 도입 검토[/+] on Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions