728x90
Next.js는 어떤놈이야?
- Next.js는 오픈 소스이며, 프레임워크로 리액트와 함께 빠르고 사용자 친화적인 웹 앱 및 정적 웹 사이트를 개발할 수 있다.
- 뒤에 소개할 다양한 기능들을 이용해 리액트 애플리케이션을 효율적으로 구축 및 성능을 최적화 할 수 있다.
리액트와 Next의 차이는?
🔖 서버 사이드 렌더링(SSR)과 정적 생성(SSG) 지원
- 초기 로딩 속도의 향상과 SEO 개선에 용이하다.
- 리액트의 클라이언트 사이드 렌더링(CSR) 또한 사용 가능하다.
- CSR에 비해 페이지 요청 시마다 더 빠른 성능을 제공한다.
- 또한 CSR도 사용 가능하다. (유도리 있는 친구)
🔖 라우팅 및 코드 분할
- 페이지 라우팅 및 앱 라우팅을 통해 동적으로 페이지를 생성하고 필요 시 코드를 자동 분할한다.
- 번들 크기를 줄이고 앱 성능 최적화에 도움을 주는 유용한 기능
🔖 API 라우팅 제공
- 서버리스 함수로 백엔드 엔드포인트를 손쉽게 구현 가능
🔖 자체 컴포넌트를 통한 최적화 및 성능 향상
- Image, Link 컴포넌트 등을 사용해 알아서 최적화를 시켜준다.
- 더불어 prefetch, lazy loading 등의 유용한 기능 또한 제공한다.
🔖 환경 설정 간소화
- 기본적인 설정(타입스크립트, config 등)이 제공되어 초기 세팅 시간이 줄어든다.
결론은?
🔖 리액트에 여러가지 유용한 기능을 추가한 맛돌이 프레임워크
- 물론 항상 Next가 리액트보다 좋은 것은 아니다.
- 복잡한 라우팅 및 데이터 중심 컴포넌트를 갖춘 대규모 웹 앱을 개발하는 경우 리액트가 적합하다.
- 정적 웹 사이트나 JAMstack 앱을 구축하는 경우 Next가 적합하다.
✅ 따라서, 1인 개발 및 애플리케이션의 프로토타입의 빠른 개발에 매우 용이하다. 하지만 사용자 경험(페이지 이동 시 깜박임)이나, 미완성 기술 등의 접목으로 리액트를 완벽히 커버하는 것은 아니다.
번외. Next.js에서 SSR를 실행하는 과정 및 Hydration
🔖 SSR 실행 과정
- 사용자가 브라우저에서 페이지 요청
- Next.js 서버가 해당 요청에 대해 라우팅 및 데이터 검색 처리
- 요청된 컴포넌트가 서버에서 렌더링, 서버 측에서 render 함수를 실행해 HTML 마크업 생성
- HTML 페이지를 브라우저로 전송
🔖 Hydration
- 브라우저가 서버로부터 받은 HTML 파싱, DOM트리 빌드
- JS 번들 다운로드 및 실행
- JS가 실행되며 리액트 컴포넌트 재생성, 서버의 HTML과 클라이언트의 리액트 컴포넌트가 일치하도록 조정(Hydration)
✅ 초기 요청 시 서버에서 미리 렌더링 된 HTML을 받아 볼 수 있어 속도의 향상과 사용자 경험 개선에 용이하다.
'Front-End Study > 코드잇 위클리 페이퍼' 카테고리의 다른 글
[삐릭!] 검색 엔진 로봇과 친구하기 (2) | 2024.06.04 |
---|---|
CORS 에러?? 그게 뭔데. (1) | 2024.06.04 |
타입스크립트.. 누구냐 너 (0) | 2024.05.24 |
CSS-IN-JS에 대하여 (0) | 2024.04.25 |
CSR, SSR, SSG 렌더링 (0) | 2024.04.25 |