피드로 돌아가기
Node.js 14.18.0 (LTS)
Node.js BlogNode.js Blog
Backend

Node.js 14.18.0 LTS가 50개 이상의 SEMVER-MINOR 기능 추가로 Buffer Blob, fsPromises.watch(), net.BlockList, module URL 지원 등 구현

Node.js 14.18.0 (LTS)

2021년 9월 28일6beginner

Context

Node.js 14는 LTS(Long-Term Support) 버전으로 장기간 안정성을 유지해야 하며, 동시에 JavaScript 표준 및 개발자 경험 개선을 위한 신기능을 지속적으로 반영해야 한다.

Technical Solution

  • Buffer 모듈에 Blob 타입 도입: 웹 표준 호환성을 위해 Blob 인터페이스 구현
  • base64url 인코딩 옵션 추가: Buffer 인코딩 옵션에 base64url 지원 (SEMVER-MINOR)
  • child_process 개선: timeout, URL 기반 cwd, 'overlapped' stdio 플래그, promisified exec 취소 기능 추가
  • fsPromises 강화: watch() 메서드, 매개변수 없는 fileHandle read(), 비동기 이터레이터 지원, BigInt position 파라미터 추가
  • CLI 확장: -C 플래그(--conditions 별칭), --node-memory-debug, --heapsnapshot-near-heap-limit 옵션 추가
  • ESM 및 모듈 시스템: module.createResolve() URL 지원, node: 프리픽스 require() 호출 지원, REPL 자동완성 개선
  • 네트워킹: net.BlockList 도입, HTTP/2 sensitive headers 지원, session 로컬 윈도우 크기 조정 가능
  • 기타 API: os.devNull, perf_hooks.createHistogram(), readline AbortSignal/AbortController 지원, stream pipeline Buffer 첫 인자 지원, v8.takeCoverage()/stopCoverage() 구현, worker setEnvironmentData/getEnvironmentData 추가

Impact

아티클에서 명시된 정량적 성능 수치가 없음.

Key Takeaway

LTS 버전에서도 SEMVER-MINOR 범위 내에서 50개 이상의 신기능을 추가하여 웹 표준 호환성(Blob), 비동기 워크플로우 지원(fsPromises, AbortSignal), 개발자 편의성(CLI 플래그, URL 지원)을 동시에 달성할 수 있으며, 이는 후속 메이저 버전으로의 마이그레이션 진입장벽을 낮추는 전략으로 작용한다.


Node.js 14 LTS를 사용하는 프로덕션 환경에서 fsPromises.watch()를 통해 파일 시스템 감시를 콜백 기반 fs.watch() 대신 Promise 기반으로 마이그레이션하면 async/await 코드 작성이 일관되고, buffer Blob 지원으로 웹 API와 호환되는 파일 처리 로직을 구성할 수 있으며, child_process timeout 옵션을 활용하면 무한 실행 자식 프로세스 제어가 개선된다.

원문 읽기