피드로 돌아가기
Node.js 13.7.0 (Current)
Node.js BlogNode.js Blog
Backend

Node.js 13.7.0 릴리스에서 libuv 1.34.1 업그레이드, npm 6.13.6 업그레이드, 소스맵 상호작용 API 추가, 조건부 내보내기 활성화로 런타임 안정성 및 모듈 시스템 개선

Node.js 13.7.0 (Current)

2020년 1월 21일5intermediate

Context

Node.js는 의존성 라이브러리의 보안 패치 및 기능 개선, 모듈 시스템의 실험적 기능 안정화, 비동기 작업 모니터링 기능 부족으로 인한 디버깅 어려움을 해결해야 했다.

Technical Solution

  • libuv 1.34.1로 업그레이드: 저수준 비동기 I/O 라이브러리의 안정성 및 성능 개선
  • npm 6.13.6으로 업그레이드: 패키지 매니저의 보안 패치 및 버그 수정
  • 모듈 시스템에 소스맵 상호작용 API 추가: bcoe가 구현한 #31132를 통해 디버깅 및 에러 스택 추적 개선
  • 조건부 내보내기 활성화(unflag): Guy Bedford의 #31001을 통해 package.json의 exports 필드를 정식 기능으로 전환
  • 로더 훅 추가: getSource, getFormat, transform 훅으로 모듈 로딩 프로세스에 대한 세밀한 제어 가능
  • uncaughtException 모니터링 기능 추가: Gerhard Stoebich의 #31257을 통해 프로세스 레벨의 예외 감시 기능 확대
  • 라이브러리 내부 최적화: BigInt64Array, BigUInt64Array, Float32Array, Uint16Array, RegExp 등의 전역 객체를 primordials로 교체하여 프로토타입 오염 공격 방어

Impact

아티클에 정량적 성능 지표가 명시되지 않음.

Key Takeaway

Node.js 코어 릴리스에서는 의존성 라이브러리의 정기적 업그레이드, 실험적 기능의 단계적 안정화(unflag), 저수준 라이브러리(V8, libuv)의 cherry-pick 패치를 통해 런타임 안정성과 개발자 경험을 동시에 향상시킨다.


Node.js 기반 애플리케이션을 운영하는 팀에서

1

3.

7.0 업그레이드 시 조건부 내보내기 기능을 활성화하면 package.json exports 필드로 모듈 진입점을 명시적으로 제어할 수 있으며, 소스맵 API를 활용하면 프로덕션 환경에서의 스택 트레이스 정확도를 개선할 수 있다.

원문 읽기