콘텐츠로 이동

API 레퍼런스: Edge Runtime

출처 URL: https://nextjs.org/docs/app/api-reference/edge

App RouterAPI ReferenceEdge Runtime

최종 업데이트 2026년 2월 20일

Next.js 애플리케이션에서는 두 가지 서버 런타임을 사용할 수 있습니다:

  • 모든 Node.js API에 접근할 수 있고 애플리케이션 렌더링에 사용되는 Node.js 런타임(기본값)
  • 더 제한적인 API 집합을 포함하며 Proxy에서 사용되는 Edge Runtime
  • Edge Runtime은 모든 Node.js API를 지원하지 않으므로 일부 패키지가 예상대로 작동하지 않을 수 있습니다.
  • Edge Runtime은 Incremental Static Regeneration(ISR)을 지원하지 않습니다.
  • 두 런타임 모두 배포 어댑터에 따라 스트리밍을 지원할 수 있습니다.

Edge Runtime이 지원하는 API는 다음과 같습니다.

API설명
BlobBlob을 나타냅니다
fetch리소스를 가져옵니다
FetchEventfetch 이벤트를 나타냅니다
File파일을 나타냅니다
FormData폼 데이터를 나타냅니다
HeadersHTTP 헤더를 나타냅니다
RequestHTTP 요청을 나타냅니다
ResponseHTTP 응답을 나타냅니다
URLSearchParamsURL 쿼리 매개변수를 나타냅니다
WebSocket웹소켓 연결을 나타냅니다
API설명
atobbase-64로 인코딩된 문자열을 디코딩합니다
btoa문자열을 base-64로 인코딩합니다
TextDecoderUint8Array를 문자열로 디코딩합니다
TextDecoderStream스트림에 체이닝되는 디코더입니다
TextEncoder문자열을 Uint8Array로 인코딩합니다
TextEncoderStream스트림에 체이닝되는 인코더입니다
API설명
ReadableStream읽기 가능한 스트림을 나타냅니다
ReadableStreamBYOBReaderReadableStream의 리더를 나타냅니다
ReadableStreamDefaultReaderReadableStream의 리더를 나타냅니다
TransformStream변환 스트림을 나타냅니다
WritableStream쓰기 가능한 스트림을 나타냅니다
WritableStreamDefaultWriterWritableStream의 라이터를 나타냅니다
API설명
crypto플랫폼의 암호화 기능에 접근합니다
CryptoKey암호화 키를 나타냅니다
SubtleCrypto해시, 서명, 암호화, 복호화와 같은 일반적인 암호화 기본 요소에 접근합니다
API설명
AbortController원하는 시점에 하나 이상의 DOM 요청을 중단할 수 있습니다
Array값의 배열을 나타냅니다
ArrayBuffer일반적인 고정 길이 원시 바이너리 데이터 버퍼를 나타냅니다
Atomics원자적 연산을 정적 메서드로 제공합니다
BigInt임의 정밀도의 정수를 나타냅니다
BigInt64Array64비트 부호 있는 정수의 타입 배열을 나타냅니다
BigUint64Array64비트 부호 없는 정수의 타입 배열을 나타냅니다
Boolean논리적 개체를 나타내며 true, false 두 값만 가질 수 있습니다
clearInterval이전에 setInterval() 호출로 설정된 반복 동작을 취소합니다
clearTimeout이전에 setTimeout() 호출로 설정된 반복 동작을 취소합니다
console브라우저 디버깅 콘솔에 접근합니다
DataViewArrayBuffer의 일반적인 뷰를 나타냅니다
Date플랫폼에 독립적인 형식으로 특정 시점을 나타냅니다
decodeURIencodeURI 또는 유사 루틴으로 생성된 URI를 디코딩합니다
decodeURIComponentencodeURIComponent 또는 유사 루틴으로 생성된 URI 구성 요소를 디코딩합니다
DOMExceptionDOM에서 발생하는 오류를 나타냅니다
encodeURI특정 문자를 UTF-8 인코딩 이스케이프 시퀀스로 대체해 URI를 인코딩합니다
encodeURIComponent특정 문자를 UTF-8 인코딩 이스케이프 시퀀스로 대체해 URI 구성 요소를 인코딩합니다
Error문 실행 또는 속성 접근 시 발생하는 오류를 나타냅니다
EvalError전역 함수 eval() 관련 오류를 나타냅니다
Float32Array32비트 부동소수점 수의 타입 배열을 나타냅니다
Float64Array64비트 부동소수점 수의 타입 배열을 나타냅니다
Function함수를 나타냅니다
Infinity수학적 무한대를 나타냅니다
Int8Array8비트 부호 있는 정수의 타입 배열을 나타냅니다
Int16Array16비트 부호 있는 정수의 타입 배열을 나타냅니다
Int32Array32비트 부호 있는 정수의 타입 배열을 나타냅니다
Intl국제화 및 현지화 기능에 접근합니다
isFinite값이 유한한 숫자인지 판별합니다
isNaN값이 NaN인지 여부를 판별합니다
JSONJavaScript 값을 JSON 형식으로 변환하거나 JSON을 JavaScript 값으로 변환하는 기능을 제공합니다
Map각 값이 한 번만 나타날 수 있는 값 모음을 나타냅니다
Math수학 함수와 상수에 접근합니다
Number숫자 값을 나타냅니다
Object모든 JavaScript 객체의 기반이 되는 객체를 나타냅니다
parseFloat문자열 인수를 파싱해 부동소수점 숫자를 반환합니다
parseInt문자열 인수를 파싱해 지정된 기수의 정수를 반환합니다
Promise비동기 작업의 최종 완료(또는 실패)와 그 결과 값을 나타냅니다
Proxy속성 조회, 할당, 열거, 함수 호출 등 기본 연산에 대한 커스텀 동작을 정의하는 객체를 나타냅니다
queueMicrotask실행할 마이크로태스크를 큐에 추가합니다
RangeError값이 허용 범위에 없을 때 발생하는 오류를 나타냅니다
ReferenceError존재하지 않는 변수를 참조할 때 발생하는 오류를 나타냅니다
Reflect가로챌 수 있는 JavaScript 연산을 위한 메서드를 제공합니다
RegExp문자 조합을 매칭할 수 있도록 정규식을 나타냅니다

