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

Node.js 12.18.3 LTS 릴리스에서 async_hooks 콜백 트램폴린 개선, npm 6.14.6 업그레이드, DNS 타임아웃 설정 기능 추가 등 147개 커밋을 통한 보안 및 안정성 강화

Node.js 12.18.3 (LTS)

2020년 7월 22일5intermediate

Context

Node.js 12 LTS 버전의 유지보수 단계에서 async_hooks 콜백 처리의 신뢰성 문제, DNS 리졸버의 고정된 타임아웃 동작, 그리고 npm 패키지 매니저의 보안 업데이트 필요성이 있었다.

Technical Solution

  • async_hooks의 MakeCallback에 콜백 트램폴린(callback trampoline) 적용: 콜백 실행의 컨텍스트 안정성 개선
  • dns.Resolver 타임아웃을 설정 가능하도록 변경: 애플리케이션별 DNS 쿼리 타임아웃 커스터마이징 지원
  • npm을 6.14.6으로 업그레이드: 의존성 패키지의 보안 취약점 해결
  • uvwasi 체리픽 커밋 9e75217 적용: WASM 시스템 인터페이스 안정성 개선
  • node-inspect를 v2.0.0으로 업데이트: 디버깅 도구 기능 강화
  • console 함수 명명 규칙 정규화 및 특수 속성을 비열거형으로 표시: console API 일관성 개선
  • 빌드 시스템에 --v8-lite-mode 플래그 추가: MIPS 타겟의 바이트 순서 설정 및 라이트 모드 지원
  • crypto 모듈의 오류 메시지 수정: 개발자 진단 정확성 개선

Key Takeaway

LTS 버전 유지보수에서는 새로운 기능 추가보다 기존 기능의 설정 가능성 확대(DNS 타임아웃), 하위 의존성 보안 업데이트(npm), 그리고 런타임 안정성 개선(async_hooks 트램폴린)이 우선되며, 이는 프로덕션 환경의 장기 운영 안정성을 확보하는 핵심 전략이다.


Node.js 12 LTS를 사용하는 프로덕션 서비스에서 v

1

2.

1

8.3으로 업그레이드할 때, 특히 DNS 쿼리를 수행하는 애플리케이션은 Resolver의 새로운 타임아웃 설정을 활용하여 네트워크 상황에 따라 타임아웃 값을 조정할 수 있으며, async_hooks를 활용한 컨텍스트 추적이 있는 애플리케이션은 콜백 트램폴린 개선으로 안정성이 높아진다.

원문 읽기