목록 보기
마이리얼트립 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는 클라이언트로 이동

다음 읽기

#SSR 주제를 다룬 다른 회사 글

해외 숙소 리스트 성능 개선기 : 반쪽짜리 SSR에서 완벽한 인피니트 스크롤까지

해외 숙소 리스트의 반쪽짜리 SSR을 Hydration 기반으로 개선하고 무한 스크롤 UX를 다듬었습니다. 캐싱과 스크롤 복구, 예외 처리로 LCP와 TBT도 함께 개선했습니다.

여기어때
여기어때
프론트엔드

댓글 0개

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

댓글을 불러오는 중...