Yaerhee
예리네
Yaerhee

블로그 메뉴

  • 홈
  • 태그
  • 방명록

태그

  • Next.js Dynamic Routing
  • Error occurred while proxying
  • 크레인 인형뽑기 기계
  • Yussef Dayes
  • Next.js 기초
  • next.config.js
  • Port 5000 was already in use
  • EADDRINUSE
  • Webpack modules
  • webpack devServer
  • Love Is The Message
  • UNABLE_TO_VERIFY_LEAF_SIGNATURE
  • .p12
  • rewrites()
  • currently no loaders are configured to process this file.
  • next.js
  • JavaScript
  • disclosure
  • Next.js URL masking
  • Module parse failed: Unexpected character '' (1:2) You may need an appropriate loader to handle this file type

최근 글

hELLO · Designed By 정상우.
Yaerhee
NextJS - 알아두면 좋은 지식 정리 (1)
Frontend/Next.js

NextJS - 알아두면 좋은 지식 정리 (1)

2022. 11. 17. 17:49
  • 노마드 코더의 Next.js 강의를 듣는 동안, Next.js (vs. React) 의 특징을 아래와 같이 정리해본다.
  create-react-app (React) create-next-app (Next.js)
프로젝트 init (폴더 생성) 커맨드 npm npx
Library ? Framework? Library (기본 틀 제공, 설정은 개인의 자유) Framework (기본 세팅이 쉬우나 폴더 및
파일 경로는 고정되어 있어서 유의해야 함)
CSR ? SSR? Client Side Rendering
(브라우저가 유저가 보는 UI를 다 만들어줌)
-> client-side JS가 모든 UI를 만듦
(HTML 에서는 빈 div 가 자리잡고,
UI가 이후에 출력)
cf) JS 로딩이 다 안되면 화면이 보이지 않음
SSR / Static Generation
(실제 HTML 이 소스코드 상에 존재함,
API result 가 들어오면 내용은 그때 보임)

cf) Static Generation: 빌드 타임에 HTML이 생성 & 매 요청에 따라 재사용됨
cf2) SSR: 매 요청에 따라 HTML이 생성됨

Hydration (+ pre-rendering)

  • 위의 Static Generation 과 일맥상통하는 내용으로,
    HTML 이 빌드 시에 (미리) 만들어져 있고, 요청에 따라 재사용 된다는 속성을 말한다.
  • 아래의 코드를 작성해 놓고, HTML 소스를 한 번 살펴보자.
import { useState } from 'react'

export default function Index() {
    const [counter, setCounter] = useState(0)
    return (
        <div>
            <h1>Number is {counter}</h1>
            <button onClick={() => setCounter(prev => prev +1 )}>+</button>
            <button onClick={() => setCounter(prev => prev -1 )}>-</button>
        </div>
    )
}

localhost:3000 화면
js가 아닌, 기본 HTML 태그로 준비되어 소스코드에 담겨 있는 상태

  • 위와 같이, 소스코드를 보았을 때 기본 값을 준비하여 HTML 태그를 갖춰두는 과정을 이야기 한다.
  • 보통 페이지가 로드될 때 수 많은 스크립트들을 요청할 때,
    위의 pre-rendering 이후 해당 스크립트들을 활용하는 방식을 택할 수 있다.

=> Front-end 내부에서 React.js 를 실행하는 방식을 Hydration 이라고 부른다.

  • 유저가 웹사이트를 방문할 경우
  1. 초기 상태의 component로 구성된, 미리 생성된 HTML 페이지를 보게 되고
  2. 상호작용이 일어날 경우, react.js 가 이후의 구성을 넘겨받아서 동작을 돕게 된다.

CSR과는 다르게, 기본적인 HTML은 갖춘 상태에서 react를 실행시키도록 여유를 둘 수 있기 때문에

SEO 등(구글 검색엔진, ...)에서 유용하게 활용할 수 있는 방식이다.

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

Dynamic Routing + Router Hook (URL masking)  (0) 2022.11.24
rewrites() - nextConfig 에서 URI 우회 & API parameter 숨기기  (0) 2022.11.22
    'Frontend/Next.js' 카테고리의 다른 글
    • Dynamic Routing + Router Hook (URL masking)
    • rewrites() - nextConfig 에서 URI 우회 & API parameter 숨기기
    Yaerhee
    Yaerhee

    티스토리툴바