처음 만난 Next.js 문서


9.7

마치며

이번 장에서 배운 내용은 아래와 같습니다.

  • Rendering
    • 코드를 실제 화면에 나타나는 사용자 인터페이스로 변환하는 작업
    • SSR (Server Side Rendering): 서버에서 렌더링이 이뤄지는 것
    • CSR (Client Side Rendering): 클라이언트에서 렌더링이 이뤄지는 것
  • Server Components
    • 서버에서 컴포넌트를 렌더링하고 그 결과를 클라이언트로 전송
    • 클라이언트 측의 렌더링 부담을 줄이고 성능을 향상시키는 데 도움을 줌
    • Server Components의 렌더링 과정
      1. 서버에 컴포넌트 렌더링 요청
      2. 서버에서 컴포넌트 렌더링
      3. RSC Payload 생성 및 전송
      4. 클라이언트에서 서버 컴포넌트 재구성
      5. 상호작용 처리 및 클라이언트 컴포넌트 렌더링
      6. 최종 UI 렌더링
    • Server Rendering Strategies
      • Static Rendering
        • 빌드 시 또는 데이터 재검증 후 백그라운드에서 Route가 렌더링 됨
      • Dynamic Rendering
        • 요청 시점에 각 사용자에 대해 Route가 동적으로 렌더링 됨
      • Streaming
        • 서버에서 UI를 점진적으로 렌더링 함
        • 기본적으로 Next.js App Router에 내장되어 있음
    • 서버 렌더링의 장점
      • 빠른 Data Fetching
      • 보안성 향상
      • Caching
      • 성능 향상
      • 초기 페이지 로드 및 FCP(First Contentful Paint) 향상
      • 검색 엔진 최적화(SEO)
      • 스트리밍(Streaming)
  • Client Components
    • 클라이언트에서 렌더링이 이뤄지는 것
    • 클라이언트 컴포넌트를 사용하면 사용자와의 상호작용성 및 브라우저 API 사용 가능
    • 파일의 맨 위에 리액트의 'use client' 지시어를 추가하여 사용
      • 해당 파일에서 가져오는 모든 모듈(하위 컴포넌트 포함)이 클라이언트 번들의 일부로 간주됨
      • 여러 개의 'use client' 진입점을 정의할 수 있음
    • Next.js에서의 Client Components 렌더링
      • Full Page Load (전체 페이지 로드)
        • React의 API를 사용하여 클라이언트 및 서버 컴포넌트 모두에 대해 서버에서 정적 HTML 미리보기를 렌더링
        • 서버 컴포넌트와 클라이언트 컴포넌트가 각각 렌더링 됨
      • Subsequent Navigations (후속 탐색)
        • 클라이언트 컴포넌트는 서버에서 렌더링되는 HTML 없이 전적으로 클라이언트에서 렌더링 됨
  • Server and Client Composition Patterns
    • Client Components 내에 Server Components나 Server Actions 코드를 작성하여 서버 환경에서 실행되도록 하는 패턴
  • Edge와 Node.js Runtimes
    • Edge Runtime
      • Web API를 기반으로 한 실행 환경
      • Node.js API의 일부를 지원
      • 사용자들에게 빠른 속도로 동적인 컨텐츠를 제공하고 싶을 경우에 적합
    • Node.js Runtime
      • Node.js를 기반으로 한 실행 환경
      • Node.js의 모든 API를 지원하며, 연관된 라이브러리들도 모두 사용 가능
      • Edge Runtime에 비해서 무겁기 때문에 속도면에서는 상대적으로 느리고, 서버 인프라 관리나 운영에 대한 비용도 상대적으로 높음
      • Serverless Node.js
        • Node.js Runtime을 사용하면서도 인프라 관리에 대한 비용을 낮출 수 있게 해주는 것
        • Vercel에서 제공하는 Serverless Function이 해당

마지막 업데이트: 2025년 10월 24일 02시 35분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.

On this page

  • 9.7 마치며