Skip to content

더 이상 사용되지 않는 API

Node.js API는 다음과 같은 이유로 더 이상 사용되지 않을 수 있습니다.

  • API 사용이 안전하지 않습니다.
  • 개선된 대체 API가 있습니다.
  • 향후 주요 릴리스에서 API에 대한 주요 변경 사항이 예상됩니다.

Node.js는 네 가지 종류의 더 이상 사용되지 않는 기능을 사용합니다.

  • 문서 전용
  • 애플리케이션(node_modules 코드 제외)
  • 런타임(모든 코드)
  • 사용 중단

문서 전용으로 더 이상 사용되지 않는 기능은 Node.js API 문서 내에서만 표현됩니다. 이러한 기능은 Node.js를 실행하는 동안 부작용을 생성하지 않습니다. 일부 문서 전용으로 더 이상 사용되지 않는 기능은 --pending-deprecation 플래그(또는 대체 환경 변수인 NODE_PENDING_DEPRECATION=1)를 사용하여 실행될 때 아래의 런타임으로 더 이상 사용되지 않는 기능과 마찬가지로 런타임 경고를 트리거합니다. 해당 플래그를 지원하는 문서 전용으로 더 이상 사용되지 않는 기능은 더 이상 사용되지 않는 API 목록에 명시적으로 표시됩니다.

node_modules 코드가 아닌 코드에서 더 이상 사용되지 않는 애플리케이션 API는 기본적으로 더 이상 사용되지 않는 API가 node_modules에서 로드되지 않은 코드에서 처음 사용될 때 stderr에 출력되는 프로세스 경고를 생성합니다. --throw-deprecation 명령줄 플래그를 사용하면 런타임으로 더 이상 사용되지 않는 기능으로 인해 오류가 발생합니다. --pending-deprecation을 사용하면 node_modules에서 로드된 코드에 대한 경고도 방출됩니다.

모든 코드에 대한 런타임으로 더 이상 사용되지 않는 기능은 node_modules 코드가 아닌 코드에 대한 런타임으로 더 이상 사용되지 않는 기능과 유사하지만 node_modules에서 로드된 코드에 대한 경고도 방출한다는 점이 다릅니다.

사용 중단은 Node.js에서 기능이 제거되었거나 곧 제거될 때 사용됩니다.

더 이상 사용되지 않는 기능 취소

때때로 API의 더 이상 사용되지 않는 기능이 취소될 수 있습니다. 이러한 경우 이 문서는 해당 결정과 관련된 정보로 업데이트됩니다. 그러나 더 이상 사용되지 않는 기능 식별자는 수정되지 않습니다.

더 이상 사용되지 않는 API 목록

DEP0001: http.OutgoingMessage.prototype.flush

[이력]

버전변경 사항
v14.0.0사용 중단
v6.12.0, v4.8.6더 이상 사용되지 않는 코드가 할당되었습니다.
v1.6.0런타임으로 더 이상 사용되지 않음

유형: 사용 중단

OutgoingMessage.prototype.flush()는 제거되었습니다. 대신 OutgoingMessage.prototype.flushHeaders()를 사용하십시오.

[History]

버전변경 사항
v8.0.0지원 종료.
v6.12.0사용 중지 코드 할당.
v5.0.0런타임 사용 중지.

유형: 지원 종료

_linklist 모듈은 더 이상 사용되지 않습니다. 사용자 영역의 대안을 사용하십시오.

DEP0003: _writableState.buffer

[History]

버전변경 사항
v14.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드 할당.
v0.11.15런타임 사용 중지.

유형: 지원 종료

_writableState.buffer는 제거되었습니다. 대신 _writableState.getBuffer()를 사용하십시오.

DEP0004: CryptoStream.prototype.readyState

[History]

버전변경 사항
v10.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드 할당.
v0.4.0문서에서만 사용 중지.

유형: 지원 종료

CryptoStream.prototype.readyState 속성이 제거되었습니다.

DEP0005: Buffer() 생성자

[History]

버전변경 사항
v10.0.0런타임 사용 중지.
v6.12.0사용 중지 코드 할당.
v6.0.0문서에서만 사용 중지.

유형: 애플리케이션 (node_modules 코드 제외)

Buffer() 함수와 new Buffer() 생성자는 API 사용성 문제로 인해 우발적인 보안 문제로 이어질 수 있으므로 더 이상 사용되지 않습니다.

대안으로 다음 중 하나의 Buffer 객체 생성 방법을 사용하십시오.

--pending-deprecation 없이 런타임 경고는 node_modules에 없는 코드에 대해서만 발생합니다. 즉, 종속성에서 Buffer() 사용에 대한 사용 중지 경고는 발생하지 않습니다. --pending-deprecation을 사용하면 Buffer() 사용 위치에 관계없이 런타임 경고가 발생합니다.

DEP0006: child_process options.customFds

[History]

버전변경 사항
v12.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v0.11.14런타임 사용 중지.
v0.5.10문서에서만 사용 중지.

Type: 지원 종료

child_process 모듈의 spawn(), fork(), 및 exec() 메서드 내에서 options.customFds 옵션은 더 이상 사용되지 않습니다. 대신 options.stdio 옵션을 사용해야 합니다.

DEP0007: cluster worker.suicideworker.exitedAfterDisconnect로 대체

[History]

버전변경 사항
v9.0.0지원 종료.
v7.0.0런타임 사용 중지.
v6.12.0사용 중지 코드가 할당되었습니다.
v6.0.0문서에서만 사용 중지.

Type: 지원 종료

이전 버전의 Node.js cluster에서는 Worker 객체에 suicide라는 이름의 부울 속성이 추가되었습니다. 이 속성의 의도는 Worker 인스턴스가 종료된 방법과 이유를 나타내는 것이었습니다. Node.js 6.0.0에서 이전 속성은 사용 중지되었고 새로운 worker.exitedAfterDisconnect 속성으로 대체되었습니다. 이전 속성 이름은 실제 의미를 정확하게 설명하지 않았고 불필요하게 감정적인 어투였습니다.

DEP0008: require('node:constants')

[History]

버전변경 사항
v6.12.0사용 중지 코드가 할당되었습니다.
v6.3.0문서에서만 사용 중지.

Type: 문서에서만 사용 중지

node:constants 모듈은 더 이상 사용되지 않습니다. 특정 Node.js 내장 모듈과 관련된 상수에 대한 액세스를 필요로 할 때 개발자는 해당 모듈에서 노출하는 constants 속성을 참조해야 합니다. 예를 들어, require('node:fs').constantsrequire('node:os').constants입니다.

DEP0009: 다이제스트 없이 crypto.pbkdf2 사용

[History]

버전변경 사항
v14.0.0지원 종료(digest === null의 경우).
v11.0.0런타임 사용 중지(digest === null의 경우).
v8.0.0지원 종료(digest === undefined의 경우).
v6.12.0사용 중지 코드가 할당되었습니다.
v6.0.0런타임 사용 중지(digest === undefined의 경우).

Type: 지원 종료

다이제스트를 지정하지 않고 crypto.pbkdf2() API를 사용하는 것은 Node.js 6.0에서 사용 중지되었습니다. 이는 메서드가 권장되지 않는 'SHA1' 다이제스트를 사용하는 기본값을 사용했기 때문입니다. 이전에는 사용 중지 경고가 표시되었습니다. Node.js 8.0.0부터 digestundefined로 설정하여 crypto.pbkdf2() 또는 crypto.pbkdf2Sync()를 호출하면 TypeError가 발생합니다.

Node.js v11.0.0부터 digestnull로 설정하여 이러한 함수를 호출하면 digestundefined일 때의 동작과 일치하도록 사용 중지 경고가 표시됩니다.

그러나 이제 undefined 또는 null을 전달하면 TypeError가 발생합니다.

DEP0010: crypto.createCredentials

[내역]

버전변경 사항
v11.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드 할당.
v0.11.13런타임 사용 중지.

유형: 지원 종료

crypto.createCredentials() API는 제거되었습니다. tls.createSecureContext()를 대신 사용하십시오.

DEP0011: crypto.Credentials

[내역]

버전변경 사항
v11.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드 할당.
v0.11.13런타임 사용 중지.

유형: 지원 종료

crypto.Credentials 클래스는 제거되었습니다. tls.SecureContext를 대신 사용하십시오.

DEP0012: Domain.dispose

[내역]

버전변경 사항
v9.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드 할당.
v0.11.7런타임 사용 중지.

유형: 지원 종료

Domain.dispose()는 제거되었습니다. 대신 도메인에 설정된 오류 이벤트 처리기를 통해 실패한 I/O 작업에서 명시적으로 복구하십시오.

DEP0013: 콜백 없이 비동기적으로 호출되는 fs 함수

[내역]

버전변경 사항
v10.0.0지원 종료.
v7.0.0런타임 사용 중지.

유형: 지원 종료

Node.js 10.0.0 이상에서는 콜백 없이 비동기 함수를 호출하면 TypeError가 발생합니다. https://github.com/nodejs/node/pull/12562를 참조하십시오.

DEP0014: fs.read 레거시 문자열 인터페이스

[내역]

버전변경 사항
v8.0.0지원 종료.
v6.0.0런타임 사용 중지.
v6.12.0, v4.8.6사용 중지 코드 할당.
v0.1.96문서화만 사용 중지.

유형: 지원 종료

fs.read() 레거시 String 인터페이스는 사용되지 않습니다. 대신 문서에 언급된 Buffer API를 사용하십시오.

DEP0015: fs.readSync 레거시 문자열 인터페이스

[내역]

버전변경 사항
v8.0.0지원 종료.
v6.0.0런타임 사용 중지.
v6.12.0, v4.8.6사용 중지 코드 할당.
v0.1.96문서화만 사용 중지.

유형: 지원 종료

fs.readSync() 레거시 String 인터페이스는 사용되지 않습니다. 대신 문서에 언급된 Buffer API를 사용하십시오.

DEP0016: GLOBAL/root

[History]

버전변경 사항
v14.0.0지원 종료.
v6.12.0사용 중지 코드가 할당되었습니다.
v6.0.0런타임 사용 중지.

유형: 지원 종료

global 속성에 대한 GLOBALroot 별칭은 Node.js 6.0.0에서 사용 중지되었으며, 이후 제거되었습니다.

DEP0017: Intl.v8BreakIterator

[History]

버전변경 사항
v9.0.0지원 종료.
v7.0.0런타임 사용 중지.

유형: 지원 종료

Intl.v8BreakIterator는 비표준 확장이었으며 제거되었습니다. Intl.Segmenter를 참조하십시오.

