목록 보기
마이리얼트립 SSR 최적화
프론트엔드

마이리얼트립 SSR 최적화

마이리얼트립
마이리얼트립
2025년 4월 28일

두줄요약

SSR 도입 후 발생한 중복 API 호출과 성능 저하의 원인을 분석하고 구조를 개선한 사례를 다뤘습니다. queryKey 통일, 캐시 설정, 메서드 선택으로 FCP와 LCP를 크게 개선했습니다.

문제 상황

  • 숙소 도메인 주요 페이지에 SSR 도입 후 초기 로딩 지연, hydration 이후 로딩 스피너 잔존, FCP/LCP 악화, 동일 API 중복 호출 발생
  • SSR 적용 목적이었던 클라이언트 요청 감소와 반대로 서버 로그상 호출 수가 늘어나는 역효과 발생

원인 분석

  • fetchQuery, prefetchQuery, 다시 fetchQuery로 이어지는 구조적 중복 호출
  • SSR QueryClient의 staleTime 미설정과 resetQueries() 오용으로 인한 캐시 소실
  • SSR/CSR 간 queryKey 생성 방식 불일치로 캐시 재사용 실패
  • 데이터 검증이 필요한 흐름에 prefetchQuery를 사용한 메서드 선택 문제

해결 방법

  • 최초 1회 fetchQuery로 핵심 데이터만 가져오고 이후 getQueryData()로 재사용
  • 데이터 검증·분기 로직은 fetchQuery와 try…catch로 처리, 불필요한 prefetchQuery 제거
  • SSR용 QueryClient에 staleTime 명시, resetQueries() 대신 영향 범위가 좁은 캐시 조작 사용
  • SSR과 CSR의 queryKey 생성 로직 통일, 불필요한 맵 API는 클라이언트로 이동

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...