DEVELOP
article thumbnail

노마드 코더 NextJS 시작하기 강의를 수강하고 강의 내용을 바탕으로 작성한 글입니다.

 

NextJS 시작하기 – 노마드 코더 Nomad Coders

The React Framework for Production

nomadcoders.co


라이브러리 vs. 프레임워크

# 라이브러리 

: 개발자로서 사용하는 것 

- 개발자가 라이브러리를 불러와서 라이브러리를 사용해서 무언가를 함 

# 프레임워크 

: 개발자의 코드를 불러옴 

- 코드를 적절한 위치에 넣기만하면 코드를 불러와서 동작하게 함 


CSR vs. SSR

# CSR (Client Server Rendering)

: 브라우저가 자바스크립트를 가져와서 클라이언트의 자바스크립트가 모든 UI를 생성함 

- 브라우저가 HTML을 가져올 때는 빈 div를 가져옴

- 네트워크가 좋은 환경이 아닐 때는 UI를 가져오는 데 매우 많은 시간이 걸릴 수 있음 

 

=> 개인정보 데이터를 기준으로 하거나, 보다 나은 UX를 제공하고 싶거나, 상위노출보다는 고객의 데이터 보호가 더 중요한 경우에 사용

# SSR (Server Side Rendering)

: 서버로부터 완전하게 만들어진 HTML 파일을 받아와 페이지 전체를 렌더링하는 방식 

- 클라이언트 (브라우저)가 초기화면 로드를 위해 서버에 요청을 보내면 서버가 화면에 표시하는데 필요한 데이터를 얻어와 모두 삽입하고 css까지 적용해서 렌더링 준비를 마친 HTML과 JS코드를 브라우저에 응답으로 전달함

- 브라우저는 전달받은 페이지를 띄우고 브라우저가 JS코드를 다운로드하고 HTML에 실행시킴

- 장점 

  • 모든 데이터가 이미 HTML에 담겨진 채로 브라우저에 전달되기 때문에 SEO( 검색 엔진 최적화) 에 유리
  • 서버로부터 화면을 렌더링하기 위한 필수적인 요소를 먼저 가져오기 때문에 CSR에 비해 초기 로딩 속도가 빠름

- 단점

  • 매번 페이지를 요청할 때마다 새로고침되어 깜빡임이 생기면서 TTV(Time To View)와 TTI(Time To Interne) 간 시간 간격이 존재하게 되어 UX가 다소 떨어짐
  • 페이지를 요청할 때마다 서버에서 페이지를 구성하는 모든 리소스를 준비해서 응답하므로 서버 부담이 증가함 

=> 상위 노출이 필요하거나, 누구에게나 동일한 내용을 노출하거나, 페이지마다 데이터가 자주 바뀔 때 사용

 

# React vs. Next.JS

: React app은 CSR, next.JS app은 SSR 방식이다. 

- next.js가 백엔드 상에서 react.js를 돌리고 있고, next.js가 페이지를 pre-generate(사전 생성)하면 HTML 페이지가 되어 유저가 페이지를 들어갔을 때 HTML을 볼 수 있게 됨

- 유저가 모든 js를 다운로드 하면 react.js가 주도권을 가져와서 프론트엔드에 나타나 react.js처럼 동작함 


Next.JS

# Next.JS

: React 라이브러리의 프레임워크 

- React + Exress + React-Router-DOM + SSR이 내제화되어 있음 

 

# Next.JS 프로젝트 시작하기

- 프로젝트 시작 ( 프로젝트 폴더 이름에는 대문자 들어갈 수 없음 ) 

$ npx create-next-app . --typescript 

 

- 개발환경 실행

$  npm run dev

 

- 배포파일 생성

$  npm run build

 

- 서비스 시작

$  npm run start

 

# Next.JS 특징 

- Next.JS의 pages 폴더는 라우터의 기능을 함 

- pages 폴더 내 파일이름을 url 경로와 같고, export default 해주어야 함 

- pages 폴더 내 함수의 이름은 중요하지 않음 

- 예외적으로 메인 홈 화면만 index.tsx 파일에서 라우팅 됨 

profile

DEVELOP

@JUNGY00N