DEP0018: 처리되지 않은 Promise 거부

[History]

버전변경 사항
v15.0.0지원 종료.
v7.0.0런타임 사용 중지.

유형: 지원 종료

처리되지 않은 Promise 거부는 사용 중지되었습니다. 기본적으로 처리되지 않은 Promise 거부는 0이 아닌 종료 코드와 함께 Node.js 프로세스를 종료합니다. Node.js가 처리되지 않은 거부를 처리하는 방식을 변경하려면 --unhandled-rejections 명령줄 옵션을 사용하십시오.

DEP0019: 디렉터리 외부에서 확인된 require('.')

[History]

버전변경 사항
v12.0.0기능 제거.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v1.8.1런타임 사용 중지.

유형: 지원 종료

특정 경우 require('.')는 패키지 디렉터리 외부에서 확인될 수 있었습니다. 이 동작은 제거되었습니다.

DEP0020: Server.connections

[History]

버전변경 사항
v15.0.0Server.connections가 제거되었습니다.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v0.9.7런타임 사용 중지.

유형: 지원 종료

Server.connections 속성은 Node.js v0.9.7에서 사용 중지되었으며 제거되었습니다. 대신 Server.getConnections() 메서드를 사용하십시오.

DEP0021: Server.listenFD

[History]

버전변경 사항
v12.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v0.7.12런타임 사용 중지.

유형: 지원 종료

Server.listenFD() 메서드는 사용 중지되고 제거되었습니다. 대신 Server.listen({fd: \<number\>})을 사용하십시오.

DEP0022: os.tmpDir()

[History]

버전변경 사항
v14.0.0지원 종료.
v7.0.0런타임 사용 중단.

유형: 지원 종료

os.tmpDir() API는 Node.js 7.0.0에서 사용 중단되었으며, 이후 제거되었습니다. os.tmpdir()를 대신 사용하십시오.

DEP0023: os.getNetworkInterfaces()

[History]

버전변경 사항
v12.0.0지원 종료.
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.6.0런타임 사용 중단.

유형: 지원 종료

os.getNetworkInterfaces() 메서드는 사용 중단되었습니다. os.networkInterfaces() 메서드를 대신 사용하십시오.

DEP0024: REPLServer.prototype.convertToContext()

[History]

버전변경 사항
v9.0.0지원 종료.
v7.0.0런타임 사용 중단.

유형: 지원 종료

REPLServer.prototype.convertToContext() API는 제거되었습니다.

DEP0025: require('node:sys')

[History]

버전변경 사항
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v1.0.0런타임 사용 중단.

유형: 런타임

node:sys 모듈은 사용 중단되었습니다. util 모듈을 대신 사용하십시오.

DEP0026: util.print()

[History]

버전변경 사항
v12.0.0지원 종료.
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.11.3런타임 사용 중단.

유형: 지원 종료

util.print()는 제거되었습니다. console.log()를 대신 사용하십시오.

DEP0027: util.puts()

[History]

버전변경 사항
v12.0.0지원 종료.
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.11.3런타임 사용 중단.

유형: 지원 종료

util.puts()는 제거되었습니다. console.log()를 대신 사용하십시오.

DEP0028: util.debug()

[History]

버전변경 사항
v12.0.0지원 종료.
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.11.3런타임 사용 중단.

유형: 지원 종료

util.debug()는 제거되었습니다. console.error()를 대신 사용하십시오.

DEP0029: util.error()

[History]

버전변경 사항
v12.0.0지원 종료.
v6.12.0, v4.8.6사용 중단 코드 할당.
v0.11.3런타임 사용 중단.

유형: 지원 종료

util.error()는 제거되었습니다. console.error()를 대신 사용하십시오.

DEP0030: SlowBuffer

[History]

버전변경 사항
v6.12.0사용 중단 코드 할당.
v6.0.0문서상으로만 사용 중단.

유형: 문서상으로만 사용 중단

SlowBuffer 클래스는 사용되지 않습니다. Buffer.allocUnsafeSlow(size)를 대신 사용하십시오.

DEP0031: ecdh.setPublicKey()

[History]

버전변경 사항
v6.12.0사용 중단 코드 할당.
v5.2.0문서상으로만 사용 중단.

유형: 문서상으로만 사용 중단

ecdh.setPublicKey() 메서드는 API에 포함하는 것이 유용하지 않으므로 더 이상 사용되지 않습니다.

DEP0032: node:domain 모듈

[History]

버전변경 사항
v6.12.0, v4.8.6사용 중단 코드 할당.
v1.4.2문서상으로만 사용 중단.

유형: 문서상으로만 사용 중단

domain 모듈은 더 이상 사용되지 않으므로 사용하지 마십시오.

DEP0033: EventEmitter.listenerCount()

[History]

버전변경 사항
v6.12.0, v4.8.6사용 중단 코드 할당.
v3.2.0문서상으로만 사용 중단.

유형: 문서상으로만 사용 중단

events.listenerCount(emitter, eventName) API는 더 이상 사용되지 않습니다. emitter.listenerCount(eventName)를 대신 사용하십시오.

DEP0034: fs.exists(path, callback)

[History]

버전변경 사항
v6.12.0, v4.8.6사용 중단 코드 할당.
v1.0.0문서상으로만 사용 중단.

유형: 문서상으로만 사용 중단

fs.exists(path, callback) API는 더 이상 사용되지 않습니다. fs.stat() 또는 fs.access()를 대신 사용하십시오.

DEP0035: fs.lchmod(path, mode, callback)

[History]

버전변경 사항
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.4.7문서화만 사용 중단.

유형: 문서화만

fs.lchmod(path, mode, callback) API는 더 이상 사용되지 않습니다.

DEP0036: fs.lchmodSync(path, mode)

[History]

버전변경 사항
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.4.7문서화만 사용 중단.

유형: 문서화만

fs.lchmodSync(path, mode) API는 더 이상 사용되지 않습니다.

DEP0037: fs.lchown(path, uid, gid, callback)

[History]

버전변경 사항
v10.6.0사용 중단 취소.
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.4.7문서화만 사용 중단.

유형: 사용 중단 취소

fs.lchown(path, uid, gid, callback) API는 사용 중단되었으나, libuv에 필요한 지원 API가 추가됨에 따라 사용 중단이 취소되었습니다.

DEP0038: fs.lchownSync(path, uid, gid)

[History]

버전변경 사항
v10.6.0사용 중단 취소.
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.4.7문서화만 사용 중단.

유형: 사용 중단 취소

fs.lchownSync(path, uid, gid) API는 사용 중단되었으나, libuv에 필요한 지원 API가 추가됨에 따라 사용 중단이 취소되었습니다.

DEP0039: require.extensions

[History]

버전변경 사항
v6.12.0, v4.8.6사용 중단 코드가 할당되었습니다.
v0.10.6문서화만 사용 중단.

유형: 문서화만

require.extensions 속성은 더 이상 사용되지 않습니다.

DEP0040: node:punycode 모듈

[History]

버전변경 사항
v21.0.0런타임 사용 중단.
v16.6.0--pending-deprecation 지원 추가.
v7.0.0문서화만 사용 중단.

유형: 런타임

punycode 모듈은 더 이상 사용되지 않습니다. 대신 사용자 영역의 대안을 사용하십시오.

DEP0041: NODE_REPL_HISTORY_FILE 환경 변수

[이력]

버전변경 사항
v10.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v3.0.0문서에서만 사용 중지.

유형: 지원 종료

NODE_REPL_HISTORY_FILE 환경 변수가 제거되었습니다. NODE_REPL_HISTORY를 대신 사용하십시오.

DEP0042: tls.CryptoStream

[이력]

버전변경 사항
v10.0.0지원 종료.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v0.11.3문서에서만 사용 중지.

유형: 지원 종료

tls.CryptoStream 클래스가 제거되었습니다. tls.TLSSocket을 대신 사용하십시오.

DEP0043: tls.SecurePair

[이력]

버전변경 사항
v8.0.0런타임 사용 중지.
v6.12.0사용 중지 코드가 할당되었습니다.
v6.0.0문서에서만 사용 중지.
v0.11.15사용 중지 취소.
v0.11.3런타임 사용 중지.

유형: 문서에서만 사용 중지

tls.SecurePair 클래스는 사용되지 않습니다. tls.TLSSocket을 대신 사용하십시오.

DEP0044: util.isArray()

[이력]

버전변경 사항
v22.0.0런타임 사용 중지.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v4.0.0, v3.3.1문서에서만 사용 중지.

유형: 런타임

util.isArray() API는 사용되지 않습니다. Array.isArray()를 대신 사용하십시오.

DEP0045: util.isBoolean()

[이력]

버전변경 사항
v23.0.0지원 종료.
v22.0.0런타임 사용 중지.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v4.0.0, v3.3.1문서에서만 사용 중지.

유형: 지원 종료

util.isBoolean() API가 제거되었습니다. typeof arg === 'boolean'을 대신 사용하십시오.

DEP0046: util.isBuffer()

[이력]

버전변경 사항
v23.0.0지원 종료.
v22.0.0런타임 사용 중지.
v6.12.0, v4.8.6사용 중지 코드가 할당되었습니다.
v4.0.0, v3.3.1문서에서만 사용 중지.

유형: 지원 종료

util.isBuffer() API가 제거되었습니다. Buffer.isBuffer()를 대신 사용하십시오.

DEP0047: util.isDate()

[History]

버전변경 사항
v23.0.0사용 중지(End-of-Life)
v22.0.0런타임 사용 중지
v6.12.0, v4.8.6사용 중지 코드 할당
v4.0.0, v3.3.1문서상 사용 중지

유형: 사용 중지(End-of-Life)

util.isDate() API가 제거되었습니다. arg instanceof Date를 대신 사용하십시오.

DEP0048: util.isError()

[History]

버전변경 사항
v23.0.0사용 중지(End-of-Life)
v22.0.0런타임 사용 중지
v6.12.0, v4.8.6사용 중지 코드 할당
v4.0.0, v3.3.1문서상 사용 중지

유형: 사용 중지(End-of-Life)

util.isError() API가 제거되었습니다. Object.prototype.toString(arg) === '[object Error]' || arg instanceof Error를 대신 사용하십시오.

DEP0049: util.isFunction()

[History]

버전변경 사항
v23.0.0사용 중지(End-of-Life)
v22.0.0런타임 사용 중지
v6.12.0, v4.8.6사용 중지 코드 할당
v4.0.0, v3.3.1문서상 사용 중지

유형: 사용 중지(End-of-Life)

