logo

nextjs의 탄생배경

Computer Science · 7월 14일 · 16 min read
poster

Next.js는 민간기업 베르셀(Vercel)이 개발한 오픈소스 웹 개발 프레임워크로, 서버 측 렌더링과 정적 웹사이트 생성 기능을 갖춘 리액트 기반 웹 애플리케이션을 제공한다.

리액트 문서에서는 'Node.js로 서버 렌더링된 웹사이트를 구축할 때' 개발자에게 조언하는 '권장 툴체인'에서 Next.js를 언급하고 있다. 기존 React 앱이 클라이언트 측 브라우저에서만 콘텐츠를 렌더링할 수 있는 반면, Next.js는 이 기능을 확장해 서버 측에서 렌더링되는 애플리케이션도 포함한다.

Next.js의 저작권 및 상표권은 베르셀이 소유하고 있으며, 베르셀은 Next.js의 오픈소스 개발도 관리 및 주도하고 있다.

배경

Next.js는 서버 측 렌더링, 정적 웹 사이트 생성 등 몇 가지 추가 기능을 가능하게 하는 React 프레임워크입니다. 웹 애플리케이션을 구축하기 위해 사용되어 왔다. 그러나 개발자들은 이 전략에 몇 가지 문제점이 있다는 것을 알고 있는데, 자바스크립트를 사용할 수 없거나 비활성화된 사용자에 대한 대응, 잠재적인 보안 문제, 페이지 로딩 시간의 대폭적인 연장, 사이트 전체의 검색 엔진 최적화에 악영향을 미친다.Next .js와 같은 프레임워크는 웹 사이트의 일부 또는 전부를 서버 측에서 렌더링한 후 클라이언트로 전송할 수 있도록 함으로써 이러한 문제를 해결한다.Next.js는 React용 프레임워크 중 가장 인기 있는 프레임워크 중 하나다.Next. js는 리액트를 위한 가장 인기 있는 프레임워크 중 하나이며, 새로운 앱을 시작할 때 사용할 수 있는 몇 가지 권장되는 '툴체인' 중 하나다. Next.js는 Node.js가 필요하며, Node Package Manager를 통해 초기화할 수 있다.

구글은 2019년에 43건의 풀 리퀘스트를 제출하는 등 Next.js 프로젝트에 기여하고 있으며, 2022년 3월 현재 이 프레임워크는 Walmart, Apple, Nike, Netflix, TikTok, Uber, Lyft, Starbucks를 포함한 많은 2020년 초, 베르셀은 소프트웨어 개선을 지원하기 위해 시리즈 A에서 2100만 달러의 자금을 확보했다. 프레임워크의 원작자인 기렐모 라우치는 현재 베르셀의 CEO이며, 프로젝트의 수석 관리자는 팀 노이켄스(Tim Neukens)이다.

개발 역사

Next.js는 2016년 10월 25일 GitHub에 오픈소스 프로젝트로 처음 공개되었으며, Next.js는 처음에 6가지 원칙에 따라 개발되었다. 즉, 설정이 필요 없는 즉시 사용 가능한 기능, 모든 곳에 자바스크립트 배치, 모든 기능을 자바스크립트로 작성, 자동 코드 분할 및 서버 렌더링, 설정 가능한 데이터 수집, 요청 선점, 배포 간소화 등이다.

Next.js 2.0은 2017년 3월에 발표되었으며, 소규모 웹 사이트 작업을 용이하게 하는 몇 가지 개선 사항이 추가되었다. 또한, 빌드 효율성이 향상되었고, 핫 모듈 교체 기능의 확장성이 개선되었다.

2018년 9월에 출시된 버전 7.0에서는 오류 처리가 개선되고, React의 컨텍스트 API를 지원하면서 동적 루트 처리가 개선됐다. 이는 웹팩 4로 업그레이드한 첫 번째 버전이기도 하다.

8.0 버전은 2019년 2월에 출시됐으며, 코드가 온디맨드 방식으로 실행되는 람다 함수로 분할된 애플리케이션의 서버리스 배포를 제공하는 첫 번째 버전이었다. 이 버전에서는 정적 내보내기에 필요한 시간과 리소스를 줄이고, 프리페치 성능도 개선했다.

2020년 3월에 발표된 버전 9.3은 다양한 최적화와 글로벌 Sass 및 CSS 모듈 지원이 포함됐다.

2020년 7월 27일 Next.js 버전 9.5가 발표되어 증분 정적 재생성, 재작성, 리디렉션 지원 등 새로운 기능을 추가했다.

2021년 6월 15일, Next.js 버전 11이 출시되어 Webpack 5 지원, 실시간 공동 코딩 기능 'Next.js Live' 미리보기, Create React App에서 Next.js 호환 형식으로의 자동 변환 기능 'Create React App'이 추가됐다. 자동 변환 기능 'Create React App Migration'의 실험적 도입 등이 있다.

