피드로 돌아가기
Node.js BlogBackend
원문 읽기
Node.js 18.20.0이 import assertions를 import attributes로 전환하면서 마이그레이션 경로 제공 및 vm.Script 컴파일 캐시 성능 회귀 문제 해결
Node.js 18.20.0 (LTS)
AI 요약
Context
Node.js 16.x 이후 vm.Script에 importModuleDynamically 옵션이 추가되면서 V8 컴파일 캐시 히트율이 떨어져 Jest 등의 도구 사용자들이 업그레이드를 차단당했다.
Technical Solution
- import assertions 문법을 import attributes 문법으로 변경: assert 키워드를 with 키워드로 교체하여 새로운 표준 준수
- vm.Script 컴파일 캐시 재활성화: --experimental-vm-modules 미사용 시 importModuleDynamically 옵션 존재 여부와 관계없이 캐시 히트 가능하도록 수정
- 인증서 관리 업데이트: Telekom Security TLS ECC Root 2020, Telekom Security TLS RSA Root 2023 추가 및 기존 인증서 제거
- Node API 실험 기능 추가: node_api_nogc_env 타입과 node_api_nogc_finalize 함수를 통해 GC 상태에 영향을 주는 finalizer 분리
- 의존성 라이브러리 업데이트: npm 10.5.0, ICU 74.2 (CLDR 44.1, Unicode 15.1 포함), c-ares 1.27.0, zlib 1.3.0.1-motley-40e35a7, simdutf8 4.0.8, ada 2.7.6, base64 0.5.2, corepack 0.25.2 등으로 버전 상향
Impact
아티클에 정량적 성능 수치가 명시되지 않았습니다.
Key Takeaway
API 변경 시 구 버전에서 신 버전으로의 명확한 마이그레이션 경로를 제공하면 사용자의 업그레이드 진입장벽을 낮출 수 있으며, 성능 회귀 문제는 런타임 옵션 상태와 기능 활성화 여부를 세밀하게 조정하여 해결할 수 있다.
실천 포인트
Node.js 프로젝트를
1
8.
2
0.0 이상으로 업그레이드하는 팀은 기존 import assertions 문법을 import attributes로 단계적으로 변환해야 하며, Jest 등 모듈 컴파일을 반복하는 도구를 사용하는 경우 이 버전부터 --experimental-vm-modules 플래그 없이도 캐시 성능을 회복할 수 있다.