Set|값들의 모음으로, 각 값은 한 번만 나타날 수 있습니다 setInterval|각 호출 사이에 고정된 지연 시간을 두고 함수를 반복 호출합니다 setTimeout|지정된 밀리초 후에 함수를 호출하거나 표현식을 평가합니다 SharedArrayBuffer|일반적인 고정 길이의 원시 이진 데이터 버퍼를 나타냅니다 String|문자 시퀀스를 나타냅니다 structuredClone|값의 깊은 복사본을 생성합니다 Symbol|객체 속성 키로 사용되는 고유하고 변경 불가능한 데이터 타입을 나타냅니다 SyntaxError|구문적으로 잘못된 코드를 해석하려고 할 때 발생하는 오류를 나타냅니다 TypeError|값이 예상된 타입이 아닐 때 발생하는 오류를 나타냅니다 Uint8Array|8비트 부호 없는 정수로 구성된 타입 배열을 나타냅니다 Uint8ClampedArray|0-255 범위로 클램프된 8비트 부호 없는 정수 타입 배열을 나타냅니다 Uint32Array|32비트 부호 없는 정수 타입 배열을 나타냅니다 URIError|전역 URI 처리 함수를 잘못 사용했을 때 발생하는 오류를 나타냅니다 URL|객체 URL을 만드는 데 사용되는 정적 메서드를 제공하는 객체를 나타냅니다 URLPattern|URL 패턴을 나타냅니다 URLSearchParams|키/값 쌍의 컬렉션을 나타냅니다 WeakMap|키가 약하게 참조되는 키/값 쌍 컬렉션을 나타냅니다 WeakSet|각 객체가 한 번만 나타날 수 있는 객체 컬렉션을 나타냅니다 WebAssembly|WebAssembly에 대한 액세스를 제공합니다

next devnext build 모두에서 Environment Variables에 접근하려면 process.env를 사용할 수 있습니다.

Edge Runtime에는 다음과 같은 제한이 있습니다:

  • 기본 Node.js API는 지원되지 않습니다. 예를 들어, 파일 시스템을 읽거나 쓸 수 없습니다.
  • node_modules는 ES Modules를 구현하고 기본 Node.js API를 사용하지 않는 한 사용할 수 있습니다.
  • require를 직접 호출하는 것은 허용되지 않습니다. 대신 ES Modules를 사용하세요.

다음 JavaScript 언어 기능은 비활성화되어 작동하지 않습니다:

APIDescription
eval문자열로 표현된 JavaScript 코드를 평가합니다
new Function(evalString)인수로 제공된 코드로 새 함수를 생성합니다
WebAssembly.compile버퍼 소스에서 WebAssembly 모듈을 컴파일합니다
WebAssembly.instantiate버퍼 소스에서 WebAssembly 모듈을 컴파일하고 인스턴스화합니다

드물게, 코드가 런타임에 도달할 수 없고 트리 셰이킹으로 제거할 수 없는 동적 코드 평가 문을 포함(또는 가져오기)할 수 있습니다. Proxy 구성으로 특정 파일을 허용하도록 검사를 완화할 수 있습니다:

proxy.ts

export const config = {
unstable_allowDynamic: [
// allows a single file
'/lib/utilities.js',
// use a glob to allow anything in the function-bind 3rd party module
'**/node_modules/function-bind/**',
],
}

unstable_allowDynamic은 특정 파일에 대해 동적 코드 평가를 무시하는 glob이거나 glob 배열입니다. glob는 애플리케이션 루트 폴더를 기준으로 합니다.

이 문이 Edge에서 실행되면 런타임 오류를 발생 시키고 중단된다는 점에 유의하세요.

보내기