2021년 10월 26일, Rust 컴파일러 추가, 컴파일 속도 향상, AVIF 지원, 에지 함수 및 미들웨어, 네이티브 ESM 및 URL 임포트가 추가된 Next.js 12가 출시됐다.

2022년 10월 26일, 베르셀은 Next.js 13을 출시했다. 이번 메이저 릴리스에서는 베타 버전에서 새로운 라우팅 패턴이 도입되었고, 레이아웃, React Server Components, 스트리밍, 새로운 데이터 수집 메소드 세트를 지원하는 App Router가 추가되었다. 또한 버셀은 웹팩의 후속 버전인 터보팩(Turbopack), 증분 빌드 시스템인 터보레포(Turborepo)를 포함한 터보(Turbo)라는 프론트엔드 개발을 위한 새로운 툴체인을 발표했다.

2023년 5월, 베르셀은 Next.js 13.4를 발표했다. 이를 통해 App Router의 안정 버전을 제공했고, 개발자들은 프로덕션 환경에서 App Router를 사용할 수 있게 됐다.

2023년 10월, 베르셀은 Next.js 14를 출시했다. 이는 엣지 런타임을 이용한 메모리 관리를 개선한 것이다.

관련 포스트
post image
머신 코드
컴퓨터 프로그래밍에서 기계어 명령어로 구성된 컴퓨터 코드를 말하며, 컴퓨터의 중앙처리장치(CPU)를 제어하는 데 사용된다. 과거에는 10진법 컴퓨터가 일반적이었지만, 현대 시장에서는 2진법 컴퓨터가 주류다. 이러한 컴퓨터에서 기계 코드는 '컴퓨터가 실제로 읽고 해석하
Computer Science·12월 26일·22 min read
post image
책 디자인 패턴 후기
디자인 패턴: Elements of Reusable Object-Oriented Software(디자인 패턴: 재사용 가능한 객체지향 소프트웨어의 요소)(1994)는 소프트웨어 디자인 패턴을 설명한 소프트웨어 공학 서적이다. 에리히 감마, 리처드 헬름, 랄프 존슨,
Computer Science·12월 16일·16 min read
post image
브라우저 엔진, blink
블링크는 크롬 프로젝트의 일환으로 개발된 브라우저 엔진으로 애플, 구글, 메타, 마이크로소프트, 오페라 소프트웨어, 비발디 테크놀로지스, 어도비, 인텔, IBM, 삼성 등이 참여하고 있으며, 2013년 4월에 처음 발표되었다. 되었다. # 네이밍 블링크의 네이밍은
Computer Science·9월 14일·13 min read
post image
웹프레임워크란?
웹 프레임워크(WF) 또는 웹 애플리케이션 프레임워크(WAF)는 웹 서비스, 웹 리소스, 웹 API를 포함한 웹 애플리케이션 개발을 지원하도록 설계된 소프트웨어 프레임워크이다. 웹 프레임워크는 월드와이드웹에서 웹 애플리케이션을 구축하고 배포하기 위한 표준적인 방법을
Computer Science·7월 24일·11 min read
post image
알고리즘의 정의
수학 및 컴퓨터 과학에서 알고리즘은 일반적으로 특정 문제 클래스를 해결하거나 계산을 수행하는 데 사용되는 엄격한 명령의 유한한 시퀀스이다. 알고리즘은 계산이나 데이터 처리를 수행하기 위한 사양으로 사용된다. 고급 알고리즘은 조건식을 사용하여 코드 실행을 다양한 경로(
Computer Science·7월 4일·29 min read
post image
운영체제 톺아보기
운영체제(OS)는 컴퓨터의 하드웨어 및 소프트웨어 자원을 관리하고 컴퓨터 프로그램에 공통된 서비스를 제공하는 시스템 소프트웨어이다. 시간 공유 운영 체제는 시스템을 효율적으로 사용하기 위해 작업을 예약하고 프로세서 시간, 대용량 저장 장치, 주변 장치 및 기타 자원
Computer Science·5월 21일·17 min read
post image
백그라운드-프로세스에-대해-알아보기
백그라운드 프로세스는 사용자의 개입 없이 무대 뒤에서(즉, 백그라운드에서) 실행되는 컴퓨터 프로세스를 말한다. 이러한 프로세스의 일반적인 작업에는 로깅, 시스템 모니터링, 스케줄링, , 사용자 알림 등이 있다. Windows 시스템에서 백그라운드 프로세스는 사용자
Computer Science·3월 1일·15 min read
post image
프로세스란?
컴퓨팅에서 프로세스는 하나 이상의 스레드에 의해 실행되는 컴퓨터 프로그램의 인스턴스이다. 다양한 프로세스 모델이 존재하며, 일부는 경량화되어 있지만, 거의 모든 프로세스(전체 가상 머신 포함)는 프로그램 코드, 할당된 시스템 자원, 물리적 및 논리적 액세스 권한, 실
Computer Science·2월 16일·26 min read