더 이상 사용되지 않는 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()
를 사용하십시오.
DEP0002: require('_linklist')
[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
객체 생성 방법을 사용하십시오.
Buffer.alloc(size[, fill[, encoding]])
: 초기화된 메모리를 가진Buffer
를 생성합니다.Buffer.allocUnsafe(size)
: 초기화되지 않은 메모리를 가진Buffer
를 생성합니다.Buffer.allocUnsafeSlow(size)
: 초기화되지 않은 메모리를 가진Buffer
를 생성합니다.Buffer.from(array)
:array
의 복사본을 가진Buffer
를 생성합니다.Buffer.from(arrayBuffer[, byteOffset[, length]])
- 주어진arrayBuffer
를 래핑하는Buffer
를 생성합니다.Buffer.from(buffer)
:buffer
를 복사한Buffer
를 생성합니다.Buffer.from(string[, encoding])
:string
을 복사한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.suicide
를 worker.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').constants
및 require('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부터 digest
를 undefined
로 설정하여 crypto.pbkdf2()
또는 crypto.pbkdf2Sync()
를 호출하면 TypeError
가 발생합니다.
Node.js v11.0.0부터 digest
를 null
로 설정하여 이러한 함수를 호출하면 digest
가 undefined
일 때의 동작과 일치하도록 사용 중지 경고가 표시됩니다.
그러나 이제 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
속성에 대한 GLOBAL
및 root
별칭은 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.0 | Server.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.0 | End-of-Life deprecated. |
v22.0.0 | 런타임 deprecated. |
v6.12.0, v4.8.6 | deprecated 코드 할당. |
v4.0.0, v3.3.1 | 문서화만 deprecated. |
Type: End-of-Life
util.isSymbol()
API가 제거되었습니다. typeof arg === 'symbol'
을 대신 사용하십시오.
DEP0058: util.isUndefined()
[History]
버전 | 변경 사항 |
---|---|
v23.0.0 | End-of-Life deprecated. |
v22.0.0 | 런타임 deprecated. |
v6.12.0, v4.8.6 | deprecated 코드 할당. |
v4.0.0, v3.3.1 | 문서화만 deprecated. |
Type: End-of-Life
util.isUndefined()
API가 제거되었습니다. arg === undefined
를 대신 사용하십시오.
DEP0059: util.log()
[History]
버전 | 변경 사항 |
---|---|
v23.0.0 | End-of-Life deprecated. |
v22.0.0 | 런타임 deprecated. |
v6.12.0 | deprecated 코드 할당. |
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.0 | deprecated 코드 할당. |
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_MAGIC
및 NODE_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._headers
및 OutgoingMessage.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._headers
및 OutgoingMessage.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 debug
는 node 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: ecdhCurve
를 false
로 설정하여 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: 최상위 this
가 module.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
또는 CallbackScope
의 async_context
변형 또는 상위 수준의 AsyncResource
클래스를 사용하기 시작해야 합니다.
DEP0098: AsyncHooks 임베더 AsyncResource.emitBefore
및 AsyncResource.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.0 | DEP0111에 의해 대체됨. |
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.createCipher
및 crypto.createDecipher
[이력]
버전 | 변경 사항 |
---|---|
v22.0.0 | 지원 종료. |
v11.0.0 | 런타임 사용 중지. |
v10.0.0 | 문서에서만 사용 중지. |
유형: 지원 종료
crypto.createCipher()
및 crypto.createDecipher()
는 약한 키 유도 함수(솔트가 없는 MD5)와 정적 초기화 벡터를 사용하므로 제거되었습니다. crypto.pbkdf2()
또는 crypto.scrypt()
를 사용하여 랜덤 솔트로 키를 유도하고 crypto.createCipheriv()
및 crypto.createDecipheriv()
를 사용하여 각각 Cipher
및 Decipher
객체를 가져오는 것이 좋습니다.
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
, https
및 tls
지원
[히스토리]
버전 | 변경 사항 |
---|---|
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.0 | DEP0169에서 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_process
및 node: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.finished
를 response.writableEnded
로 바꿔야 합니다.
DEP0137: 가비지 컬렉션 시 fs.FileHandle
닫기
[히스토리]
버전 | 변경 사항 |
---|---|
v14.0.0 | 런타임 사용 중단 |
유형: 런타임
가비지 컬렉션 시 fs.FileHandle
객체를 닫도록 허용하는 것은 더 이상 지원되지 않습니다. 향후에는 그렇게 하면 프로세스를 종료하는 예외가 발생할 수 있습니다.
fs.FileHandle
이 더 이상 필요하지 않을 때 FileHandle.prototype.close()
를 사용하여 모든 fs.FileHandle
객체를 명시적으로 닫으십시오.
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.inputStream
및 repl.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.main
과 module
을 비교하는 것이 좋습니다.
if (require.main === module) {
// 현재 파일이 진입점인 경우에만 실행되는 코드 섹션.
}
현재 모듈을 요구한 CommonJS 모듈을 찾을 때 require.cache
와 module.children
을 사용할 수 있습니다.
const moduleParents = Object.values(require.cache).filter(m => m.children.includes(module))
DEP0145: socket.bufferSize
[History]
버전 | 변경 사항 |
---|---|
v14.6.0 | 문서만 사용 중단. |
유형: 문서만
socket.bufferSize
는 writable.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.rmdirSync
및 fs.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.lookup
및 dnsPromises.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.ServerResponse
및 http.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 메서드를 사용하는 경우 예기치 않은 문제에 직면하게 되었습니다.
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.0 | process.exitCode 정수 강제 변환에 대한 문서화만 사용 중단. |
v18.7.0, v16.17.0 | process.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
, modp2
및 modp5
는 실제 공격에 안전하지 않기 때문에 사용되지 않습니다. 자세한 내용은 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.promisify
를 Promise
를 반환하는 함수에 호출하는 것은 더 이상 사용되지 않습니다.
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_OK
및 X_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()
의 privateKeyEngine
및 privateKeyIdentifier
; 그리고 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
한정자를 사용하는 것이 좋습니다. REPLServer
및 Recoverable
을 포함한 모든 REPL 클래스에 적용됩니다.
DEP0187: fs.existsSync
에 잘못된 인수 유형 전달
[히스토리]
버전 | 변경 사항 |
---|---|
v23.4.0 | 문서화 전용 |
유형: 문서화 전용
지원되지 않는 인수 유형을 전달하는 것은 deprecated되었으며, false
를 반환하는 대신 향후 버전에서는 오류를 throw할 것입니다.
DEP0188: process.features.ipv6
및 process.features.uv
[히스토리]
버전 | 변경 사항 |
---|---|
v23.4.0 | 문서화 전용 deprecated |
유형: 문서화 전용
이러한 속성은 무조건 true
입니다. 이러한 속성을 기반으로 하는 모든 검사는 중복됩니다.
DEP0189: process.features.tls_*
[히스토리]
버전 | 변경 사항 |
---|---|
v23.4.0 | 문서화 전용 deprecated |
유형: 문서화 전용
process.features.tls_alpn
, process.features.tls_ocsp
및 process.features.tls_sni
는 deprecated되었습니다. 그 값은 process.features.tls
의 값과 동일하게 보장됩니다.