Next.js에서 QueryClient를 전역변수로 사용해도 될까요?
103
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
이 게시물은 Next.js 서버에서 전역변수로 생성한 QueryClient로 인해 발생한 메모리 누수 사례를 공유합니다.
문제 요약
- 모듈 레벨에서 생성한 전역 QueryClient가 모든 요청에서 공유되어 캐시 데이터가 누적되어 메모리 지속 증가
- GC 실행 후에도 문자열과 객체가 해제되지 않아 메모리 누수 확정
원인
- SSR 환경에서 단일 QueryClient 인스턴스가 다른 클라이언트 요청 데이터까지 참조
해결
- _app.tsx에서 useState로 요청별(마운트별) QueryClient 생성, useQueryClient로 접근하여 요청별 캐시 격리
- 배포 후 메모리 사용 패턴 정상화 및 서버 재시작 불필요
