next.js = 리액트를 위한 웹 프레임워크
1. 라이브리러리 & 프레임워크 구분
* 라이브리러리 : 개발자가 필요한 기능을 선택적으로 사용 + 제어 흐름을 직접 관리
* 프레임워크 : 개발자는 프레임워크의 규칙을 따라 코드를 작성
2. next.js 특징 6가지
(1) 복잡한 설정 필요없이 쉽게 개발 가능
(2) js로 백엔드 + 프론트엔드 가능
(3) 자동 코드스플리팅 + 서버사이드렌더링 가능
(4) 다양하게 data-fetching 가능
(5) 요청사항을 에상 가능하게!
(6) 배포는 쉽게 ( vercel에서 만들었기에 가능)
3. 주요렌더링 기법 4가지
-> 면접때 많이 물어봄 (리액트에서만 가능한것. 리액트+넥스트 같이 가능한 것)
(1) CSR
- Client Side Rendering
: 랜더링의 주체가 클라이언트(브라우저)
: 순수 리액트 사용했을 때 100% (라이브러리 x)
: (장점) 사용자와 상호작용이 빠르고 부드러움
=> 서버에 추가 요청 필요 없음
=> 처음에 리액트 서버(localhost:3000) 에 요청은 index.html 요청 (이때 js 파일도 받음) 뭉탱이로 한번에get
: (단점) 처음 로딩 시간 길음 (Time To View)
: 검색엔진최적화 (seo)에 불리함
(2) SSG
- Static Site Generation
: ★최초 빌드시에만 생성이 됨
: 서버에 페이지 렌더링해서 클라이언트에 html 전달 방식
: 빌드 후에는 변하지 않도록 만들어 놓기
: (장점) 첫 로딩시 TTV 가 매우 짧음 (이미 만들어져있으니깐 :: 서버에서 만들어서줌) + SEO에 유리함
--> 서버 사이드 랜더링의 일종임
: CDN (Content Delivery Network) 캐싱 가능
: (단점) 정적인 데이터만 사용 가능
: 서버와의 통신에 의존하므로, 클라이언트 사이드 렌더링보다 상호 작용이 느림
: 실시간으로 업데이트가 어려움
(3) ISR
: Incremental Static Regeneration
: 정적 페이지를 먼저 보여주고, 필요에 따라 서버에서 페이지를 재생성
: CDN (Content Delivery Network) 캐싱 가능
: (단점) 실시간 페이지 아님 / 데이터에 의존하여 화면을 그리는 경우 사용 불가
(4) SSR
: 빌드 시점에 모든 페이지를 미리 생성하여 서버 부하를 줄이는 방식
: SSG, ISR처럼 렌더링 주체가 서버!
: 클라이언트의 요청 시 렌더링
: (장점) SEO 최적화 좋음 / 실시간 데이터를 사용 / CDN 캐싱 불가
: 빠른 로딩 속도(TTV)와 높은 보안성을 제공
: (단점) 요청할 때 마다 페이지를 만들어야 함 / 서버 과부하
4. Hydration
: 수화작용 => 수분이 몸에 채워지는 느낌
: 완벽한 렌더링 방식은 없어서 혼합해서 사용함 = Hybrid =>가능하게 해주는 것이 Hydration
: 정적인걸 가져와서 리액트를 채운다
끝.
'TIL :: Today I Learned' 카테고리의 다른 글
form 유효성검사에 react-hook-form 라이브러리 적용 (0) | 2023.12.27 |
---|---|
리액트 : 심화 프로젝트 기획 (0) | 2023.12.26 |
Recoil : 리액트 전역상태관리 라이브러리 (1) | 2023.12.21 |
TypeScript : 투두리스트 만들기 (5단계 - React Query + Axios ) (0) | 2023.12.17 |
TypeScript : 투두리스트 만들기 (4단계 - Thunk + Axios ) (0) | 2023.12.17 |