📣Node.js 버전 20이 Release 되었습니다.
주요 업데이트:
🔒 권한모델:
--allow-fs-read 및 --allow-fs-write 플래그를 도입하여 파일 시스템 액세스를 더욱 강력하게 제어할 수 있습니다.
🧵 커스텀 ESM 로더 후크:
이제 이러한 후크는 전용 스레드에서 실행되어 로더와 앱 코드를 분리합니다.
브라우저 동작에 따라 이제 import.meta.resolve()가 동기식으로 반환되며, 로더 작성자가 원하는 경우 사용자 로더의 resolve 후크는 비동기 상태로 유지될 수 있으며, 애플리케이션 코드에서는 여전히 import.meta.resolve가 동기식으로 반환됩니다.
🔧 안정적인 테스트 러너: 이제 테스트 러너 모듈이 안정화되어 프로덕션 환경에서 사용할 수 있습니다.
- describe, it/test 및 테스트 파일을 구조화하기 위한 후크
- mocking
- 감시 모드
- 여러 테스트 파일을 병렬로 실행하기 위한 node --test
🔥 퍼포먼스 향상
Node.js 20에는 URL, fetch(), EventTarget을 비롯한 런타임의 기본 부분에 대한 많은 개선 사항이 포함되어 있습니다.
EventTarget 초기화 비용이 절반으로 줄어들어 이를 사용하는 모든 서브시스템에 더 빠르게 액세스할 수 있습니다.
또한 V8 Fast API 호출을 활용하여 URL.canParse() 및 타이머와 같은 API의 성능을 개선했습니다.
V8 JavaScript 엔진이 11.3으로 업데이트 되며 성능이 개선되었습니다
⚡ Ada 2.0
C++로 작성된 빠르고 사양을 준수하는 URL Parser인 Ada의 업데이트된 버전 2.0으로 업데이트 되어 URL 구문의 분석 성능이 크게 개선되어 애플리케이션 속도가 빨라졌습니다
🌐 웹 암호화 API
Node.js 20에서는 이제 다른 웹 크립토 API 구현에서와 마찬가지로 웹 크립토 API 함수의 인수가 WebIDL 정의에 따라 강제되고 유효성이 검사됩니다.
이는 다른 Web Crypto API 구현과의 상호 운용성을 더욱 향상시킵니다.
Node.js 20은 10월에 LTS 버전이 될 예정이니 참고해주세요!
또한 Node.js 14버전이 2023년 4월에 지원이 종료되며, Node.js 16버전이 2023년 9월에 지원이 종료되므로
해당 버전을 사용하고 있다면 현재 LTS버전인 Node.js 18이나 Node.js 20으로 업그레이드 계획을 세우는 것을 추천드립니다!
자세한 내용은 제 블로그를 참고해주세요!