util.isFunction() API가 제거되었습니다. typeof arg === 'function'을 대신 사용하십시오.

DEP0050: util.isNull()

[History]

버전변경 사항
v23.0.0사용 중지(End-of-Life)
v22.0.0런타임 사용 중지
v6.12.0, v4.8.6사용 중지 코드 할당
v4.0.0, v3.3.1문서상 사용 중지

유형: 사용 중지(End-of-Life)

util.isNull() API가 제거되었습니다. arg === null을 대신 사용하십시오.

DEP0051: util.isNullOrUndefined()

[History]

버전변경 사항
v23.0.0사용 중지(End-of-Life)
v22.0.0런타임 사용 중지
v6.12.0, v4.8.6사용 중지 코드 할당
v4.0.0, v3.3.1문서상 사용 중지

유형: 사용 중지(End-of-Life)

util.isNullOrUndefined() API가 제거되었습니다. arg === null || arg === undefined를 대신 사용하십시오.

DEP0052: util.isNumber()

[History]

버전변경 사항
v23.0.0사용 중단(End-of-Life).
v22.0.0런타임 사용 중단.
v6.12.0, v4.8.6사용 중단 코드 할당.
v4.0.0, v3.3.1문서상 사용 중단.

Type: End-of-Life

util.isNumber() API가 제거되었습니다. typeof arg === 'number'를 대신 사용하십시오.

DEP0053: util.isObject()

[History]

버전변경 사항
v23.0.0사용 중단(End-of-Life).
v22.0.0런타임 사용 중단.
v6.12.0, v4.8.6사용 중단 코드 할당.
v4.0.0, v3.3.1문서상 사용 중단.

Type: End-of-Life

util.isObject() API가 제거되었습니다. arg && typeof arg === 'object'를 대신 사용하십시오.

DEP0054: util.isPrimitive()

[History]

버전변경 사항
v23.0.0사용 중단(End-of-Life).
v22.0.0런타임 사용 중단.
v6.12.0, v4.8.6사용 중단 코드 할당.
v4.0.0, v3.3.1문서상 사용 중단.

Type: End-of-Life

util.isPrimitive() API가 제거되었습니다. arg === null || (typeof arg !=='object' && typeof arg !== 'function')를 대신 사용하십시오.

DEP0055: util.isRegExp()

[History]

버전변경 사항
v23.0.0사용 중단(End-of-Life).
v22.0.0런타임 사용 중단.
v6.12.0, v4.8.6사용 중단 코드 할당.
v4.0.0, v3.3.1문서상 사용 중단.

Type: End-of-Life

util.isRegExp() API가 제거되었습니다. arg instanceof RegExp를 대신 사용하십시오.

DEP0056: util.isString()

[History]

버전변경 사항
v23.0.0사용 중단(End-of-Life).
v22.0.0런타임 사용 중단.
v6.12.0, v4.8.6사용 중단 코드 할당.
v4.0.0, v3.3.1문서상 사용 중단.

Type: End-of-Life

util.isString() API가 제거되었습니다. typeof arg === 'string'를 대신 사용하십시오.

DEP0057: util.isSymbol()

[History]

버전변경 사항
v23.0.0End-of-Life deprecated.
v22.0.0런타임 deprecated.
v6.12.0, v4.8.6deprecated 코드 할당.
v4.0.0, v3.3.1문서화만 deprecated.

Type: End-of-Life

util.isSymbol() API가 제거되었습니다. typeof arg === 'symbol'을 대신 사용하십시오.

DEP0058: util.isUndefined()

[History]

버전변경 사항
v23.0.0End-of-Life deprecated.
v22.0.0런타임 deprecated.
v6.12.0, v4.8.6deprecated 코드 할당.
v4.0.0, v3.3.1문서화만 deprecated.

Type: End-of-Life

util.isUndefined() API가 제거되었습니다. arg === undefined를 대신 사용하십시오.

DEP0059: util.log()

[History]

버전변경 사항
v23.0.0End-of-Life deprecated.
v22.0.0런타임 deprecated.
v6.12.0deprecated 코드 할당.
v6.0.0문서화만 deprecated.

Type: End-of-Life

util.log() API는 유지 관리되지 않는 레거시 API이며 실수로 사용자 영역에 노출되었기 때문에 제거되었습니다. 특정 요구 사항에 따라 다음 대안을 고려하십시오.

  • 타사 로깅 라이브러리
  • console.log(new Date().toLocaleString(), message) 사용

이러한 대안 중 하나를 채택하여 util.log()에서 전환하고 애플리케이션의 특정 요구 사항과 복잡성에 맞는 로깅 전략을 선택할 수 있습니다.

DEP0060: util._extend()

[History]

버전변경 사항
v22.0.0런타임 deprecated.
v6.12.0deprecated 코드 할당.
v6.0.0문서화만 deprecated.

Type: Runtime

util._extend() API는 유지 관리되지 않는 레거시 API이며 실수로 사용자 영역에 노출되었기 때문에 deprecated되었습니다. target = Object.assign(target, source)를 대신 사용하십시오.

DEP0061: fs.SyncWriteStream

[History]

버전변경 사항
v11.0.0지원 종료.
v8.0.0런타임 사용 중지.
v7.0.0문서에서만 사용 중지.

유형: 지원 종료

fs.SyncWriteStream 클래스는 공개적으로 접근 가능한 API로 의도된 적이 없으며 제거되었습니다. 대체 API는 없습니다. 사용자 환경의 대안을 사용하십시오.

DEP0062: node --debug

[History]

버전변경 사항
v12.0.0지원 종료.
v8.0.0런타임 사용 중지.

유형: 지원 종료

--debug는 V8 5.8부터 제거된 레거시 V8 디버거 인터페이스를 활성화합니다. --inspect를 사용하여 활성화되는 Inspector로 대체되었습니다.

DEP0063: ServerResponse.prototype.writeHeader()

[History]

버전변경 사항
v8.0.0문서에서만 사용 중지.

유형: 문서에서만 사용 중지

node:http 모듈의 ServerResponse.prototype.writeHeader() API는 사용 중지되었습니다. 대신 ServerResponse.prototype.writeHead()를 사용하십시오.

ServerResponse.prototype.writeHeader() 메서드는 공식적으로 지원되는 API로 문서화된 적이 없습니다.

DEP0064: tls.createSecurePair()

[History]

버전변경 사항
v8.0.0런타임 사용 중지.
v6.12.0사용 중지 코드가 할당되었습니다.
v6.0.0문서에서만 사용 중지.
v0.11.15사용 중지 취소.
v0.11.3런타임 사용 중지.

유형: 런타임

tls.createSecurePair() API는 Node.js 0.11.3에서 문서에서 사용 중지되었습니다. 사용자는 대신 tls.Socket을 사용해야 합니다.

DEP0065: repl.REPL_MODE_MAGICNODE_REPL_MODE=magic

[History]

버전변경 사항
v10.0.0지원 종료.
v8.0.0문서에서만 사용 중지.

유형: 지원 종료

node:repl 모듈의 replMode 옵션에 사용되는 REPL_MODE_MAGIC 상수가 제거되었습니다. V8 5.0이 임포트된 Node.js 6.0.0부터 해당 동작은 REPL_MODE_SLOPPY와 기능적으로 동일했습니다. 대신 REPL_MODE_SLOPPY를 사용하십시오.

NODE_REPL_MODE 환경 변수는 대화형 node 세션의 기본 replMode를 설정하는 데 사용됩니다. 해당 값인 magic도 제거되었습니다. 대신 sloppy를 사용하십시오.

DEP0066: OutgoingMessage.prototype._headers, OutgoingMessage.prototype._headerNames

[History]

버전변경 사항
v12.0.0런타임 사용 중단.
v8.0.0문서화만 사용 중단.

유형: 런타임

node:http 모듈의 OutgoingMessage.prototype._headersOutgoingMessage.prototype._headerNames 속성은 더 이상 사용되지 않습니다. 공개 메서드(예: OutgoingMessage.prototype.getHeader(), OutgoingMessage.prototype.getHeaders(), OutgoingMessage.prototype.getHeaderNames(), OutgoingMessage.prototype.getRawHeaderNames(), OutgoingMessage.prototype.hasHeader(), OutgoingMessage.prototype.removeHeader(), OutgoingMessage.prototype.setHeader())를 사용하여 발신 헤더를 처리하십시오.

OutgoingMessage.prototype._headersOutgoingMessage.prototype._headerNames 속성은 공식적으로 지원되는 속성으로 문서화된 적이 없습니다.

DEP0067: OutgoingMessage.prototype._renderHeaders

[History]

버전변경 사항
v8.0.0문서화만 사용 중단.

유형: 문서화만

node:http 모듈의 OutgoingMessage.prototype._renderHeaders() API는 더 이상 사용되지 않습니다.

OutgoingMessage.prototype._renderHeaders 속성은 공식적으로 지원되는 API로 문서화된 적이 없습니다.

DEP0068: node debug

[History]

버전변경 사항
v15.0.0레거시 node debug 명령어가 제거되었습니다.
v8.0.0런타임 사용 중단.

유형: 수명 종료

node debugnode inspect를 통해 사용할 수 있는 V8 검사기 기반 CLI 디버거로 대체된 레거시 CLI 디버거에 해당합니다.

DEP0069: vm.runInDebugContext(string)

[History]

버전변경 사항
v10.0.0수명 종료.
v9.0.0런타임 사용 중단.
v8.0.0문서화만 사용 중단.

유형: 수명 종료

DebugContext는 V8에서 제거되었으며 Node.js 10 이상에서는 사용할 수 없습니다.

DebugContext는 실험적인 API였습니다.

DEP0070: async_hooks.currentId()

[History]

버전변경 사항
v9.0.0수명 종료.
v8.2.0런타임 사용 중단.

유형: 수명 종료

async_hooks.currentId()는 명확성을 위해 async_hooks.executionAsyncId()로 이름이 변경되었습니다.

이 변경은 async_hooks가 실험적인 API였을 때 이루어졌습니다.

DEP0071: async_hooks.triggerId()

[History]

버전변경 사항
v9.0.0지원 종료.
v8.2.0런타임 사용 중지.

유형: 지원 종료

명확성을 위해 async_hooks.triggerId()async_hooks.triggerAsyncId()로 이름이 변경되었습니다.

이 변경은 async_hooks가 실험적 API였을 때 이루어졌습니다.

DEP0072: async_hooks.AsyncResource.triggerId()

[History]

버전변경 사항
v9.0.0지원 종료.
v8.2.0런타임 사용 중지.

유형: 지원 종료

