본문 바로가기

Next.js

[Next.js] Rendering

Rendering

 

JavaScript 를 이용해서 HTML 을 만드는 행위로, 기존 SPA 를 만들 때 사용하던, CSR 의 rendering 표현에 가깝다.

 

const element = (
  <h1 className="greeting">
    Hello, world!
  </h1>
);

// JSX의 동작 -> Javascript로 HTML 태그를 만든다.
const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);

 

Pre-rendering


Client 에 HTML 이 이미 로드가 된 이후가 아닌, 이전에 JavaScript 를 이용해 HTML 을 만드는 것을 말한다. 

언제 HTML 을 만드느냐에 따라서, SSR (Server Side Rendering), SSG (Static Site Generation) 으로 나뉜다.

 

Next.js 는 기본적으로 모든 코드가 Pre-rendering 됨

 

SSR (Server Side Rendering) : Runtime 할 때 rendering.

SSG (Static Site Generation) : Build 할 때 rendering.

 

Pages Router : 자동으로 정적으로 렌더링 된다.

App Router : 기본적으로 서버 컴포넌트로 취급된다. 

 


 

1. CSR (Client Side Rendering)

 

브라우저에서  HTML 파일을 로드하면, 자바스크립트를 이용해 렌더링하는 방식. (ReactDom.render)

 

 

2. SSR (Server Side Rendering)

 

브라우저에서 해당 페이지에 접속하면, 그순간 서버에서 html 을 렌더링해서 전달하는 방식.

페이지를 요청할때마다 렌더링하기 때문에 오래 걸린다.

 

3. SSG (Static Site Generation)

 

SSR 의 경우, 페이지를 요청할 때 마다 서버에서 렌더링한다. 정적인 페이지는 빌드할 때 렌더링하고, 페이지를 요청할 때 마다 이미 렌더링 된 페이지를 반환.

 

4. ISG (Incremental Static Regeneration)

 

SSG 의 단점은, 컨텐츠가 업데이트 되면 제대로 된 정보를 보여줄 수 없음. 이를 보완하기 위해 일정 주기마다 페이지를 빌드시켜주는 ISR 이 있음. 

 


SEO

 

SEO(검색 엔진 최적화)는 "Search Engine Optimization"의 약자로, 웹 사이트나 웹 페이지가 검색 엔진에서 더 높은 순위로 나타날 수 있도록 최적화하는 프로세스. 쉽게 말해, 검색 엔진에서 특정 키워드나 주제와 관련된 내용을 검색할 때, 여러 웹 페이지 중에서 상위에 나타나는 것을 목표로 한다. 초기 HTML 이 비어있는 CSR 의 경우, SEO 가 나쁘다고 할 수 있음. 

 


 

비교

 

 

  CSR SSR SSG ISR
빌드 시간 짧다 짧다 길다 길다
SEO 나쁨 좋음 좋음 좋음
페이지 요청에 따른 응답시간 보통 길다 짧다 짧다
최신정보인가 ? 맞음 맞음 아님 아닐수 있음 

 

'Next.js' 카테고리의 다른 글

[Next.js] [Page Router] Page와 Routes  (0) 2023.08.17
[Next.js] MPA 부터 SSR 까지  (0) 2023.08.17