12주차 위클리 페이퍼

김재환·2023년 12월 31일
0

리액트만 사용할 때와 비교해 Next.js를 사용하는 이유에 대해 설명해 주세요.

Next.js 사용 이유:

  1. 서버 사이드 렌더링(SSR) 및 정적 사이트 생성(SSG) 지원:
    Next.js는 기본적으로 SSR 및 SSG를 지원하여 초기 로딩 속도를 개선하고 검색 엔진 최적화(SEO)에 도움을 줍니다.
    SSR은 서버에서 페이지를 렌더링하여 클라이언트에 전달하므로 초기 로딩 시간을 줄이고 SEO를 향상시킵니다.
    SSG는 미리 렌더링된 정적 파일을 생성하여 서버의 부하를 줄이고 더 빠른 페이지 로딩을 가능하게 합니다.
  2. 자동 코드 분할과 코드 최적화:
    Next.js는 페이지마다 자동으로 코드를 분할하여 필요한 부분만 로드하므로 초기 로딩 속도가 향상됩니다.
    이미지 최적화, 코드 번들링, 트리 쉐이킹 등의 기능을 자동으로 제공하여 개발자가 성능을 최적화하는 데 도움을 줍니다.
  3. Hot Module Replacement (HMR):
    개발 중에 코드 수정이 발생하면 브라우저를 새로 고치지 않아도 자동으로 모듈을 교체하여 빠른 개발 환경을 제공합니다.
  4. 간편한 API 라우팅 및 파일 시스템 기반의 라우팅:
    페이지와 API 라우팅이 파일 시스템 기반으로 간단하게 설정되어 있어 라우팅이 쉽고 직관적입니다.
  5. 통합된 CSS 및 CSS-in-JS 지원:
    Next.js는 모듈 시스템을 사용하여 CSS 및 CSS-in-JS를 손쉽게 통합할 수 있습니다.

Next.js에서 SSR을 실행하는 과정과 hydration에 대해 설명해 주세요.

Next.js에서 SSR 실행 및 Hydration:

  1. SSR 실행 과정:
    사용자가 페이지에 접속하면 Next.js 서버는 해당 페이지의 SSR을 수행합니다.
    서버에서는 필요한 데이터를 가져와 페이지를 렌더링한 뒤 HTML로 변환하여 클라이언트에 전송합니다.
  2. Hydration:
    클라이언트가 페이지의 HTML을 받으면 JavaScript 코드가 실행되고, 이때 클라이언트에서 React 컴포넌트를 생성합니다.
    이후, 서버에서 전송한 HTML과 클라이언트에서 생성한 React 컴포넌트가 일치하는지 확인합니다.
    이 과정을 "hydration" 또는 "rehydration"이라고 하며, 렌더링된 페이지를 빠르게 화면에 보여주고 클라이언트에서의 상호작용을 지원합니다.
    Next.js는 이러한 과정을 자동으로 처리하여 개발자가 별도로 신경 쓰지 않아도 됩니다. 이를 통해 초기 로딩 성능을 개선하고 사용자 경험을 향상시킬 수 있습니다.
profile
안녕하세요

0개의 댓글