Next.JS가 렌더링하는 방법

송민경's avatar
Aug 22, 2024
Next.JS가 렌더링하는 방법

1. 렌더링

: React 컴포넌트를 가져와 브라우저가 이해할 수 있는 HTML로 변환하는 작업
 

2. CSR

: Client Side Rendering : 브라우저(client)가 렌더링
  • create-react-app을 사용해 react로 애플리케이션을 생성
  • react는 사용자 브러우저인 client단에서 모든 렌더링을 해야 함
  • 페이지들의 내용이 모두 실제 브라우저 코드에 없음
    • 자바 스크립트를 로드 → 자바스크립트가 UI를 빌드
  • 단점
    • 초기 로드 시 HTML이 비어 있고, 자바 스크립트 다운로드 및 실행 후에 화면이 렌더링됨
 

3. SSR : default 설정

: Server Side Rendering : 서버(백엔드)가 렌더링
  • 모든 component를 렌더링해서 그 HTML로 브라우저 요청에 대한 응답을 함
  • 페이지들의 내용이 모두 실제 브라우저 코드에 있음
  • 장점
    • HTML이 미리 렌더링된 상태로 제공 → 페이지의 초기 화면을 빠르게 표시
      • → 이미 화면에 표시할 HTML 코드를 가지고 있음 = 비어있지 않음
 

4. Server component : default 설정

  • 서버에서 렌더링 되고 hydrate는 안 됨
  • 사용자가 자바 스크립트를 적게 다운받기 때문에 속도가 빨라짐
  • 브라우저에 한번만 렌더링되고 다시는 렌더링 될 일이 없다면 component를 위한 코드를 다운받을 필요가 없음
 

5. “user client” : 클라이언트에서 렌더링

  • 지시어를 사용해 클라이언트에서만 렌더링되도록 지정할 수 있음
    • 해당 컴포넌트는 서버에서 렌더링되지 않고, 클라이언트에서 자바스크립트로 렌더링됨
  • 서버에서 렌더링된 HTML이 브라우저로 전송된 후, 클라이언트 측에서 "use client"로 지정된 컴포넌트가 추가적으로 렌더링됨
  • 초기 HTML이 빠르게 로드되며, 자바스크립트가 활성화된 후 React가 해당 컴포넌트를 클라이언트 측에서 렌더링
    • 자바스크립트가 활성화된 경우에만 해당 컴포넌트가 렌더링
    • React는 이후에 추가되어 Hydration을 통해 클라이언트에서 인터랙티브한 기능을 지원
 
Share article

vosw1