Published On

Next.js runtime


Next.js에서 runtime은 애플리케이션이 실행되는 환경을 의미합니다.

Next.js 12 이상부터는 다양한 런타임 환경을 지원하며, 주로 Node.jsEdge 런타임이 사용됩니다.

이러한 런타임 옵션은 애플리케이션의 특정 부분이 어디서 실행될지를 결정하는 데 사용됩니다. 아래에서는 Node.js와 Edge 런타임의 차이점을 비교합니다.

구분Node.js 런타임Edge 런타임
정의서버 사이드에서 JavaScript 코드를 실행하기 위한 환경CDN(Contents Delivery Network)의 Edge 서버에서 코드를 실행하기 위한 환경
실행 환경일반적으로 단일 서버 또는 서버 그룹전 세계에 분산된 네트워크 상의 가장 가까운 지리적 위치의 서버
주 사용 사례데이터베이스 접근, 복잡한 서버 사이드 로직 처리정적 파일 제공, 캐시된 데이터 불러오기, 사용자 요청에 빠르게 반응 필요한 작업
장점완전한 Node.js API 지원, 서버 사이드 기능 구현 용이낮은 지연 시간(Latency), 글로벌 분산 네트워크를 통한 빠른 콘텐츠 전송
단점지연 시간(Latency)이 상대적으로 높을 수 있음, 확장성 제한Node.js의 일부 기능 제한, Edge 환경에서 작동하는 특정 API만 사용 가능

Node.js 런타임

  • 전통적인 서버 사이드 JavaScript 실행 환경입니다.
  • 데이터베이스와의 상호작용, 파일 시스템 접근, 서버 사이드 로직 실행 등 복잡한 백엔드 작업에 적합합니다.
  • 일반적으로 하나의 서버 또는 서버 클러스터에서 실행됩니다.

Edge 런타임

  • Vercel과 같은 플랫폼에서 제공하는, 전 세계에 분산된 Edge 서버에서 코드를 실행합니다.
  • 사용자에게 더 가까운 위치에서 코드를 실행하여, 지연 시간을 줄이고 콘텐츠 전달 속도를 향상시킵니다.
  • 주로 정적 콘텐츠 제공, 캐싱, 요청에 따른 빠른 응답 생성 등에 사용됩니다.