Next.js에서 QueryClient를 전역변수로 사용해도 될까요?

103
AI 요약

이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.

이 게시물은 Next.js 서버에서 전역변수로 생성한 QueryClient로 인해 발생한 메모리 누수 사례를 공유합니다.

문제 요약

  • 모듈 레벨에서 생성한 전역 QueryClient가 모든 요청에서 공유되어 캐시 데이터가 누적되어 메모리 지속 증가
  • GC 실행 후에도 문자열과 객체가 해제되지 않아 메모리 누수 확정

원인

  • SSR 환경에서 단일 QueryClient 인스턴스가 다른 클라이언트 요청 데이터까지 참조

해결

  • _app.tsx에서 useState로 요청별(마운트별) QueryClient 생성, useQueryClient로 접근하여 요청별 캐시 격리
  • 배포 후 메모리 사용 패턴 정상화 및 서버 재시작 불필요

연관 게시글