next.js에 대해 알아보기Next.js로 만든 사이트next js 시작하기next.js 단점next.js 사용법

Next.js에 대해서 알아보기

KUKJIN LEE
KUKJIN LEE
2024년 2월 18일
183

안녕하세요, 오늘은 FrontEnd Framework: Next JS 13에 대해 알아보도록 하겠습니다. 현재는 14 버전까지 출시됐습니다. 하지만 13버전을 설명드리는 이유는 12버전에서 13버전으로 변경될 때 많은 변화가 있었기 때문에 13버전을 우선적으로 설명드리고, 이후 14버전에 대해서 추가 게시물을 작성하도록 하겠습니다.

 

설명

풀스택 웹 애플리케이션을 구축하기 위한 React 프레임워크입니다. 사용자 인터페이스를 구축하기 위해 React Component를 사용하고, Next.js는 추가 기능과 최적화를 제공합니다.

Next.js는 React에 필요한 Compile등의 도구를 추상화하고 자동으로 구성하여 내부에서 작동합니다. 이를 통해 애플리케이션 구축에 집중할 수 있습니다.

Next.js를 사용하면 동적이며 빠르게 React 애플리케이션을 구축할 수 있습니다.

FrontEnd Framework에서 풀스택 웹 애플리케이션 구축을 위한 Next.js에 대한 설명이 왜? 나올까 생각할 수 있지만, 현재 Next.js 제공하는 API를 활용했을 때 속도 측면에서 만족도가 떨어졌습니다.

당장에 대규모 서비스(서버)로 사용하기에는 무리가 있습니다.

 

Next.js 13 장점

  • Routing: Next.js는 파일 시스템 기반 라우터를 제공, 레이아웃과 중첩 라우팅, 로딩 상태 및 오류 처리를 포함한 라우팅 관련 기능을 손쉽게 구현할 수 있게 합니다.

  • Rendering: 클라이언트 및 서버 렌더링을 지원하며, 정적 및 동적 컨텐츠를 최적화하여 제공합니다. 이를 통해 사용자 경험을 향상시킬 수 있습니다.

  • Data Fetching: async/await을 활용한 데이터 가져오기를 간편하게 처리할 수 있습니다.

  • Styling: 다양한 스타일링 방법을 지원하며, Tailwind CSS와의 호환성이 뛰어남을 강조합니다.

  • TypeScript 지원: TypeScript 프로젝트의 증가와 함께, 타입 체크와 효율적인 컴파일을 지원하여 안정적인 사용자 정의와 타입 체크를 가능하게 합니다.

 

Next.js 13 단점

  • 러닝 커브: Next.js의 사용은 13 이전과 이후로 나눠 볼 수 있습니다. App 폴더 구조로의 전환은 새로운 학습이 필요하며, 기존의 Pages 폴더 구조와 함께 사용하는 경우 러닝 커브가 있습니다. 특히, Pages에서 App 폴더로의 마이그레이션은 도전적일 수 있으며, 일부 프로젝트는 Pages 폴더를 계속 사용하여도 문제가 없습니다.

  • 서버 리소스: SSR은 사용자 경험을 향상시킬 수 있는 장점이 있지만, 큰 규모의 트래픽이 있을 경우 서버 부하를 증가시킬 수 있는 단점이 있습니다.

  • API: Next.js를 사용하여 내부적으로 서버를 구현할 수 있으며, Node.js나 Express.js를 사용하여 서버를 구축한 경험과 비교하여 Next.js로 모든 서버 코드를 옮겼을 때 속도 측면에서 부족함을 느낄 수 있습니다. 이는 Next.js 13의 FrontEnd에 초점을 맞춘 내용이며, BackEnd 측면은 추후 다룰 예정입니다.

 

Next.js 13 정리

React와 함께 빠르고 SEO 최적화 된 풀스택 애플리케이션 구축에 유용한 프레임워크입니다. SSR도 제공하고, 서버 구축까지 가능해졌습니다.

서버 기능은 부족한 부분이 있지만, 계속해서 개선하고 있다고 발표했으니, 정말 좋은 프레임워크가 될 수 있다고 봅니다.

  • 개발자 관점이 아닌, 사용자 관점(친구)에게 물어봤을 때, 서버가 느린 걸 모르겠답니다. 속도가 다르다 설명을 해줘도, 잘 모르겠다.라는 답을 받았습니다.
  • 이론상, Next.js SEO 최적화는 맞습니다. 하지만 SEO를 최적화 시켜봤을 때, 가장 중요한 건 컨텐츠의 내용이라고 생각합니다.

 

 

관련 글

TypeScript any 린트 에러(no-explicit-any) 근본적으로 해결하기

TypeScript 프로젝트에서 @typescript-eslint/no-explicit-any 린트 에러는 단순 규칙 비활성화로 해결할 문제가 아닙니다. 눈 앞 문제는 해결할 수 있지만, TypeScript를 사용하는 가장 중요한 이유를 위배하게 됩니다. any 타입은...

2025년 7월 23일269

JSP 주석, 아직도 `` 쓰시나요? 올바른 사용법

코드를 작성하다 보면 주석을 남기는 경우가 많습니다. 하지만 JSP 환경에서 어떤 주석을 사용하냐에 따라 보안 수준과 성능 이 크게 달라집니다. 표준 주석: 서버 사이드 주석 <%-- --%> JSP 페이지 내 개발 관련 주석은 <%-- --%> 를 사용하는게 좋습니다...

2025년 7월 9일144

쉽게 만드는 React Tab 라이브러리 react-tabs

개발자가 커스텀 스타일을 쉽게 적용할 수 있도록 최소한의 스타일만 제공하여 유연한 스타일링 이 가능한 라이브러리입니다. 상태 관리가 내장되어 있어 탭 선택 및 패널 표시 로직을 직접 구현할 필요 없이 간편하게 사용할 수 있습니다. 기본 사용법 먼저, 라이브러리를 설치합...

2025년 6월 17일173

Next.js 환경 변수 NEXT_PUBLIC 접두사 역할

NEXT_PUBLIC 접두사를 붙이면 변수의 접근 범위가 완전히 달라집니다. 이 차이점을 이해하는 것이 안전하고 효율적인 Next.js 애플리케이션을 구축하는 데 중요합니다. NEXT_PUBLIC 접두사가 없는 환경 변수 (서버 전용) NEXT_PUBLIC 접두사 없이...

2025년 6월 13일156