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

Node.js 20.18.0이 실험적 네트워크 검사 기능과 TLS 개선 사항을 추가해 JavaScript 애플리케이션의 네트워크 모니터링 및 인증서 관리 기능 확장

Node.js 20.18.0 (LTS)

2024년 10월 3일5intermediate

Context

Node.js 애플리케이션 개발 시 네트워크 활동을 직접 검사할 수 있는 기본 제공 도구가 없어 외부 프록시나 패킷 분석 도구에 의존해야 했다. TLS 인증서 체인 검증 시 중간 인증서(비자체 서명)를 신뢰 목록으로 취급할 수 없어 특정 PKI 구조에서 유연성이 제한되었다. vm.createContext() 사용 시 전역 객체 contextification으로 인해 성능 저하나 컨텍스트 동결 불가능 문제가 발생했다.

Technical Solution

  • 네트워크 검사 기능 추가: --experimental-network-inspection 플래그로 활성화하여 JavaScript 애플리케이션 내 네트워크 활동 실시간 검사 가능
  • TLS 인증서 정책 확장: tls.createSecureContext({ allowPartialTrustChain: true }) 옵션으로 신뢰 CA 인증서 목록의 중간 인증서를 신뢰 대상으로 처리
  • VM 컨텍스트 최적화: vm.constants.DONT_CONTEXTIFY 상수를 사용하여 전역 객체 contextification 없이 컨텍스트 생성 가능

Key Takeaway

Node.js 런타임 수준의 기능 확장은 개발자 생산성과 런타임 성능을 동시에 개선할 수 있는 방식으로, 네트워크 모니터링·보안·성능 영역에서 선택적 opt-in 설계(플래그/상수 기반)를 통해 기존 호환성을 유지하면서 신규 기능 도입이 가능함을 보여준다.


Node.js 애플리케이션을 운영하는 팀에서 --experimental-network-inspection 플래그를 활성화하면 APM 도구 없이도 네트워크 요청·응답을 애플리케이션 수준에서 검사할 수 있고, TLS 기반 마이크로서비스 인증서 정책이 복잡한 환경에서는 allowPartialTrustChain 옵션을 사용하여 인증서 체인 관리 로직을 단순화할 수 있으며, 성능이 중요한 워커 스레드나 격리된 컨텍스트에서는 DONT_CONTEXTIFY를 사용해 전역 객체 접근 지연을 제거할 수 있다.

원문 읽기