Edge Runtime과 Node.js Runtime의 차이를 설명해주세요.
답변 포인트
실행 위치와 사용 가능한 API를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
Edge Runtime은 지연 시간이 낮고 Web API 중심의 제한된 환경이며, Node.js Runtime은 Node API와 네이티브 패키지를 사용할 수 있어 복잡한 서버 로직에 적합합니다. 실무 예시: Next.js에서는 같은 페이지라도 데이터 최신성, 사용자별 여부, 상호작용 필요성에 따라 렌더링 전략이 달라집니다.
Edge Runtime은 사용자와 가까운 edge location에서 빠르게 실행되는 경량 런타임이고, Node.js Runtime은 일반 서버 환경에서 Node API와 풍부한 패키지를 사용할 수 있는 런타임입니다.
Edge Runtime
장점은 낮은 지연과 전 세계 분산 실행입니다. Middleware, 간단한 인증 체크, rewrite, 캐시 판단에 적합합니다. Web API 기반이며 Node.js의 fs, net, 일부 crypto 기능이나 native module을 사용할 수 없습니다.
Node.js Runtime
DB 드라이버, 파일 시스템, 서버 SDK, 복잡한 암호화, 긴 작업에 적합합니다. 대신 edge보다 사용자와 물리적으로 멀 수 있고 cold start/서버 위치의 영향을 받을 수 있습니다.
export const runtime = 'nodejs';
// 또는
export const runtime = 'edge';선택 기준
| 작업 | 권장 런타임 |
|---|---|
| locale rewrite, 간단 auth gate | Edge |
| Prisma 등 DB 직접 접근 | Node.js |
| 외부 API로 짧은 fetch | Edge 가능 |
| 파일 처리, 긴 batch | Node.js |
주의점
Edge에서 DB에 직접 연결하면 커넥션 폭증과 드라이버 호환성 문제가 생길 수 있습니다. 이 경우 HTTP 기반 데이터 API나 Node 서버를 경유하는 설계를 고려합니다.
면접 답변 포인트
Edge는 빠르고 분산되어 있지만 제약이 많고, Node.js는 기능이 풍부하지만 위치와 서버 비용을 고려해야 합니다. 실행할 코드의 API 요구사항과 latency 요구에 따라 선택한다고 답하면 됩니다.