Next.js
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Next.js는 React 프레임워크로, 서버 측 렌더링과 정적 웹사이트 생성을 지원한다. 자바스크립트 기반 웹 애플리케이션의 문제점을 해결하기 위해 개발되었으며, Node.js와 npm을 사용하여 초기화한다. Next.js는 2016년 10월에 처음 출시되었으며, 구글, 넷플릭스, 우버 등 많은 대형 웹사이트에서 사용되고 있다. 주요 특징으로는 서버 측 렌더링, 페이지 기반 라우팅, 핫 모듈 교체, 자동 코드 분할, 페이지 사전 가져오기 등이 있으며, SWC와 TurboPack을 사용하여 코드 변환 및 번들링을 수행한다.
더 읽어볼만한 페이지
- 자바스크립트 웹 프레임워크 - 제스트 (프레임워크)
Jest는 다양한 JavaScript 환경을 지원하며 `test()`와 `expect()` 함수로 테스트 케이스를 작성하고 CLI를 통해 실행, 코드 커버리지 확인 등을 제공하는 테스팅 프레임워크이다. - 자바스크립트 웹 프레임워크 - 미티어 (웹 프레임워크)
미티어는 실시간 웹 애플리케이션 개발을 위한 오픈 소스 JavaScript 프레임워크로, 분산 데이터 프로토콜(DDP)을 사용하며 GraphQL 기반의 Apollo 프레임워크를 통해 데이터 관리를 효율화하고 다양한 패키지와 도구를 지원한다. - 웹 프레임워크 - 드루팔
드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다. - 웹 프레임워크 - 실버스트라이프 CMS
실버스트라이프 CMS는 PHP로 제작된 오픈 소스 콘텐츠 관리 시스템으로, 웹사이트 및 웹 애플리케이션을 개발하고 관리하는 데 사용되며, MVC 패턴과 Sapphire ORM 프레임워크를 활용하여 사용자 친화적이고 확장 가능한 플랫폼을 제공한다. - MIT 라이선스 소프트웨어 - MS-DOS
MS-DOS는 마이크로소프트가 개발한 개인용 컴퓨터용 디스크 운영 체제로, IBM PC의 표준 운영 체제로 널리 사용되었으며, 단일 작업 환경과 명령줄 인터페이스를 특징으로 한다. - MIT 라이선스 소프트웨어 - Zcash
Zcash는 존스 홉킨스 대학교 연구를 기반으로 개발된 익명성 강화 암호화폐로, zk-SNARK 영지식 증명을 통해 거래 당사자의 익명성을 보장하지만, 범죄 악용 우려와 규제 대상 가능성이 존재한다.
Next.js - [IT 관련 정보]에 관한 문서 | |
---|---|
개요 | |
![]() | |
개발자 | Vercel 및 오픈 소스 커뮤니티 |
최초 릴리스 | 2016년 10월 25일 |
최신 안정화 버전 | 14.1.0 |
최신 안정화 버전 출시일 | 2024년 1월 18일 |
최신 평가 버전 | 14.1.1 |
저장소 | vercel/next.js |
프로그래밍 언어 | JavaScript TypeScript Rust |
플랫폼 | 웹 플랫폼 |
크기 | 17.0 MB |
종류 | 웹 애플리케이션 프레임워크 |
라이선스 | MIT 라이선스 |
웹사이트 | 공식 웹사이트 |
2. 배경
React는 전통적으로 클라이언트 측 렌더링만 지원하여 초기 로딩 속도가 느리고 검색 엔진 최적화(SEO)에 불리하다는 단점이 있었다. Next.js는 이러한 문제를 해결하기 위해 서버 사이드 렌더링 및 정적 사이트 생성 기능을 도입하였다. Node.js 환경에서 동작하며, npm을 통해 초기화할 수 있다.[9][10][11][12]
기존 JavaScript로는 웹 애플리케이션 개발이 어려워 React가 사용되기 시작했다. 기존 React 앱은 클라이언트 측 브라우저에서만 콘텐츠를 렌더링할 수 있지만, Next.js는 이 기능을 확장하여 서버 측에서 렌더링되는 애플리케이션을 포함한다. 이를 일반적으로 사전 렌더링이라고 하며, Next.js에서는 서버 사이드 렌더링(SSR)과 정적 사이트 생성기(SSG)로 나뉜다. React에서는 이 사전 렌더링이 불가능하여 첫 화면이 하얗게 표시되며 Next.js보다 속도가 느리므로, 검색 엔진 최적화(SEO) 등 속도를 중시하는 관점에서 Next.js가 유리하다.[34]
2. 1. React 프레임워크
Next.js는 서버 측 렌더링 및 정적 웹사이트 생성을 포함한 여러 추가 기능을 지원하는 React 프레임워크이다.[8] React는 전통적으로 자바스크립트를 사용하여 클라이언트 브라우저에서 렌더링되는 웹 애플리케이션을 구축하는 데 사용되는 자바스크립트 라이브러리이다.[9] 그러나 개발자들은 이 전략과 관련하여 JavaScript에 접근할 수 없거나 비활성화된 사용자를 고려하지 않는다는 점, 잠재적인 보안 문제, 페이지 로딩 시간의 현저한 증가, 사이트 전체 검색 엔진 최적화에 대한 피해 등 여러 가지 문제점을 인식하고 있다.[9] Next.js와 같은 프레임워크는 웹 사이트의 일부 또는 전부를 서버 측에서 렌더링한 후 클라이언트로 전송함으로써 이러한 문제를 해결한다.[9][10]Next.js는 React용으로 가장 인기 있는 프레임워크 중 하나이다.[11] 새로운 앱을 시작할 때 사용할 수 있는 여러 권장 "도구 모음" 중 하나이며, 이들은 모두 공통 작업을 지원하기 위한 추상화 계층을 제공한다.[12] Next.js는 Node.js를 필요로 하며 npm을 사용하여 초기화할 수 있다.
2. 2. 개발 문제점 인식
리액트는 전통적으로 자바스크립트를 사용하여 클라이언트 브라우저에서 렌더링되는 웹 애플리케이션을 구축하는 데 사용되는 자바스크립트 라이브러리이다. 그러나 개발자들은 이 방식과 관련하여 다음과 같은 여러 문제점을 인식하고 있다.[9]- 자바스크립트에 접근할 수 없거나 자바스크립트를 비활성화한 사용자를 고려하지 않음
- 잠재적인 보안 문제
- 페이지 로딩 시간 증가
- 검색 엔진 최적화(SEO)에 대한 피해
Next.js와 같은 프레임워크는 웹 사이트의 일부 또는 전부를 서버 측에서 렌더링한 후 클라이언트로 전송함으로써 이러한 문제를 해결한다.[9][10]
2. 3. 주요 기여자 및 사용자
구글은 2019년에 43개의 풀 리퀘스트를 통해 Next.js 프로젝트에 기여했다.[13] 이는 사용하지 않는 JavaScript 제거, 로딩 시간 단축, 개선된 지표 추가 등에 기여했다.[40]2024년 10월 현재, Next.js는 월마트, 애플, 나이키, 넷플릭스, 틱톡, 우버, 리프트, 스타벅스, 스포티파이 등 다양한 대규모 웹사이트에서 사용되고 있다.[9][14]
한국에서는 Vue.js의 영향으로 Next.js와 유사한 Nuxt.js 사용이 많았으나, 최근에는 Next.js 사용이 증가하는 추세이다.
2. 4. 개발 및 지원
Next.js의 저작권과 상표는 Vercel(구 ZEIT)이 소유하고 있으며[42], 오픈 소스 개발 또한 유지 및 주도하고 있다[43]。Vercel은 소프트웨어 개선을 지원하기 위해 시리즈 A 자금으로 2100만달러를 유치했다[1]。 Next.js의 저자 기예르모 라우흐(Guillermo Rauch)는 현재 Vercel의 CEO이며, 프로젝트의 주임 개발자는 팀 뇌트켄스(Tim Neutkens)이다[45]。Vercel은 Next.js 등의 GitHub 등에서 일반 공개가 가능한 배포와, 템플릿을 복제할 수 있는 무상 및 유상 호스팅 서비스 등을 제공하고 있다.3. 개발 역사
Next.js는 2016년 10월 25일 깃허브에서 오픈 소스 프로젝트로 처음 출시되었다.[3] 초기에는 설정이 필요 없는 즉시 사용 가능한 기능, 모든 곳에서 JavaScript 사용, 모든 함수는 JavaScript로 작성, 자동 코드 분할 및 서버 렌더링, 구성 가능한 데이터 가져오기, 요청 예측, 배포 간소화라는 6가지 원칙을 기반으로 개발되었다.[16]
이후 Next.js는 지속적으로 발전하여, 2017년 3월에는 빌드 효율성 및 핫 모듈 교체 기능이 개선된 2.0 버전이 발표되었다.[17] 2018년 9월에는 버전 7.0이 출시되어 오류 처리 기능이 향상되고, React의 컨텍스트 API를 지원하며, Webpack 4로 업그레이드되었다.[18] 2019년 2월에 출시된 8.0 버전에서는 서버리스 애플리케이션 배포를 처음으로 제공하고, 정적 내보내기에 필요한 시간과 리소스를 줄였다.[19]
3. 1. 버전별 주요 기능
Next.js는 2016년 10월 25일 GitHub에서 처음 오픈 소스 프로젝트로 출시되었다.[3]버전 | 출시일 | 주요 기능 |
---|---|---|
Next.js 2.0 | 2017년 3월 | 빌드 효율성 향상, 핫 모듈 교체 기능 개선[17] |
Next.js 7.0 | 2018년 9월 | 향상된 오류 처리, React 컨텍스트 API 지원, Webpack 4로 업그레이드[18] |
Next.js 8.0 | 2019년 2월 | 서버리스 애플리케이션 배포 제공, 정적 내보내기 시간 및 리소스 감소[19] |
Next.js 9.3 | 2020년 3월 | 다양한 최적화, 글로벌 Sass 및 CSS 모듈 지원[20] |
Next.js 9.5 | 2020년 7월 | 점진적 정적 재생성, 재작성 및 리디렉션 지원[21] |
Next.js 11 | 2021년 6월 | Webpack 5 지원, "Next.js Live" 미리 보기, "Create React App 마이그레이션" 기능[22] |
Next.js 12 | 2021년 10월 | Rust 컴파일러 추가, AVIF 지원, Edge Functions & Middleware[23] |
Next.js 13 | 2022년 10월 | 새로운 라우팅 패턴 (App Router), 레이아웃, React 서버 컴포넌트, 스트리밍 지원, Turbopack 발표[24] |
Next.js 13.4 | 2023년 5월 | App Router의 안정적인 버전 제공[25] |
Next.js 14 | 2023년 10월 | 엣지 런타임을 사용하여 메모리 관리 개선[26] |
4. 스타일링 및 기능
Next.js는 CSS 뿐만 아니라 Scss, Sass, CSS-in-JS, 스타일 JSX 등 다양한 스타일링 방법을 지원한다.[12] TypeScript를 지원하며 스마트 번들링 기능이 내장되어 있다.[27]
4. 1. 주요 특징
Next.js의 주요 특징은 다음과 같다:- 서버 측 렌더링: 웹 브라우저의 부하를 줄이고 보안을 강화한다. 애플리케이션의 일부 또는 전체에 대해 서버 측 렌더링을 수행할 수 있으며, 콘텐츠가 풍부한 페이지를 선택적으로 서버 측에서 렌더링할 수 있다.[9]
- 핫 리로딩: 변경 사항을 감지하고 적절한 페이지를 다시 렌더링하여 서버 재시작 없이 변경 사항을 즉시 반영한다. 일부 브라우저에서는 페이지 새로고침이 필요할 수 있다.[9]
- 페이지 기반 라우팅: 개발 편의성을 위해 페이지 기반 라우팅 및 동적 라우팅을 지원한다.[9]
- 자동 코드 분할: 페이지 로딩에 필요한 코드만 포함하여 로딩 속도를 개선한다.[9]
- 페이지 사전 가져오기: 로딩 시간을 단축하기 위해 페이지를 미리 가져온다.[9]
- 점진적 정적 재생성(ISR) 및 정적 사이트 생성(SSG): 빌드 시 정적 HTML 페이지를 생성하여 사용자에게 빠르게 제공한다.[30] 하지만 자주 변경되고 많은 사용자 입력을 활용하는 대화형 사이트에는 적합하지 않을 수 있다.
4. 2. 컴파일 및 번들링
Next.js는 오픈 소스 트랜스파일러인 SWC를 사용하여 코드를 브라우저에서 사용할 수 있는 자바스크립트로 변환하고 컴파일한다.[28] 모듈 번들링에는 Webpack이 사용되었으나, 현재는 TurboPack으로 대체되고 있다.[29] 이러한 도구들은 터미널에서 npm과 함께 사용된다.[13]참조
[1]
웹사이트
How Next.js aims to simplify front-end development
https://www.techrepu[...]
2020-04-21
[2]
웹사이트
vercel/next.js
https://github.com/v[...]
2019-03-17
[3]
웹사이트
Next.js First Release
https://github.com/v[...]
2019-03-14
[4]
웹사이트
Releases · vercel/next.js
https://github.com/v[...]
Vercel
2024-11-21
[5]
웹사이트
Recommended Toolchains
https://reactjs.org/[...]
2021-07-10
[6]
웹사이트
Next.js Brand Guidelines
https://vercel.com/d[...]
2022-08-26
[7]
웹사이트
Develop. Preview. Ship. For the best frontend teams – Vercel
https://vercel.com/h[...]
2020-09-22
[8]
웹사이트
Differences Between Static Generated Sites And Server-Side Rendered Apps
https://www.smashing[...]
2020-07-02
[9]
웹사이트
Next.js
https://doi.org/10.1[...]
Apress
2020
[10]
웹사이트
Adding Server-Side Rendering to Your React Application
https://doi.org/10.1[...]
Apress
2020
[11]
웹사이트
Why front-end development may be the new frontier
https://www.techrepu[...]
2019-12-02
[12]
웹사이트
Comparing Styling Methods In Next.js
https://www.smashing[...]
2020-09-17
[13]
웹사이트
An insider's look at Google's web framework contributions to Next.js and more
https://www.techrepu[...]
2020-02-01
[14]
웹사이트
Spotify.com Technology Stack
https://www.wappalyz[...]
2024-10-15
[15]
웹사이트
Static site generation with single page app functionality? That's what's coming Next(.js)
https://stackoverflo[...]
2020-10-07
[16]
웹사이트
Next step after Node.js: Framework for 'universal' JavaScript apps
https://www.infoworl[...]
2016-10-31
[17]
웹사이트
Next.js 2.0 plays better with React and JavaScript
https://www.infoworl[...]
2017-03-28
[18]
웹사이트
Next.js 7 framework compiles faster, supports WebAssembly
https://www.infoworl[...]
2018-09-21
[19]
웹사이트
Next.js 8 now supports serverless apps
https://www.infoworl[...]
2019-02-14
[20]
웹사이트
Next.js upgrade emphasizes static site generation
https://www.infoworl[...]
2020-03-12
[21]
웹사이트
Next.js adds incremental static pages regeneration
https://www.infoworl[...]
2020-07-27
[22]
웹사이트
Next.js 11
https://nextjs.org/b[...]
2021-07-10
[23]
웹사이트
Next.js 12
https://nextjs.org/b[...]
2021-10-27
[24]
웹사이트
Next.js 13
https://nextjs.org/b[...]
2022-10-25
[25]
웹사이트
Next.js 13.4
https://nextjs.org/b[...]
2023-05-04
[26]
웹사이트
Next.js 14.0.0
https://github.com/v[...]
2023-12-08
[27]
웹사이트
Next.js 8 now supports serverless apps
https://www.infoworl[...]
2019-02-14
[28]
웹사이트
Architecture: Next.js Compiler {{!}} Next.js
https://nextjs.org/d[...]
2023-08-19
[29]
웹사이트
Architecture: Turbopack {{!}} Next.js
https://nextjs.org/d[...]
2023-08-19
[30]
웹사이트
Incremental Static Regeneration with Next.js
https://vercel.com/d[...]
2022-03-06
[31]
웹사이트
How Next.js aims to simplify front-end development
https://www.techrepu[...]
2020-04-21
[32]
웹사이트
vercel/next.js
https://github.com/v[...]
2019-03-17
[33]
웹사이트
Next.js First Release
https://github.com/v[...]
2019-03-14
[34]
웹사이트
Create a New React App – React
https://reactjs.org/[...]
2022-06-30
[35]
웹사이트
Differences Between Static Generated Sites And Server-Side Rendered Apps
https://www.smashing[...]
2020-07-02
[36]
간행물
Next.js
https://doi.org/10.1[...]
Apress
2020
[37]
간행물
Adding Server-Side Rendering to Your React Application
https://doi.org/10.1[...]
Apress
2020
[38]
웹사이트
Why front-end development may be the new frontier
https://www.techrepu[...]
2019-12-02
[39]
웹사이트
Comparing Styling Methods In Next.js
https://www.smashing[...]
2020-09-17
[40]
웹사이트
An insider's look at Google's web framework contributions to Next.js and more
https://www.techrepu[...]
2020-02
[41]
간행물
Next.js
https://doi.org/10.1[...]
Apress
2020
[42]
간행물
ZEIT is now Vercel
https://vercel.com/b[...]
2020-04-21
[43]
웹사이트
Develop. Preview. Ship. For the best frontend teams – Vercel
https://vercel.com/h[...]
2020-09-22
[44]
웹사이트
Static site generation with single page app functionality? That's what's coming Next(.js)
https://stackoverflo[...]
2020-10-07
[45]
웹사이트
Next step after Node.js: Framework for 'universal' JavaScript apps
https://www.infoworl[...]
2016-10-31
[46]
웹사이트
Next.js 2.0 plays better with React and JavaScript
https://www.infoworl[...]
2017-03-28
[47]
웹사이트
Next.js 7 framework compiles faster, supports WebAssembly
https://www.infoworl[...]
2018-09-21
[48]
웹사이트
Next.js 8 now supports serverless apps
https://www.infoworl[...]
2019-02-14
[49]
웹사이트
Next.js upgrade emphasizes static site generation
https://www.infoworl[...]
2020-03-12
[50]
웹사이트
Next.js adds incremental static pages regeneration
https://www.infoworl[...]
2020-07-27
[51]
웹사이트
Next.js 11
https://nextjs.org/b[...]
2021-07-10
[52]
웹사이트
Next.js 12
https://nextjs.org/b[...]
[53]
웹사이트
Next.js 8 now supports serverless apps
https://www.infoworl[...]
2019-02-14
[54]
웹사이트
Incremental Static Regeneration with Next.js
https://vercel.com/d[...]
[55]
웹사이트
At Next.js Conf 2022, learn to build better and scale faster – Vercel
https://vercel.com/b[...]
[56]
웹사이트
Next JS : The Game Changing Update - Trango Tech Blog
https://trangotech.c[...]
2022-10-26
[57]
웹사이트
chore: proper description of turbo pack by ThePrimeagen · Pull Request #2414 · vercel/turbo
https://github.com/v[...]
[58]
웹사이트
Next.js 13
https://nextjs.org/b[...]
[59]
웹사이트
Comparing Styling Methods In Next.js
https://www.smashing[...]
2020-09-17
[60]
웹사이트
Next.js 8 now supports serverless apps
https://www.infoworl[...]
2019-02-14
[61]
웹사이트
An insider's look at Google's web framework contributions to Next.js and more
https://www.techrepu[...]
2020-02
[62]
간행물
Next.js
https://doi.org/10.1[...]
Apress
2020
[63]
간행물
Adding Server-Side Rendering to Your React Application
https://doi.org/10.1[...]
Apress
2020
[64]
웹사이트
Incremental Static Regeneration
https://vercel.com/d[...]
[65]
웹인용
How Next.js aims to simplify front-end development
https://www.techrepu[...]
2020-04-21
[66]
웹인용
vercel/next.js
https://github.com/v[...]
2019-03-17
[67]
웹인용
Next.js First Release
https://github.com/v[...]
2019-03-14
[68]
웹인용
Recommended Toolchains
https://reactjs.org/[...]
2021-07-10
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com