피드로 돌아가기
Node.js BlogBackend
원문 읽기
Node.js 19 릴리스로 V8 10.7 업그레이드, HTTP/1.1 KeepAlive 기본 활성화, WebCrypto API 안정화 달성
Node.js 19 is now available!
AI 요약
Context
Node.js 18이 장기 지원(LTS) 단계로 전환되면서 최신 런타임 버전으로의 업그레이드 필요성이 대두되었습니다. 기존 Node.js 버전은 HTTP 연결 재사용 설정이 기본 비활성화되어 있어 네트워크 처리량 최적화의 여지가 있었습니다.
Technical Solution
- V8 JavaScript 엔진을 버전 10.7로 업그레이드: Chromium 107 기반 적용으로 Intl.NumberFormat v3 API 지원 추가
- HTTP(S)/1.1 KeepAlive를 기본값 true로 활성화: 아웃바운드 연결이 자동으로 Keep-Alive를 사용하도록 설정하고 기본 유지 시간 5초 구성
- 서버 KeepAlive 응답 헤더 파싱 기능 추가: 서버가 제시한 Keep-Alive 지시사항에 따라 클라이언트 연결 유지 시간 동적 조정
- HTTP 서버 자동 연결 정리 기능 도입: close() 호출 시 유휴 클라이언트 자동 종료로 리소스 누수 방지
- WebCrypto API 안정화(Ed25519, Ed448, X25519, X448 제외): globalThis.crypto 또는 require('node:crypto').webcrypto로 접근 가능
- Watch 모드 지원: node --watch 옵션으로 임포트된 파일 변경 시 프로세스 자동 재시작
- 실험 플래그 제거: --experimental-specifier-resolution 제거 및 커스텀 로더를 통한 기능 제공으로 API 간소화
- npm 7.24.2, npm 9.0.0 번들 포함
Impact
HTTP Keep-Alive 기본 활성화로 아웃바운드 연결의 처리량과 성능 향상(정량적 수치는 미제시).
Key Takeaway
HTTP 프로토콜 레벨의 연결 재사용을 기본값으로 설정함으로써 명시적 최적화 없이도 애플리케이션의 네트워크 효율성을 자동으로 개선할 수 있습니다. 또한 주요 API의 안정화(WebCrypto)와 Watch 모드 같은 개발자 경험 개선 기능을 함께 제공하여 신버전 채택을 촉진합니다.
실천 포인트
Node.js 기반 마이크로서비스 환경에서 버전 19로 업그레이드 시 HTTP/
1.1 KeepAlive 기본 활성화로 인한 자동 연결 재사용으로 아웃바운드 요청의 소켓 생성 오버헤드를 줄일 수 있습니다. Watch 모드를 개발 환경에서 활용하면 파일 변경 감지 자동화로 개발 사이클을 단축할 수 있으며, 안정화된 WebCrypto API를 사용하면 외부 라이브러리 의존성을 감소시킬 수 있습니다.