- Published On
Next.js runtime
Next.js에서 runtime은 애플리케이션이 실행되는 환경을 의미합니다.
Next.js 12 이상부터는 다양한 런타임 환경을 지원하며, 주로 Node.js와 Edge 런타임이 사용됩니다.
이러한 런타임 옵션은 애플리케이션의 특정 부분이 어디서 실행될지를 결정하는 데 사용됩니다. 아래에서는 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 서버에서 코드를 실행합니다.
- 사용자에게 더 가까운 위치에서 코드를 실행하여, 지연 시간을 줄이고 콘텐츠 전달 속도를 향상시킵니다.
- 주로 정적 콘텐츠 제공, 캐싱, 요청에 따른 빠른 응답 생성 등에 사용됩니다.
연관된 포스트 구경가기
1. Next.js 란?2. Next.js - middleware3. Next.js - route handler4. Next.js Pages Router5. Next.js(pages-router) - data fetching6. Next.js - dynamic import7. Next.js에서 Head 컴포넌트 사용 방법8. Next.js의 폴더 구조 분석9. Next.js에서 메타데이터 다루기10. Next.js(app-router) - data fetching11. Next.js runtime12. Next.js 패러렐 라우트, 인터셉팅 라우트13. Next.js에서 Font를 설정하는 방법14. Next.js - Server Actions15. Next.js Image 컴포넌트16. Next.js 빌드 과정과 Webpack, Babel17. Next.js Configuration: next.config.mjs18. Next.js 커스텀 서버19. Next.js의 렌더링 과정
간략히