Rendering[Next.js]

SnowCat·2023년 4월 19일
0

Next.js

목록 보기
8/16
post-thumbnail

Rendering Environments

  • 사이트에 대한 렌더링은 기본적으로 클라이언트, 서버 양측에서 진행 가능함
  • React 18 이전에는 기본적으로 클라이언트에서 렌더링을 진행함
  • Next.js에서는 HTML을 생성하고 React가 해석할 수 있도록 클라이언트에 보내 서버에서 렌더링을 할 수 있도록 해줬지만, 이로인해 클라이언트에 추가 자바스크립트 파일이 필요해지게 됨
  • 현재는 Server and Client Components를 통해 컴포넌트 레벨에서 렌더링 환경을 사용할 수 있음
  • 기본적으로 app 디렉터리는 서버 구성 요소를 사용하기 때문에 서버에서 구성 요소를 쉽게 렌더링하고 클라이언트에 전송되는 자바스크립트 파일 양을 줄일 수 있게 됨
  • 트리 계층구조 내에서 클라이언트 구성요소와 서버 구성요소를 섞어서 사용할수도 있으며 리액트는 두 환경의 작업을 합쳐줌

Static and Dynamic Rendering on the Server

  • Static Rendering : 빌드시에 페이지를 미리 렌더링해두는 것으로, 결과물은 캐시되고 재확인되며 요청시마다 사용되게 됨
    클라이언트의 경우 HTML과 JSON이 미리 렌더링되어 캐싱되어있으며, 서버 구성 요소는 React에 의해 렌더링 되며 페이로드가 HTML을 사용되는데 사용됨
  • Dynamic Rendering: 서버에서 요청시마다 새로 렌더링 되는 렌더링 방식이며, 캐싱되지 않음

Edge and Node.js Runtimes

  • 서버에는 페이지를 렌더링 할 수 있는 런타임이 있음
    기본값은 Node.js 런타임이며, 웹 API를 기반으로 하는 Edge 런타임이 있음
  • 양쪽 모두 서버에서의 스트리밍을 지원함

출처:
https://beta.nextjs.org/docs/rendering/fundamentals

profile
냐아아아아아아아아앙

0개의 댓글