명확성을 위해 async_hooks.AsyncResource.triggerId()async_hooks.AsyncResource.triggerAsyncId()로 이름이 변경되었습니다.

이 변경은 async_hooks가 실험적 API였을 때 이루어졌습니다.

DEP0073: net.Server의 여러 내부 속성

[History]

버전변경 사항
v10.0.0지원 종료.
v9.0.0런타임 사용 중지.

유형: 지원 종료

부적절한 이름을 가진 net.Server 인스턴스의 여러 내부적이고 문서화되지 않은 속성에 접근하는 것이 사용 중지되었습니다.

원래 API는 문서화되지 않았고 일반적으로 내부 코드가 아닌 코드에 유용하지 않았으므로 대체 API는 제공되지 않습니다.

DEP0074: REPLServer.bufferedCommand

[History]

버전변경 사항
v15.0.0지원 종료.
v9.0.0런타임 사용 중지.

유형: 지원 종료

REPLServer.bufferedCommand 속성은 REPLServer.clearBufferedCommand()에 대한 지원이 중단되었습니다.

DEP0075: REPLServer.parseREPLKeyword()

[History]

버전변경 사항
v15.0.0지원 종료.
v9.0.0런타임 사용 중지.

유형: 지원 종료

REPLServer.parseREPLKeyword()는 사용자 영역에서 제거되었습니다.

DEP0076: tls.parseCertString()

[History]

버전변경 사항
v18.0.0지원 종료.
v9.0.0런타임 사용 중지.
v8.6.0문서상으로만 사용 중지.

유형: 지원 종료

tls.parseCertString()는 실수로 공개된 사소한 파싱 도우미였습니다. 인증서 주체 및 발급자 문자열을 파싱하기 위한 것이었지만 다중 값 상대 구분 이름을 올바르게 처리한 적이 없습니다.

이 문서의 이전 버전에서는 tls.parseCertString()의 대안으로 querystring.parse()를 사용하는 것이 좋다고 제안했습니다. 그러나 querystring.parse()도 모든 인증서 주체를 올바르게 처리하지 않으므로 사용해서는 안 됩니다.

DEP0077: Module._debug()

[History]

버전변경 사항
v9.0.0런타임 사용 중단.

유형: 런타임

Module._debug()는 더 이상 사용되지 않습니다.

Module._debug() 함수는 공식적으로 지원되는 API로 문서화된 적이 없습니다.

DEP0078: REPLServer.turnOffEditorMode()

[History]

버전변경 사항
v15.0.0사용 종료.
v9.0.0런타임 사용 중단.

유형: 사용 종료

REPLServer.turnOffEditorMode()는 사용자 영역에서 제거되었습니다.

DEP0079: .inspect()를 통한 객체의 사용자 정의 검사 함수

[History]

버전변경 사항
v11.0.0사용 종료.
v10.0.0런타임 사용 중단.
v8.7.0문서만 사용 중단.

유형: 사용 종료

util.inspect()에 대한 사용자 정의 검사 함수를 지정하기 위해 객체에서 inspect라는 속성을 사용하는 것은 더 이상 사용되지 않습니다. util.inspect.custom을 대신 사용하십시오. Node.js 6.4.0 이전 버전과의 하위 호환성을 위해 두 가지 모두 지정할 수 있습니다.

DEP0080: path._makeLong()

[History]

버전변경 사항
v9.0.0문서만 사용 중단.

유형: 문서만

내부 path._makeLong()은 공개적으로 사용하기 위한 것이 아니었습니다. 그러나 사용자 영역 모듈에서 유용하게 사용되었습니다. 내부 API는 더 이상 사용되지 않으며 동일한 공개 path.toNamespacedPath() 메서드로 대체되었습니다.

DEP0081: 파일 디스크립터를 사용하는 fs.truncate()

[History]

버전변경 사항
v9.0.0런타임 사용 중단.

유형: 런타임

파일 디스크립터를 사용하는 fs.truncate() fs.truncateSync() 사용은 더 이상 사용되지 않습니다. 파일 디스크립터를 사용하려면 fs.ftruncate() 또는 fs.ftruncateSync()를 사용하십시오.

DEP0082: REPLServer.prototype.memory()

[History]

버전변경 사항
v15.0.0사용 종료.
v9.0.0런타임 사용 중단.

유형: 사용 종료

REPLServer.prototype.memory()REPLServer 자체의 내부 메커니즘에만 필요합니다. 이 함수를 사용하지 마십시오.

DEP0083: ecdhCurvefalse로 설정하여 ECDH 비활성화

[히스토리]

버전변경 사항
v10.0.0지원 종료.
v9.2.0런타임 사용 중지.

유형: 지원 종료.

tls.createSecureContext()tls.TLSSocket에 대한 ecdhCurve 옵션을 false로 설정하여 서버에서만 ECDH를 완전히 비활성화할 수 있었습니다. 이 모드는 OpenSSL 1.1.0으로 마이그레이션하고 클라이언트와의 일관성을 유지하기 위해 사용 중지되었으며, 이제 지원되지 않습니다. 대신 ciphers 매개변수를 사용하십시오.

DEP0084: 번들된 내부 종속성 요구

[히스토리]

버전변경 사항
v12.0.0이 기능이 제거되었습니다.
v10.0.0런타임 사용 중지.

유형: 지원 종료

Node.js 버전 4.4.0 및 5.2.0부터 내부 사용만을 위한 여러 모듈이 require()를 통해 사용자 코드에 잘못 노출되었습니다. 이러한 모듈은 다음과 같습니다.

  • v8/tools/codemap
  • v8/tools/consarray
  • v8/tools/csvparser
  • v8/tools/logreader
  • v8/tools/profile_view
  • v8/tools/profile
  • v8/tools/SourceMap
  • v8/tools/splaytree
  • v8/tools/tickprocessor-driver
  • v8/tools/tickprocessor
  • node-inspect/lib/_inspect (7.6.0부터)
  • node-inspect/lib/internal/inspect_client (7.6.0부터)
  • node-inspect/lib/internal/inspect_repl (7.6.0부터)

