Next.js는 React 기반의 웹 애플리케이션 프레임워크입니다. 리액트는 현재 프론트 시장에서 시장을 점유하고 있습니다.다른 기반의 프레임워크와 달리 다양한 효용성을 비롯하여 다양하게 사용이 되고 있습니다. 그리고 네이티브를 통하여 모바일 까지 손쉽게 지원되기 때문에 더욱더 개발 생산성과 사용자 경험을 동시에 향상시키는 데 강력한 기능들을 제공합니다. 거기에 NEXT.JS는 리액트가 가지고 있지않은 장점을 가지고 있는 프레임워크라고 할 수 있습니다.
NEXT.JS는 큰 특징은 두가지가 있습니다. SSR(서버 사이드 렌더링)**과 SSG(정적 사이트 생성), ISR(증분 정적 생성) 입니다.
이는 서버에서 바로 화면을 만들거나 이미 화면을 만들어서 웹사이트가 로딩하는 시간을 단축시킬 뿐아니라 사용자 입장에서도 불편함을 없애주는 강력한 역할을 합니다. 기존의 React 단독으로는 클라이언트 렌더링만 가능하지만, Next.js는 요청 시 서버에서 HTML을 미리 생성해 SEO에 유리합니다. 미리 정적인 페이지로 빌드하거나, 특정 조건에 따라 서버에서 페이지를 생성해 빠른 사용자 응답을 가능하게 합니다.
이러한 기반의 Next.js는 다양한 파일 기반라우팅을 통하여 페이지의 생성만으로 자동 라우팅이 됩니다. 또한 API Routes 지원하기 때문에 Express나 별도 백엔드 없이도 pages/api 내에서 API 엔드포인트를 정의할 수 있어 간단한 백엔드 기능까지도 빠르게 구현할 수 있습니다. 리액트를 기반으로 하는 회사이거나 사이트라면 이제는 NEXT.JS 최신의 기술의 배워나가야 합니다.
Next.js는 또한 이미지기반을 개선의 도움을 줍니다. next/image 컴포넌트를 사용하면 자동으로 lazy loading, WebP 변환, 리사이즈 최적화 등이 적용되어 성능 개선에 도움을 줍니다.또한 자바스크립트 => 타입스크립트로 개선되어왔습니다. NEXT.js는 타입스크립트 기본 지원, ESLint, Prettier 설정의 자동화, Fast Refresh 기능 등을 통해 개발과 디버깅 효율을 크게 높일 수 있는 장점이 있습니다.
Next.js는 글로벌 대기업과 스타트업 모두에서 널리 사용되고 있습니다.
클라우드 컴퓨팅을 제공하는 Vercel는 Next.js의 개발사이며, 자체 웹사이트 및 클라이언트 프로젝트에 광범위하게 사용 중입니다. 그외에도 우리가 흔히 아는 Twitch, TikTok, Netflix, GitHub, LINE, 쿠팡, 토스(Toss), 배달의민족(우아한형제들) 등 국내 기업도 빠르게 Next.js 채택 중에 있습니다. 새로 하는 프로젝트와 리팩토링을 Next.js로 하는 만큼 널리 사용됩니다.
한빛미디어 소플의 처음 만난 Next.js에서는 기본적인 개념을 시작으로 따라익히면서 다양함을 배울 수가 있습니다. 최신버전인 리액트 19와 Next.js 15기반을 통하여 타입스크립의 기초를 시작으로 개발환경을 설정부터 저자 개발자와 같이 합니다. 그리고 프레임워크를 배우는것에서 넘어 User에서 Browser그리고 Server를 뿐만 아니라 Database의 과정을 상세히 설명하여 주니어 개발자에게도 다양함을 배우도록 합니다.
그리고 실무에서 사용하는 주요기능을 소개하고 보여줍니다. 그로인하여 서버컴포넌트, 데이터패칭 등 다양한 기술을 학습할 수 가 있습니다. 프론트기반의 언어와 Next.js라는 프레임워크를 통하여 다양함을 배울 수가 있습니다. 리액트기반의 프레임워크를 통하여 CSR, SSR, SSG 등 다양한 랜더링 방식부터 폴더 구조 기반의 라우팅을 가지고 있습니다.
제0장에서는 리액트의 설치부터 프론트로만 프로젝트를 구현하기위한 Node.js을 설치와 Npm설치를 시작으로 차근차근히 진행을 합니다. 소플의 처음 만난 Next.js는 기본적으로 자바스크립트를 어느정도 아는 개발자와 주니어에게 추천합니다.
제1장에서는 Next.js를 소개합니다. 리액트를 기반으로 Next.js를 추가적인 기능을 소개하고 배웁니다. CSR과 SSR을 통하여 다양함을 배우고 SSG를 이용하여 배울 수가 있씁니다. 그리고 간단한 역사를 배웁니다.
제2장에서는 다양한 실습을 통하여 Next.js의 처음 입문을하게 됩니다. 그리고 create-next-app을 사용하여 Next 앱을 생성하고 실습 글로벌 스타일 설정 및 ESLing 규칙들을 통해 배우는 과정을 가지게됩니다.
제3장에서는 라우팅은 무엇이고 라우팅의 기초개념부터 페이지스 라우터, 앱라우터, 링크와 내비게이션같은 Next.js에서 사용하는 다양한 라우팅을 실습합니다.
제4장을 UI,UX요소가 중점인 페이지와 레이아웃의 위치에대해 학습하게 됩니다. 이를 통하여 페이지,레이아웃,템플릿,메타데이터 그리고 이를 만들었으면 실습을 하면서 동적,정적 라우팅의 변하를 직접 경험을 해볼 수가 있습니다.
제5장은 라우트 핸들러로서 제3장에서 배운 라우팅을 활용하는 법을 배웁니다. 페이지스 라우터의 API 라우트와 앱 라우터의 라우트 핸들러를 통하여 예시를 배우면서 직접 사용을 하게 됩니다.
제6장 부터는 미들웨어의 개념을 배웁니다. 미들웨어는 각 다른 프로젝트나 각 API를 연결해주는 통로라고 생각하면 쉬운데 이러한 개념은 어느정도 규모가 있는 프로젝트에서 EAI을 통하여 경험을 하게 됩니다. 이를 통하여 미들웨어를 직접 배울 수가 있습니다.
제7장은 제6장에서 배운 미들웨어의 사용법을 이용하여 배울 수가 있습니다. 데이터의 fecth를 통하여 서버액션을 배우고 이를 통하여 서버와 데이터의 연결 관계를 배울 수가 있습니다 . 그렇기 때문에 주니어 개발자나 이제 혼자 홈페이지를 구축하려는 분들도 이러한 과정을 이해하면서 다양하게 배울 수가 있는 장점이 있습니다.
제8장은 SWR을 소개합니다. SWR은 먼저 캐시(stale)로부터 데이터를 반환한 후, fetch 요청(revalidate)을 하고, 최종적으로 최신화된 데이터를 가져오는 전략으로서 소플의 처음만나 Next.js에서는 SWR을 소개와 데이터 패팅 뮤티에션과 재검증을 이용하기 위한 방법을 상세히 배울 수가 있습니다.
제9장 랜더링은 랜더링의 기초뿐만 아니라 서버컴포넌트, 클라이언트 컴포넌트, 서버와 클라이언트 컴포지션 패턴을 더붙어 엣지와 Node의 런타임 등 다양함을 배울 수가 있습니다.
제10장 캐싱 리퀘스트 메모이제이션에서는 동일한 요청을 반복할 때 결과를 저장해 불필요한 연산을 줄이는 방법과 데이터 캐시에서는 서버나 클라이언트에서 데이터를 효율적으로 저장하고 재활용하는 전략을 학습합니다.
제11장에서는 다야한 스타일링의 대해 배우고 학습할 수가 있습니다. CSS 모듈 & 글로벌 스타일에서는 컴포넌트 단위 스타일링과 전역 스타일 관리 방법을 배웁니다. Tailwind CSS에서는 유틸리티 기반 프레임워크를 사용해 빠르고 일관된 디자인을 구현하는 방법을 익힙니다.
제12장는 이미지 최적화에서는 다양한 이미지 포맷과 전략을 통해 성능을 개선하는 방법을 학습할 수가 있습니다. 폰트 최적화에서는 웹폰트를 효율적으로 로드하여 렌더링 속도를 높이는 방법을 다룹니다. 스크립트 최적화에서는 불필요한 스크립트를 줄이고 필요한 스크립트만 효율적으로 로드하는 기법을 학습합니다.
제13장에서는 next.config.js에서는 Next.js의 핵심 설정 파일을 이해하고 수정하는 방법을 학습합니다.환경변수 설정에서는 프로젝트 내에서 환경변수를 정의하고 안전하게 사용하는 방법을 다룹니다.
제14장에서는 이제 개발에서 가장중요하다고 할 수 있는 테스트단계 입니다. 프론트엔드 테스트 종류에서는 단위 테스트, 통합 테스트, E2E 테스트의 개념을 학습합니다. Vitest, Jest, Playwright, Cypress 소개에서는 각 테스트 프레임워크의 특징과 차이점을 다룹니다.
제15장에서는 이제 개발을 하면 빌드와 배포의 개념에 대하여 학습합니다. 빌드 개념에서는 빌드 과정이 무엇인지, 그리고 왜 필요한지 학습합니다. Next.js 빌드 프로세스에서는 Next.js 애플리케이션의 빌드 과정과 내부 동작을 이해합니다. 직접 실습하면서 배포합니다.
제16장에서는 이제 미니 프로젝트: 커뮤니티 웹앱을 만들어 볼 수가 잇습니다. 실제적으로 앞장에서 배웠던것을 하나하나 복습을 하면서 실습을 할 수가 있습니다. 직접 실행부터 배포까지 다양한것을 배울 수가 있습니다.