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

Node.js 12.19.0 LTS가 async_hooks 성능 최적화, crypto 신규 함수 추가, 의존성 업그레이드로 안정성과 기능성 확대

Node.js 12.19.0 (LTS)

2020년 10월 6일12intermediate

Context

Node.js 12.x 시리즈는 LTS 버전으로서 장기간 안정적인 서비스를 제공해야 하므로, 성능 회귀 방지, 보안 취약점 해결, 의존성 최신화가 지속적으로 필요했다.

Technical Solution

  • async_hooks에서 AsyncResource 불필요한 생성 제거: 가비지 컬렉션 추적 오버헤드 감소
  • async_hooks 리소스 스택 성능 개선: 깊은 호출 스택(deep stacks)에서 성능 저하 현상 해결
  • async_hooks destroy 훅 조기 실행: 리소스 정리 타이밍 개선으로 메모리 누수 방지
  • AsyncResource.bind 유틸리티 신규 추가: 비동기 컨텍스트 바인딩 기능 확장
  • crypto.randomInt() 함수 신규 추가: 정수 범위 내 난수 생성 기능 제공
  • crypto KeyObject postMessage 지원: Worker 스레드 간 암호화 키 직렬화 가능
  • 의존성 업그레이드: V8 cherry-pick, libuv 1.39.0, npm 6.14.8, brotli 1.0.9, OpenSSL arm64 지원 추가
  • PowerShell TLS 1.2 강제: Windows 환경에서 보안 프로토콜 최소 버전 지정
  • buffer 메서드 명명 규칙 정렬: UInt → Uint, BigUInt 메서드 별칭 추가

Impact

정량적 수치가 아티클에 명시되지 않았음.

Key Takeaway

LTS 버전의 유지보수는 보안 업데이트와 의존성 최신화 외에도, 코어 모듈(async_hooks, crypto)의 내부 성능 최적화와 신규 기능 추가를 균형있게 병행해야 장기적 신뢰성과 개발 생산성을 동시에 확보할 수 있다.


Node.js

1

2.x를 사용하는 프로덕션 환경에서는

1

2.

1

9.0 이상으로 업그레이드하여 async_hooks 오버헤드 감소로 고빈도 비동기 작업의 지연시간을 단축하고, crypto.randomInt()를 활용해 기존 Math.random() 기반의 난수 생성 코드를 교체하면 암호학적으로 안전한 정수 난수를 얻을 수 있다.

원문 읽기