v8/* 모듈에는 내보내기가 없으며, 특정 순서로 가져오지 않으면 오류가 발생합니다. 따라서 require()를 통해 가져오는 합당한 사용 사례는 거의 없습니다.

반면, node-inspect는 npm 레지스트리에 동일한 이름으로 게시되므로 패키지 관리자를 통해 로컬로 설치할 수 있습니다. 그렇게 한다면 소스 코드 수정이 필요 없습니다.

DEP0085: AsyncHooks 민감한 API

[히스토리]

버전변경 사항
v10.0.0지원 종료.
v9.4.0, v8.10.0런타임 사용 중지.

유형: 지원 종료

AsyncHooks 민감한 API는 문서화된 적이 없었고 여러 가지 사소한 문제가 있었습니다. 대신 AsyncResource API를 사용하십시오. https://github.com/nodejs/node/issues/15572를 참조하십시오.

DEP0086: runInAsyncIdScope 제거

[이력]

버전변경 사항
v10.0.0지원 종료.
v9.4.0, v8.10.0런타임 사용 중지.

유형: 지원 종료

runInAsyncIdScope'before' 또는 'after' 이벤트를 발생시키지 않으므로 많은 문제를 야기할 수 있습니다. https://github.com/nodejs/node/issues/14328 참조.

DEP0089: require('node:assert')

[이력]

버전변경 사항
v12.8.0사용 중지 취소.
v9.9.0, v8.13.0문서에서만 사용 중지.

유형: 사용 중지 취소

노출된 함수가 느슨한 등가 비교를 사용하므로 assert를 직접 가져오는 것은 권장되지 않았습니다. node:assert 모듈의 사용이 권장되지 않는 것이 아니며, 사용 중지로 인해 개발자의 혼란을 야기했으므로 사용 중지가 취소되었습니다.

DEP0090: 잘못된 GCM 인증 태그 길이

[이력]

버전변경 사항
v11.0.0지원 종료.
v10.0.0런타임 사용 중지.

유형: 지원 종료

Node.js는 decipher.setAuthTag()를 호출할 때 OpenSSL에서 허용하는 모든 GCM 인증 태그 길이를 지원했습니다. Node.js v11.0.0부터는 128, 120, 112, 104, 96, 64 및 32비트의 인증 태그 길이만 허용됩니다. 다른 길이의 인증 태그는 NIST SP 800-38D에 따라 잘못된 것입니다.

DEP0091: crypto.DEFAULT_ENCODING

[이력]

버전변경 사항
v20.0.0지원 종료.
v10.0.0런타임 사용 중지.

유형: 지원 종료

crypto.DEFAULT_ENCODING 속성은 0.9.3 이전 버전의 Node.js 릴리스와의 호환성을 위해서만 존재했으며 제거되었습니다.

DEP0092: 최상위 thismodule.exports에 바인딩됨

[이력]

버전변경 사항
v10.0.0문서에서만 사용 중지.

유형: 문서에서만 사용 중지

module.exports의 대안으로 최상위 this에 속성을 할당하는 것은 사용되지 않습니다. 대신 exports 또는 module.exports를 사용해야 합니다.

DEP0093: crypto.fips는 더 이상 사용되지 않으며 대체됨

[이력]

버전변경 사항
v23.0.0런타임 사용 중단
v10.0.0문서에서만 사용 중단

유형: 런타임

crypto.fips 속성은 더 이상 사용되지 않습니다. crypto.setFips()crypto.getFips()를 대신 사용하십시오.

DEP0094: 둘 이상의 인수를 사용한 assert.fail()

[이력]

버전변경 사항
v10.0.0런타임 사용 중단

유형: 런타임

둘 이상의 인수를 사용한 assert.fail()은 더 이상 사용되지 않습니다. 하나의 인수만 사용하거나 다른 node:assert 모듈 메서드를 사용하십시오.

DEP0095: timers.enroll()

[이력]

버전변경 사항
v10.0.0런타임 사용 중단

유형: 런타임

timers.enroll()은 더 이상 사용되지 않습니다. 공개적으로 문서화된 setTimeout() 또는 setInterval()을 대신 사용하십시오.

DEP0096: timers.unenroll()

[이력]

버전변경 사항
v10.0.0런타임 사용 중단

유형: 런타임

timers.unenroll()은 더 이상 사용되지 않습니다. 공개적으로 문서화된 clearTimeout() 또는 clearInterval()을 대신 사용하십시오.

DEP0097: domain 속성을 사용한 MakeCallback

[이력]

버전변경 사항
v10.0.0런타임 사용 중단

유형: 런타임

컨텍스트를 전달하기 위해 domain 속성을 추가하는 MakeCallback 사용자는 MakeCallback 또는 CallbackScopeasync_context 변형 또는 상위 수준의 AsyncResource 클래스를 사용하기 시작해야 합니다.

DEP0098: AsyncHooks 임베더 AsyncResource.emitBeforeAsyncResource.emitAfter API

[이력]

버전변경 사항
v12.0.0사용 종료
v10.0.0, v9.6.0, v8.12.0런타임 사용 중단

유형: 사용 종료

AsyncHooks에서 제공하는 임베디드 API는 .emitBefore().emitAfter() 메서드를 노출하는데, 이는 잘못 사용하기 쉽고 복구할 수 없는 오류로 이어질 수 있습니다.

훨씬 더 안전하고 편리한 대안을 제공하는 asyncResource.runInAsyncScope() API를 대신 사용하십시오. https://github.com/nodejs/node/pull/18513 참조하십시오.

DEP0099: 비동기 컨텍스트 인식하지 못하는 node::MakeCallback C++ API

[히스토리]

버전변경 사항
v10.0.0컴파일 시점 경고.

유형: 컴파일 시점

네이티브 애드온에서 사용할 수 있는 특정 버전의 node::MakeCallback API는 더 이상 사용되지 않습니다. async_context 매개변수를 받는 API 버전을 사용하십시오.

DEP0100: process.assert()

[히스토리]

버전변경 사항
v23.0.0지원 종료.
v10.0.0런타임 경고.
v0.3.7문서상 경고.

유형: 지원 종료

process.assert()는 더 이상 사용되지 않습니다. assert 모듈을 대신 사용하십시오.

이것은 문서화된 기능이 아니었습니다.

DEP0101: --with-lttng

[히스토리]

버전변경 사항
v10.0.0지원 종료.

유형: 지원 종료

--with-lttng 컴파일 시점 옵션이 제거되었습니다.

DEP0102: Buffer#(read|write) 연산에서 noAssert 사용

[히스토리]

버전변경 사항
v10.0.0지원 종료.

유형: 지원 종료

noAssert 인수를 사용하는 것은 더 이상 기능이 없습니다. noAssert 값에 관계없이 모든 입력이 확인됩니다. 확인을 건너뛰면 찾기 어려운 오류와 충돌이 발생할 수 있습니다.

DEP0103: process.binding('util').is[...] 형식 검사

[히스토리]

버전변경 사항
v10.9.0DEP0111에 의해 대체됨.
v10.0.0문서상 경고.

유형: 문서상 경고 ( --pending-deprecation 지원)

일반적으로 process.binding()을 사용하는 것은 피해야 합니다. 특히 형식 검사 메서드는 util.types를 사용하여 대체할 수 있습니다.

이 경고는 process.binding() API의 경고(DEP0111)에 의해 대체되었습니다.

DEP0104: process.env 문자열 강제 변환

[히스토리]

버전변경 사항
v10.0.0문서상 경고.

유형: 문서상 경고 ( --pending-deprecation 지원)

문자열이 아닌 속성을 process.env에 할당하면 할당된 값이 암시적으로 문자열로 변환됩니다. 할당된 값이 문자열, 불리언 또는 숫자가 아닌 경우 이 동작은 더 이상 사용되지 않습니다. 앞으로 이러한 할당은 오류를 발생시킬 수 있습니다. process.env에 할당하기 전에 속성을 문자열로 변환하십시오.

DEP0105: decipher.finaltol

[이력]

버전변경 사항
v11.0.0지원 종료.
v10.0.0런타임 사용 중지.

유형: 지원 종료

decipher.finaltol()은 문서화된 적이 없으며 decipher.final()의 별칭이었습니다. 이 API는 제거되었으며, decipher.final()을 대신 사용하는 것이 좋습니다.

DEP0106: crypto.createCiphercrypto.createDecipher

[이력]

버전변경 사항
v22.0.0지원 종료.
v11.0.0런타임 사용 중지.
v10.0.0문서에서만 사용 중지.

유형: 지원 종료

crypto.createCipher()crypto.createDecipher()는 약한 키 유도 함수(솔트가 없는 MD5)와 정적 초기화 벡터를 사용하므로 제거되었습니다. crypto.pbkdf2() 또는 crypto.scrypt()를 사용하여 랜덤 솔트로 키를 유도하고 crypto.createCipheriv()crypto.createDecipheriv()를 사용하여 각각 CipherDecipher 객체를 가져오는 것이 좋습니다.

DEP0107: tls.convertNPNProtocols()

[이력]

버전변경 사항
v11.0.0지원 종료.
v10.0.0런타임 사용 중지.

유형: 지원 종료

이는 Node.js 코어 외부에서 사용하도록 의도되지 않은 문서화되지 않은 보조 함수이며 NPN(Next Protocol Negotiation) 지원 제거로 인해 더 이상 사용되지 않습니다.

DEP0108: zlib.bytesRead

[이력]

버전변경 사항
v23.0.0지원 종료.
v11.0.0런타임 사용 중지.
v10.0.0문서에서만 사용 중지.

유형: 지원 종료

zlib.bytesWritten에 대한 더 이상 사용되지 않는 별칭입니다. 원래 이름은 엔진에서 읽은 바이트 수로 해석하는 것도 의미가 있었지만, 이러한 이름으로 값을 노출하는 다른 Node.js 스트림과 일치하지 않습니다.

DEP0109: 잘못된 URL에 대한 http, httpstls 지원

[히스토리]

버전변경 사항
v16.0.0지원 종료
v11.0.0런타임 사용 중단

유형: 지원 종료

이전에 지원되었지만 엄격하게 잘못된 일부 URL은 기존 url.parse() API에서 허용되었기 때문에 http.request(), http.get(), https.request(), https.get()tls.checkServerIdentity() API를 통해 허용되었습니다. 이러한 API는 이제 엄격하게 유효한 URL을 요구하는 WHATWG URL 파서를 사용합니다. 잘못된 URL을 전달하는 것은 사용 중단되었으며 향후 지원이 제거됩니다.

DEP0110: vm.Script 캐시된 데이터

[히스토리]

버전변경 사항
v10.6.0문서만 사용 중단

유형: 문서만

produceCachedData 옵션은 사용 중단되었습니다. 대신 script.createCachedData()를 사용하십시오.

DEP0111: process.binding()

[히스토리]

버전변경 사항
v11.12.0--pending-deprecation 지원 추가
v10.9.0문서만 사용 중단

유형: 문서만 (--pending-deprecation 지원)

process.binding()은 Node.js 내부 코드에서만 사용됩니다.

process.binding()이 일반적으로 지원 종료 상태에 도달하지 않았지만, 권한 모델이 활성화되면 사용할 수 없습니다.

DEP0112: dgram 비공개 API

[히스토리]

버전변경 사항
v11.0.0런타임 사용 중단

유형: 런타임

node:dgram 모듈에는 이전에 Node.js 코어 외부에서 액세스할 의도가 없었던 여러 API(Socket.prototype._handle, Socket.prototype._receiving, Socket.prototype._bindState, Socket.prototype._queue, Socket.prototype._reuseAddr, Socket.prototype._healthCheck(), Socket.prototype._stopReceiving(), 및 dgram._createSocketHandle())가 포함되어 있었습니다.

DEP0113: Cipher.setAuthTag(), Decipher.getAuthTag()

[히스토리]

버전변경 사항
v12.0.0지원 종료.
v11.0.0런타임 사용 중단.

유형: 지원 종료

Cipher.setAuthTag()Decipher.getAuthTag()는 더 이상 사용할 수 없습니다. 이 메서드는 문서화되지 않았으며 호출 시 예외를 발생시킵니다.

DEP0114: crypto._toBuf()

[히스토리]

버전변경 사항
v12.0.0지원 종료.
v11.0.0런타임 사용 중단.

유형: 지원 종료

crypto._toBuf() 함수는 Node.js 코어 외부의 모듈에서 사용하도록 설계되지 않았으며 제거되었습니다.

DEP0115: crypto.prng(), crypto.pseudoRandomBytes(), crypto.rng()

[히스토리]

버전변경 사항
v11.0.0--pending-deprecation 지원과 함께 문서화만 사용 중단 추가.

유형: 문서화 전용 ( --pending-deprecation 지원)

최신 버전의 Node.js에서는 crypto.randomBytes()crypto.pseudoRandomBytes() 사이에 차이가 없습니다. 후자는 문서화되지 않은 별칭 crypto.prng()crypto.rng()과 함께 crypto.randomBytes()에 대한 사용 중단되었으며 향후 릴리스에서 제거될 수 있습니다.

DEP0116: 레거시 URL API

[히스토리]

버전변경 사항
v19.0.0, v18.13.0DEP0169에서 url.parse()가 다시 사용 중단됨.
v15.13.0, v14.17.0사용 중단 해제. 상태가 "레거시"로 변경됨.
v11.0.0문서화 전용 사용 중단.

유형: 사용 중단 해제

레거시 URL API는 사용 중단되었습니다. 여기에는 url.format(), url.parse(), url.resolve()레거시 urlObject가 포함됩니다. 대신 WHATWG URL API를 사용하십시오.

DEP0117: 네이티브 암호화 핸들

[이력]

버전변경 사항
v12.0.0지원 종료.
v11.0.0런타임 사용 중단.

유형: 지원 종료

이전 버전의 Node.js는 Cipher, Decipher, DiffieHellman, DiffieHellmanGroup, ECDH, Hash, Hmac, Sign, 및 Verify 클래스의 _handle 속성을 통해 내부 네이티브 객체에 대한 핸들을 노출했습니다. 네이티브 객체의 부적절한 사용으로 애플리케이션이 충돌할 수 있으므로 _handle 속성이 제거되었습니다.

DEP0118: 거짓 호스트 이름에 대한 dns.lookup() 지원

[이력]

버전변경 사항
v11.0.0런타임 사용 중단.

유형: 런타임

이전 버전의 Node.js는 이전 버전과의 호환성을 위해 dns.lookup(false)와 같이 거짓 호스트 이름으로 dns.lookup()을 지원했습니다. 이 동작은 문서화되지 않았으며 실제 애플리케이션에서 사용되지 않는 것으로 생각됩니다. 향후 버전의 Node.js에서는 오류가 됩니다.

DEP0119: process.binding('uv').errname() 비공개 API

[이력]

버전변경 사항
v11.0.0문서화만 사용 중단.

유형: 문서화만 ( --pending-deprecation 지원)

process.binding('uv').errname()이 사용 중단되었습니다. 대신 util.getSystemErrorName()을 사용하십시오.

DEP0120: Windows 성능 카운터 지원

[이력]

버전변경 사항
v12.0.0지원 종료.
v11.0.0런타임 사용 중단.

유형: 지원 종료

Windows 성능 카운터 지원이 Node.js에서 제거되었습니다. 문서화되지 않은 COUNTER_NET_SERVER_CONNECTION(), COUNTER_NET_SERVER_CONNECTION_CLOSE(), COUNTER_HTTP_SERVER_REQUEST(), COUNTER_HTTP_SERVER_RESPONSE(), COUNTER_HTTP_CLIENT_REQUEST(), 및 COUNTER_HTTP_CLIENT_RESPONSE() 함수가 사용 중단되었습니다.

DEP0121: net._setSimultaneousAccepts()

[이력]

버전변경 사항
v12.0.0런타임 사용 중단.

유형: 런타임

문서화되지 않은 net._setSimultaneousAccepts() 함수는 원래 Windows에서 node:child_processnode:cluster 모듈을 사용할 때 디버깅 및 성능 조정을 위해 의도되었습니다. 이 함수는 일반적으로 유용하지 않으므로 제거되고 있습니다. 여기에서 토론을 참조하십시오: https://github.com/nodejs/node/issues/18391

DEP0122: tls Server.prototype.setOptions()

[History]

버전변경 사항
v12.0.0런타임 사용 중단.

유형: 런타임

Server.prototype.setSecureContext()를 대신 사용하십시오.

DEP0123: TLS ServerName을 IP 주소로 설정

[History]

버전변경 사항
v12.0.0런타임 사용 중단.

유형: 런타임

RFC 6066에 따라 TLS ServerName을 IP 주소로 설정하는 것은 허용되지 않습니다. 이는 향후 버전에서 무시됩니다.

DEP0124: REPLServer.rli 사용

[History]

버전변경 사항
v15.0.0수명 종료.
v12.0.0런타임 사용 중단.

유형: 수명 종료

이 속성은 인스턴스 자체에 대한 참조입니다.

DEP0125: require('node:_stream_wrap')

[History]

버전변경 사항
v12.0.0런타임 사용 중단.

유형: 런타임

node:_stream_wrap 모듈은 더 이상 사용되지 않습니다.

DEP0126: timers.active()

[History]

버전변경 사항
v11.14.0런타임 사용 중단.

유형: 런타임

이전에는 문서화되지 않았던 timers.active()가 더 이상 사용되지 않습니다. 공개적으로 문서화된 timeout.refresh()를 대신 사용하십시오. 타임아웃을 다시 참조해야 하는 경우 Node.js 10부터 성능에 영향을 주지 않고 timeout.ref()를 사용할 수 있습니다.

DEP0127: timers._unrefActive()

[History]

버전변경 사항
v11.14.0런타임 사용 중단.

유형: 런타임

이전에는 문서화되지 않았던 "비공개" timers._unrefActive()가 더 이상 사용되지 않습니다. 공개적으로 문서화된 timeout.refresh()를 대신 사용하십시오. 타임아웃의 참조를 해제해야 하는 경우 Node.js 10부터 성능에 영향을 주지 않고 timeout.unref()를 사용할 수 있습니다.

DEP0128: 잘못된 main 항목과 index.js 파일을 가진 모듈

[History]

버전변경 사항
v16.0.0런타임 사용 중단.
v12.0.0문서만 해당.

유형: 런타임

잘못된 main 항목(예: ./does-not-exist.js)을 가지고 최상위 디렉터리에 index.js 파일도 있는 모듈은 index.js 파일을 확인합니다. 이는 더 이상 사용되지 않으며 향후 Node.js 버전에서는 오류를 발생시킵니다.

DEP0129: ChildProcess._channel

[History]

버전변경 사항
v13.0.0런타임 사용 중단.
v11.14.0문서만 변경.

유형: 런타임

spawn() 및 유사 함수에서 반환하는 자식 프로세스 객체의 _channel 속성은 공개적으로 사용하기 위한 것이 아닙니다. 대신 ChildProcess.channel을 사용하십시오.

DEP0130: Module.createRequireFromPath()

[History]

버전변경 사항
v16.0.0수명 종료.
v13.0.0런타임 사용 중단.
v12.2.0문서만 변경.

유형: 수명 종료

module.createRequire()을 대신 사용하십시오.

DEP0131: 레거시 HTTP 파서

[History]

버전변경 사항
v13.0.0이 기능은 제거되었습니다.
v12.22.0런타임 사용 중단.
v12.3.0문서만 변경.

유형: 수명 종료

Node.js 12.0.0 이전 버전에서 기본적으로 사용되는 레거시 HTTP 파서는 사용되지 않으며 v13.0.0에서 제거되었습니다. v13.0.0 이전에는 --http-parser=legacy 명령줄 플래그를 사용하여 레거시 파서로 되돌릴 수 있었습니다.

DEP0132: 콜백을 사용하는 worker.terminate()

[History]

버전변경 사항
v12.5.0런타임 사용 중단.

유형: 런타임

worker.terminate()에 콜백을 전달하는 것은 사용되지 않습니다. 반환된 Promise 또는 worker의 'exit' 이벤트에 대한 리스너를 대신 사용하십시오.

DEP0133: http connection

[History]

버전변경 사항
v12.12.0문서만 사용 중단.

유형: 문서만

response.connection보다 response.socket을, request.connection보다 request.socket을 선호하십시오.

DEP0134: process._tickCallback

[History]

버전변경 사항
v12.12.0문서만 사용 중단.

유형: 문서만 ( --pending-deprecation 지원)

process._tickCallback 속성은 공식적으로 지원되는 API로 문서화된 적이 없습니다.

DEP0135: WriteStream.open()ReadStream.open()은 내부 API입니다

[히스토리]

버전변경 사항
v13.0.0런타임 사용 중단

유형: 런타임

WriteStream.open()ReadStream.open()은 문서화되지 않은 내부 API이며 사용자 영역에서 사용하는 것이 적절하지 않습니다. 파일 스트림은 항상 해당 팩토리 메서드인 fs.createWriteStream()fs.createReadStream()을 통해 또는 옵션에서 파일 디스크립터를 전달하여 열어야 합니다.

DEP0136: http finished

[히스토리]

버전변경 사항
v13.4.0, v12.16.0문서만 사용 중단

유형: 문서만

response.finished'finish' 이벤트가 발생하고 기본 데이터가 플러시되었는지 여부가 아니라 response.end()가 호출되었는지 여부를 나타냅니다.

모호성을 피하려면 response.writableFinished 또는 response.writableEnded를 대신 사용하십시오.

기존 동작을 유지하려면 response.finishedresponse.writableEnded로 바꿔야 합니다.

DEP0137: 가비지 컬렉션 시 fs.FileHandle 닫기

[히스토리]

버전변경 사항
v14.0.0런타임 사용 중단

유형: 런타임

가비지 컬렉션 시 fs.FileHandle 객체를 닫도록 허용하는 것은 더 이상 지원되지 않습니다. 향후에는 그렇게 하면 프로세스를 종료하는 예외가 발생할 수 있습니다.

fs.FileHandle이 더 이상 필요하지 않을 때 FileHandle.prototype.close()를 사용하여 모든 fs.FileHandle 객체를 명시적으로 닫으십시오.

js
const fsPromises = require('node:fs').promises
async function openAndClose() {
  let filehandle
  try {
    filehandle = await fsPromises.open('thefile.txt', 'r')
  } finally {
    if (filehandle !== undefined) await filehandle.close()
  }
}

DEP0138: process.mainModule

[History]

버전변경 사항
v14.0.0문서화만의 deprecated 처리.

유형: 문서화만의 deprecated 처리

process.mainModule은 CommonJS 전용 기능인 반면 process 전역 객체는 CommonJS가 아닌 환경과 공유됩니다. ECMAScript 모듈 내에서의 사용은 지원되지 않습니다.

같은 목적을 가지고 있으며 CommonJS 환경에서만 사용 가능한 require.main을 대신 사용하는 것이 좋습니다.

DEP0139: 인수 없이 호출하는 process.umask()

[History]

버전변경 사항
v14.0.0, v12.19.0문서화만의 deprecated 처리.

유형: 문서화만의 deprecated 처리

인수 없이 process.umask()를 호출하면 프로세스 전체의 umask가 두 번 쓰여집니다. 이는 스레드 간의 경합 조건을 발생시키고 잠재적인 보안 취약성을 야기합니다. 안전하고 플랫폼에 관계없이 사용할 수 있는 대체 API는 없습니다.

DEP0140: request.abort() 대신 request.destroy() 사용

[History]

버전변경 사항
v14.1.0, v13.14.0문서화만의 deprecated 처리.

유형: 문서화만의 deprecated 처리

request.abort() 대신 request.destroy()를 사용하십시오.

DEP0141: repl.inputStreamrepl.outputStream

[History]

버전변경 사항
v14.3.0문서화만의 deprecated 처리 ([--pending-deprecation][] 지원).

유형: 문서화만의 deprecated 처리 (--pending-deprecation 지원)

node:repl 모듈은 입력 및 출력 스트림을 두 번 내보냈습니다. .inputStream 대신 .input을, .outputStream 대신 .output을 사용하십시오.

DEP0142: repl._builtinLibs

[History]

버전변경 사항
v14.3.0문서화만의 deprecated 처리 ([--pending-deprecation][] 지원).

유형: 문서화만의 deprecated 처리

node:repl 모듈은 내장 모듈의 배열을 포함하는 _builtinLibs 속성을 내보냅니다. 지금까지 불완전했으며 require('node:module').builtinModules에 의존하는 것이 더 좋습니다.

DEP0143: Transform._transformState

[History]

버전변경 사항
v14.5.0런타임 사용 중단.

유형: 구현 단순화로 인해 더 이상 필요하지 않은 향후 버전에서 런타임 Transform._transformState가 제거됩니다.

DEP0144: module.parent

[History]

버전변경 사항
v14.6.0, v12.19.0문서만 사용 중단.

유형: 문서만 ( --pending-deprecation 지원)

CommonJS 모듈은 module.parent를 사용하여 해당 모듈을 처음으로 요구한 모듈에 액세스할 수 있습니다. 이 기능은 ECMAScript 모듈이 있을 때 일관되게 작동하지 않고 CommonJS 모듈 그래프의 부정확한 표현을 제공하기 때문에 사용 중단되었습니다.

일부 모듈은 현재 프로세스의 진입점인지 확인하는 데 이 기능을 사용합니다. 대신 require.mainmodule을 비교하는 것이 좋습니다.

js
if (require.main === module) {
  // 현재 파일이 진입점인 경우에만 실행되는 코드 섹션.
}

현재 모듈을 요구한 CommonJS 모듈을 찾을 때 require.cachemodule.children을 사용할 수 있습니다.

js
const moduleParents = Object.values(require.cache).filter(m => m.children.includes(module))

DEP0145: socket.bufferSize

[History]

버전변경 사항
v14.6.0문서만 사용 중단.

유형: 문서만

socket.bufferSizewritable.writableLength의 별칭일 뿐입니다.

DEP0146: new crypto.Certificate()

[History]

버전변경 사항
v14.9.0문서만 사용 중단.

유형: 문서만

crypto.Certificate() 생성자는 사용 중단되었습니다. 대신 crypto.Certificate()의 정적 메서드를 사용하십시오.

DEP0147: fs.rmdir(path, { recursive: true }) {#dep0147-fsrmdirpath-{-recursive-true-}}

[History]

버전변경 사항
v16.0.0런타임 사용 중단.
v15.0.0관대한 동작에 대한 런타임 사용 중단.
v14.14.0문서만 사용 중단.

유형: 런타임

향후 Node.js 버전에서는 fs.rmdir, fs.rmdirSyncfs.promises.rmdir에 대해 recursive 옵션이 무시됩니다.

대신 fs.rm(path, { recursive: true, force: true }), fs.rmSync(path, { recursive: true, force: true }) 또는 fs.promises.rm(path, { recursive: true, force: true })를 사용하십시오.

DEP0148: "exports"의 폴더 매핑(후행 "/")

[히스토리]

버전변경 사항
v17.0.0지원 종료.
v16.0.0런타임 사용 중단.
v15.1.0자체 참조 가져오기에 대한 런타임 사용 중단.
v14.13.0문서상으로만 사용 중단.

유형: 런타임

하위 경로 내보내기 또는 하위 경로 가져오기 필드에서 하위 경로 폴더 매핑을 정의하는 데 후행 "/"를 사용하는 것은 더 이상 권장되지 않습니다. 대신 하위 경로 패턴을 사용하십시오.

DEP0149: http.IncomingMessage#connection

[히스토리]

버전변경 사항
v16.0.0문서상으로만 사용 중단.

유형: 문서상으로만.

message.connection 대신 message.socket을 사용하는 것이 좋습니다.

DEP0150: process.config 값 변경

[히스토리]

버전변경 사항
v19.0.0지원 종료.
v16.0.0런타임 사용 중단.

유형: 지원 종료

process.config 속성은 Node.js 컴파일 타임 설정에 대한 액세스를 제공합니다. 그러나 이 속성은 변경 가능하므로 변조될 수 있습니다. 값을 변경하는 기능은 향후 Node.js 버전에서 제거됩니다.

DEP0151: 메인 인덱스 조회 및 확장자 검색

[히스토리]

버전변경 사항
v16.0.0런타임 사용 중단.
v15.8.0, v14.18.0--pending-deprecation 지원과 함께 문서상으로만 사용 중단.

유형: 런타임

이전에는 ES 모듈을 확인할 때도 index.js 및 확장자 검색 조회가 import 'pkg' 메인 진입점 확인에 적용되었습니다.

이 사용 중단으로 인해 모든 ES 모듈 메인 진입점 확인에는 정확한 파일 확장자를 포함한 명시적인 "exports" 또는 "main" 항목이 필요합니다.

DEP0152: 확장 PerformanceEntry 속성

[히스토리]

버전변경 사항
v16.0.0런타임 사용 중단.

유형: 런타임

'gc', 'http2''http' <PerformanceEntry> 객체 유형에는 추가 정보를 제공하는 추가 속성이 할당되어 있습니다. 이러한 속성은 이제 PerformanceEntry 객체의 표준 detail 속성 내에서 사용할 수 있습니다. 기존 접근자는 더 이상 사용되지 않으므로 사용하지 않아야 합니다.

DEP0153: dns.lookupdnsPromises.lookup 옵션 형식 강제 변환

[이력]

버전변경 사항
v18.0.0지원 종료
v17.0.0런타임 사용 중단
v16.8.0문서에서만 사용 중단

유형: 지원 종료

dns.lookup()dnsPromises.lookup()에서 family 옵션에 null이 아닌 비정수 값, hints 옵션에 null이 아닌 비숫자 값, all 옵션에 null이 아닌 비부울 값 또는 verbatim 옵션에 null이 아닌 비부울 값을 사용하면 ERR_INVALID_ARG_TYPE 오류가 발생합니다.

DEP0154: RSA-PSS 키 쌍 생성 옵션

[이력]

버전변경 사항
v20.0.0런타임 사용 중단
v16.10.0문서에서만 사용 중단

유형: 런타임

'hash''mgf1Hash' 옵션이 'hashAlgorithm''mgf1HashAlgorithm'으로 대체되었습니다.

DEP0155: 패턴 지정자 확인에서의 후행 슬래시

[이력]

버전변경 사항
v17.0.0런타임 사용 중단
v16.10.0--pending-deprecation 지원과 함께 문서에서만 사용 중단

유형: 런타임

"/"로 끝나는 지정자(예: import 'pkg/x/')의 재매핑이 패키지 "exports""imports" 패턴 확인에 대해 사용 중단되었습니다.

DEP0156: http.aborted 속성 및 'abort', 'aborted' 이벤트

[이력]

버전변경 사항
v17.0.0, v16.12.0문서에서만 사용 중단

유형: 문서에서만

http.ClientRequest, http.ServerResponsehttp.IncomingMessage가 모두 스트림 기반이므로 <Stream> API로 이동하십시오. .aborted 속성 대신 stream.destroyed를 확인하고 'abort', 'aborted' 이벤트 대신 'close'를 수신하십시오.

.aborted 속성 및 'abort' 이벤트는 .abort() 호출을 감지하는 데만 유용합니다. 요청을 조기에 닫으려면 Stream .destroy([error])를 사용한 다음 .destroyed 속성을 확인하고 'close' 이벤트가 동일한 효과를 가져야 합니다. 수신측은 http.IncomingMessage에서 readable.readableEnded 값을 확인하여 중단된 종료인지 아니면 정상적인 종료인지 확인해야 합니다.

DEP0157: 스트림에서 Thenable 지원

[히스토리]

버전변경 사항
v18.0.0지원 종료.
v17.2.0, v16.14.0문서화만 된 deprecated.

유형: 지원 종료

Node.js 스트림의 문서화되지 않은 기능으로 구현 메서드에서 thenable을 지원하는 것이 있었습니다. 이제 deprecated되었으며, 대신 콜백을 사용하고 스트림 구현 메서드에 async 함수를 사용하지 마십시오.

이 기능으로 인해 사용자가 콜백 스타일로 함수를 구현하지만 예를 들어 promise와 콜백 의미 체계를 혼합하는 것은 유효하지 않으므로 오류가 발생하는 async 메서드를 사용하는 경우 예기치 않은 문제에 직면하게 되었습니다.

js
const w = new Writable({
  async final(callback) {
    await someOp()
    callback()
  },
})

DEP0158: buffer.slice(start, end)

[히스토리]

버전변경 사항
v17.5.0, v16.15.0문서화만 된 deprecated.

유형: 문서화만 된 deprecated

Buffer의 상위 클래스인 Uint8Array.prototype.slice()와 호환되지 않으므로 이 메서드는 deprecated되었습니다.

대신 같은 작업을 수행하는 buffer.subarray를 사용하십시오.

DEP0159: ERR_INVALID_CALLBACK

[히스토리]

버전변경 사항
v18.0.0지원 종료.

유형: 지원 종료

값 유형 유효성 검사에 사용되는 오류에 대한 혼란을 더 추가했기 때문에 이 오류 코드가 제거되었습니다.

DEP0160: process.on('multipleResolves', handler)

[히스토리]

버전변경 사항
v18.0.0런타임 deprecated.
v17.6.0, v16.15.0문서화만 된 deprecated.

유형: 런타임 deprecated.

V8 promise 조합기와 작동하지 않아 유용성이 감소했기 때문에 이 이벤트는 deprecated되었습니다.

DEP0161: process._getActiveRequests()process._getActiveHandles()

[히스토리]

버전변경 사항
v17.6.0, v16.15.0문서화만 된 deprecated.

유형: 문서화만 된 deprecated

process._getActiveHandles()process._getActiveRequests() 함수는 공개적으로 사용하기 위한 것이 아니며 향후 릴리스에서 제거될 수 있습니다.

실제 참조가 아닌 활성 리소스 유형 목록을 가져오려면 process.getActiveResourcesInfo()를 사용하십시오.

DEP0162: fs.write(), fs.writeFileSync() 문자열 강제 변환

[이력]

버전변경 사항
v19.0.0지원 종료.
v18.0.0런타임 사용 중단.
v17.8.0, v16.15.0문서화만 사용 중단.

유형: 지원 종료

자체 toString 속성을 가진 객체를 fs.write(), fs.writeFile(), fs.appendFile(), fs.writeFileSync(), 및 fs.appendFileSync()의 두 번째 매개변수로 전달하는 암시적 강제 변환이 사용 중단되었습니다. 기본 문자열로 변환하십시오.

DEP0163: channel.subscribe(onMessage), channel.unsubscribe(onMessage)

[이력]

버전변경 사항
v18.7.0, v16.17.0문서화만 사용 중단.

유형: 문서화만

이 메서드는 채널 참조를 이벤트를 수신하기에 충분히 오랫동안 유지하지 않는 방식으로 사용될 수 있기 때문에 사용 중단되었습니다.

대신 동일한 작업을 수행하는 diagnostics_channel.subscribe(name, onMessage) 또는 diagnostics_channel.unsubscribe(name, onMessage)를 사용하십시오.

DEP0164: process.exit(code), process.exitCode 정수 강제 변환

[이력]

버전변경 사항
v20.0.0지원 종료.
v19.0.0런타임 사용 중단.
v18.10.0, v16.18.0process.exitCode 정수 강제 변환에 대한 문서화만 사용 중단.
v18.7.0, v16.17.0process.exit(code) 정수 강제 변환에 대한 문서화만 사용 중단.

유형: 지원 종료

undefined, null, 정수, 및 정수 문자열(예: '1') 이외의 값은 process.exit()code 매개변수 값 및 process.exitCode에 할당할 값으로 사용 중단되었습니다.

DEP0165: --trace-atomics-wait

[히스토리]

버전변경 사항
v23.0.0수명 종료.
v22.0.0런타임 사용 중단.
v18.8.0, v16.18.0문서화만 사용 중단.

유형: 수명 종료

--trace-atomics-wait 플래그는 향후 V8 릴리스에서 제거될 V8 후크 SetAtomicsWaitCallback을 사용하기 때문에 제거되었습니다.

DEP0166: import 및 export 대상의 이중 슬래시

[히스토리]

버전변경 사항
v19.0.0런타임 사용 중단.
v18.10.0--pending-deprecation 지원과 함께 문서화만 사용 중단.

유형: 런타임

이중 슬래시("/" 또는 "")를 포함하는 경로에 매핑되는 패키지 import 및 export 대상은 사용되지 않으며 향후 릴리스에서 해상도 유효성 검사 오류가 발생합니다. 이와 동일한 사용 중단은 슬래시로 시작하거나 끝나는 패턴 일치에도 적용됩니다.

DEP0167: 약한 DiffieHellmanGroup 인스턴스(modp1, modp2, modp5)

[히스토리]

버전변경 사항
v18.10.0, v16.18.0문서화만 사용 중단.

유형: 문서화만

잘 알려진 MODP 그룹인 modp1, modp2modp5는 실제 공격에 안전하지 않기 때문에 사용되지 않습니다. 자세한 내용은 RFC 8247 섹션 2.4를 참조하십시오.

이러한 그룹은 향후 Node.js 버전에서 제거될 수 있습니다. 이러한 그룹에 의존하는 애플리케이션은 대신 더 강력한 MODP 그룹을 사용하는 것을 평가해야 합니다.

DEP0168: Node-API 콜백의 처리되지 않은 예외

[히스토리]

버전변경 사항
v18.3.0, v16.17.0런타임 사용 중단.

유형: 런타임

Node-API 콜백에서 처리되지 않은 예외의 암시적 억제가 이제 사용되지 않습니다.

플래그 --force-node-api-uncaught-exceptions-policy를 설정하여 Node-API 콜백에서 예외가 처리되지 않은 경우 Node.js에서 'uncaughtException' 이벤트를 내보내도록 강제합니다.

DEP0169: 안전하지 않은 url.parse()

[히스토리]

버전변경 사항
v19.9.0, v18.17.0--pending-deprecation 지원 추가
v19.0.0, v18.13.0문서화만 된 deprecated

유형: 문서화 전용 ( --pending-deprecation 지원)

url.parse() 동작은 표준화되지 않았으며 보안상의 문제가 있는 오류가 발생하기 쉽습니다. 대신 WHATWG URL API를 사용하십시오. url.parse() 취약성에 대한 CVE는 발행되지 않습니다.

DEP0170: url.parse() 사용 시 잘못된 포트

[히스토리]

버전변경 사항
v20.0.0런타임 deprecated
v19.2.0, v18.13.0문서화만 된 deprecated

유형: 런타임

url.parse()는 숫자가 아닌 포트를 가진 URL을 허용합니다. 이러한 동작은 예상치 못한 입력으로 호스트 이름 스푸핑을 초래할 수 있습니다. WHATWG URL API가 이미 그렇듯이, 이러한 URL은 Node.js의 향후 버전에서 오류를 발생시킵니다.

DEP0171: http.IncomingMessage 헤더 및 트레일러에 대한 설정자

[히스토리]

버전변경 사항
v19.3.0, v18.13.0문서화만 된 deprecated

유형: 문서화 전용

Node.js의 향후 버전에서 message.headers, message.headersDistinct, message.trailers, 및 message.trailersDistinct는 읽기 전용이 됩니다.

DEP0172: AsyncResource 바인딩 함수의 asyncResource 속성

[히스토리]

버전변경 사항
v20.0.0런타임 deprecated

유형: 런타임

Node.js의 향후 버전에서 함수가 AsyncResource에 바인딩될 때 asyncResource 속성이 더 이상 추가되지 않습니다.

DEP0173: assert.CallTracker 클래스

[히스토리]

버전변경 사항
v20.1.0문서화만 된 deprecated

유형: 문서화 전용

Node.js의 향후 버전에서 assert.CallTracker가 제거됩니다. mock 도우미 함수와 같은 대안을 고려하십시오.

DEP0174: Promise를 반환하는 함수에 promisify 호출

[히스토리]

버전변경 사항
v21.0.0런타임 사용 중단.
v20.8.0문서에서만 사용 중단.

유형: 런타임

util.promisifyPromise를 반환하는 함수에 호출하는 것은 더 이상 사용되지 않습니다.

DEP0175: util.toUSVString

[히스토리]

버전변경 사항
v20.8.0문서에서만 사용 중단.

유형: 문서에서만 사용 중단

util.toUSVString() API는 더 이상 사용되지 않습니다. String.prototype.toWellFormed를 대신 사용하십시오.

DEP0176: fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK

[히스토리]

버전변경 사항
v20.8.0문서에서만 사용 중단.

유형: 문서에서만 사용 중단

node:fs에 직접 노출된 F_OK, R_OK, W_OKX_OK getter는 더 이상 사용되지 않습니다. 대신 fs.constants 또는 fs.promises.constants에서 가져오십시오.

DEP0177: util.types.isWebAssemblyCompiledModule

[히스토리]

버전변경 사항
v21.7.0, v20.12.0수명 종료.
v21.3.0, v20.11.0사용 중단 코드가 할당되었습니다.
v14.0.0문서에서만 사용 중단.

유형: 수명 종료

util.types.isWebAssemblyCompiledModule API는 제거되었습니다. 대신 value instanceof WebAssembly.Module을 사용하십시오.

DEP0178: dirent.path

[히스토리]

버전변경 사항
v23.0.0런타임 사용 중단.
v21.5.0, v20.12.0, v18.20.0문서에서만 사용 중단.

유형: 런타임

릴리스 라인 간의 일관성 부족으로 인해 dirent.path는 더 이상 사용되지 않습니다. 대신 dirent.parentPath를 사용하십시오.

DEP0179: Hash 생성자

[히스토리]

버전변경 사항
v22.0.0런타임 사용 중단.
v21.5.0, v20.12.0문서에서만 사용 중단.

유형: 런타임

Hash() 또는 new Hash()를 사용하여 Hash 클래스를 직접 호출하는 것은 내부적으로 공개 사용을 위한 것이 아니므로 더 이상 사용되지 않습니다. Hash 인스턴스를 생성하려면 crypto.createHash() 메서드를 사용하십시오.

DEP0180: fs.Stats 생성자

[이력]

버전변경 사항
v22.0.0런타임 사용 중단.
v20.13.0문서상으로만 사용 중단.

유형: 런타임

Stats() 또는 new Stats()를 사용하여 fs.Stats 클래스를 직접 호출하는 것은 내부적으로 사용되는 것이며 공개적으로 사용하도록 의도되지 않았으므로 사용 중단되었습니다.

DEP0181: Hmac 생성자

[이력]

버전변경 사항
v22.0.0런타임 사용 중단.
v20.13.0문서상으로만 사용 중단.

유형: 런타임

Hmac() 또는 new Hmac()를 사용하여 Hmac 클래스를 직접 호출하는 것은 내부적으로 사용되는 것이며 공개적으로 사용하도록 의도되지 않았으므로 사용 중단되었습니다. Hmac 인스턴스를 생성하려면 crypto.createHmac() 메서드를 사용하십시오.

DEP0182: 명시적인 authTagLength 없이 짧은 GCM 인증 태그

[이력]

버전변경 사항
v23.0.0런타임 사용 중단.
v20.13.0문서상으로만 사용 중단.

유형: 런타임

기본 인증 태그 길이보다 짧은 인증 태그를 사용하려는 애플리케이션은 crypto.createDecipheriv() 함수의 authTagLength 옵션을 적절한 길이로 설정해야 합니다.

GCM 모드의 암호의 경우 decipher.setAuthTag() 함수는 모든 유효한 길이의 인증 태그를 허용합니다(DEP0090 참조). 이 동작은 NIST SP 800-38D의 권장 사항과 더 잘 일치하도록 사용 중단되었습니다.

DEP0183: OpenSSL 엔진 기반 API

[이력]

버전변경 사항
v22.4.0, v20.16.0문서상으로만 사용 중단.

유형: 문서상으로만

OpenSSL 3은 새로운 제공자 모델로 전환하라는 권장 사항과 함께 사용자 지정 엔진에 대한 지원을 중단했습니다. https.request()clientCertEngine 옵션, tls.createSecureContext()tls.createServer(); tls.createSecureContext()privateKeyEngineprivateKeyIdentifier; 그리고 crypto.setEngine()은 모두 OpenSSL의 이 기능에 의존합니다.

DEP0184: node:zlib 클래스를 new 없이 인스턴스화

[히스토리]

버전변경 사항
v22.9.0, v20.18.0문서화 전용 deprecated

유형: 문서화 전용

node:zlib 모듈에서 내보낸 클래스를 new 한정자 없이 인스턴스화하는 것은 deprecated되었습니다. new 한정자를 사용하는 것이 좋습니다. Deflate, DeflateRaw, Gunzip, Inflate, InflateRaw, Unzip, Zlib와 같은 모든 Zlib 클래스에 적용됩니다.

DEP0185: node:repl 클래스를 new 없이 인스턴스화

[히스토리]

버전변경 사항
v22.9.0, v20.18.0문서화 전용 deprecated

유형: 문서화 전용

node:repl 모듈에서 내보낸 클래스를 new 한정자 없이 인스턴스화하는 것은 deprecated되었습니다. new 한정자를 사용하는 것이 좋습니다. REPLServerRecoverable을 포함한 모든 REPL 클래스에 적용됩니다.

DEP0187: fs.existsSync에 잘못된 인수 유형 전달

[히스토리]

버전변경 사항
v23.4.0문서화 전용

유형: 문서화 전용

지원되지 않는 인수 유형을 전달하는 것은 deprecated되었으며, false를 반환하는 대신 향후 버전에서는 오류를 throw할 것입니다.

DEP0188: process.features.ipv6process.features.uv

[히스토리]

버전변경 사항
v23.4.0문서화 전용 deprecated

유형: 문서화 전용

이러한 속성은 무조건 true입니다. 이러한 속성을 기반으로 하는 모든 검사는 중복됩니다.

DEP0189: process.features.tls_*

[히스토리]

버전변경 사항
v23.4.0문서화 전용 deprecated

유형: 문서화 전용

process.features.tls_alpn, process.features.tls_ocspprocess.features.tls_sni는 deprecated되었습니다. 그 값은 process.features.tls의 값과 동일하게 보장됩니다.