일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 숫자를 별점으로
- 알고리즘
- 서버 컴포넌트
- server component
- 배열 중복 제거
- react
- 동전 0
- 그리디
- 배열 메소드
- db수정
- 중복선택
- 백준
- 항해99
- 중복카테고리
- NextJS v13
- jQuery
- 부트캠프항해
- 항해99솔직후기
- 날씨 api
- 탐욕알고리즘
- 클라이언트 컴포넌트
- 실전프로젝트
- 로딩 후 실행
- 항해99후기
- greedy
- JavaScript
- 카테고리필터
- 자바스크립트
- 항해99추천
- 프로그래머스
- Today
- Total
공부 및 일상기록
[NextJS] Next.JS 란 무엇인가? 본문
Next.js는 React 라이브러리의 프레임워크 이다.
Next.js를 사용하는 가장 큰 이유는 SEO를 위한 Server Side Rendering을 가능하게 하기 때문이다.
리액트는 기본적으로 Client Side Rendering을 한다. 따라서 웹사이트를 요청하면 클라이언트에서 HTML을 구성하기 때문에 첫 로딩시간도 길고, SEO에 취약하다는 단점이 있다.
Next.js없이는 SSR이 구현이 안되는 걸까?
꼭 그렇지는 않다. 리액트만으로도 SSR을 구현 할 수 있고, SPA에서 SSR을 구현하지 않고도 SEO 최적화를 하는 방법도 존재한다. 하지만 위 방법들은 이미 진행된 React에서 새로운 프레임 워크를 도입하는것이 리팩토링 등 꽤 많은 비용이 드는 작업이기 때문에 다른 방법을 선택하는 것이고, 만약 새로 시작하는 프로젝트라면 깔끔하게 Next.js로 시작하는것이 더욱 심플하다.
Next.js의 좋은 기능
Next.js는 pre-rendering뿐만 아니라 페이지 기반 라우팅 시스템도 제공한다. 프로젝트의 가장 바깥 폴더이 /pages 폴더에 컴포넌트를 export하면 폴더명이 페이지 route가 된다.
또한 컴포넌트에 /컴포넌트/[id] 와 같이 대괄호를 씌워서 동적 라우팅(dynamic route)도 지원한다.
Next.js는 <Link/> 컴포넌트를 통해 페이지간 빠르고 매끄러운 이동을 가능하게 한다. HTML의 a태그와 달리 페이지를 리로딩하지 않고도 페이지간 이동이 가능하고 link컴포넌트가 뷰포트에 보였을 때 관련 페이지를 백그라운드에서 미리 가져다 놓기 때문에 사용자가 링크를 클릭 했을 때 매우 빠르게 해당 페이지로 이동할 수 있게 해준다.
자동으로 Code Splitting을 지원한다. 보통 리액트에서 번들크기가 크면 여러 조각으로 조각내어 첫 로딩시 필요한 부분만 전송해 주는 방식으로 로딩시간을 줄이곤 한다. 하지만 Next.js에서는 dynamic import를 사용하여 모듈이 호출될 때만 모듈을 import한다. 즉 사용될 때만 import 하는 것이다.
이 외에도 built-in-CSS, Image Optimization, fast refresh, 서버리스 함수로 api 엔드포인트를 만드는 API routes 등 기능도 지원한다.
'개발' 카테고리의 다른 글
크로스 브라우징이란? (0) | 2023.01.18 |
---|---|
서버사이드렌더링, 클라이언트사이드렌더링, 스태틱사이트제너레이터 (0) | 2023.01.17 |
SPA, MPA에 대해 (0) | 2023.01.13 |
BOM과 DOM에 대하여 (0) | 2023.01.13 |
리플로우와 리페인트에 대하여 (0) | 2023.01.13 |