목록 보기
Next.js 캐싱으로 웹 서버 성능 최적화
프론트엔드

Next.js 캐싱으로 웹 서버 성능 최적화

두줄요약

Next.js App Router에서 Full Route Cache를 활용해 상품 목록·상세 페이지의 서버 렌더링 비용을 줄인 사례입니다. 부하테스트에서 TPS를 크게 개선하고 CPU 사용률도 낮췄습니다.

문제 상황

  • 신규 커머스 서비스의 SSR 구성에서 오픈 전 부하테스트 TPS가 예상보다 낮은 상태
  • 상품 목록·상세처럼 변경이 적고 트래픽이 몰리는 페이지의 서버 렌더링 CPU 부담이 큰 상황

원인 분석

  • 서버 렌더링 결과를 매 요청마다 다시 생성해 TTFB와 CPU 사용량이 커지는 구조
  • Dynamic Function 사용과 개인화 로직 때문에 Full Route Cache 적용이 어려운 상태
  • 캐시 대상과 비대상 페이지를 구분하지 않으면 동일 응답을 내면 안 되는 영역까지 포함될 위험

해결 방법

  • 상품 목록·상세 페이지를 캐싱 대상으로 선정하고 ISR 기반 static route로 전환
  • generateStaticParams, revalidate 설정으로 Full Route Cache가 동작하도록 조정
  • cookies, headers, searchParams 사용처를 정리하고 일부 인증 로직을 클라이언트로 이동
  • Header/Footer는 클라이언트 컴포넌트와 placeholder로 전환해 캐시 적용 가능 범위 확보

성능/운영 포인트

  • Full Route Cache와 Data Cache 동작 관계 확인 및 next.revalidate 값 정합성 유지
  • 캐시 HIT 여부를 확인하는 디버깅 컴포넌트로 운영 검증
  • 부하테스트 조건 통제와 정적 리소스 캐싱 병행으로 효과 수치화

다음 읽기

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

nGrinder를 활용한 부하테스트

nGrinder를 활용해 네이버페이 부동산 상세 페이지의 부하테스트 과정을 정리했습니다. 최대 TPS와 병목을 확인하고 SSR, 캐시, HPA 설정을 개선한 사례입니다.

네이버 페이
네이버 페이
데브옵스

댓글 0개

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

댓글을 불러오는 중...