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

Node.js 12.4.0이 JSON 모듈 지원을 정식화하고 HTTP 서버 타임아웃 제어·힙 프로파일링 기능을 추가해 개발자의 디버깅과 프로덕션 설정 옵션 확대

Node.js 12.4.0 (Current)

2019년 6월 4일5intermediate

Context

이전 Node.js 버전에서는 JSON 모듈 지원이 실험적 기능이었고, HTTP 서버 소켓 타임아웃이 2분으로 고정되어 있어 특정 워크로드의 타이밍을 조정할 수 없었다. 힙 프로파일링도 런타임 중에만 가능했다.

Technical Solution

  • JSON 모듈 API 문서를 실험적 단계에서 정식화: 전체 API 문서의 JSON 변수가 더 이상 실험적 표기 제거
  • ESM 환경에서 JSON 모듈 지원 항상 활성화: --experimental-modules 플래그만으로 작동하도록 변경, --experimental-json-modules 플래그 제거
  • HTTP/HTTP2 서버 소켓 타임아웃 제어 추가: --http-server-default-timeout=milliseconds 또는 --http-server-default-timeout=0 플래그로 타임아웃 변경 또는 비활성화 가능 (기본값 2분)
  • V8 힙 프로파일러 시작 시 실행 옵션 추가: --heap-prof 플래그로 시작 시 힙 프로파일러 시작하여 종료 전 디스크에 프로파일 기록
  • stream.readable.unshift() 메서드 문자열 변환 개선: 문자열을 버퍼로 정확히 변환하고, 인코딩 지정을 위한 선택적 인수 추가 (utf8, ascii 등)
  • v8.getHeapStatistics() 반환값 확장: number_of_native_contexts와 number_of_detached_contexts 두 가지 속성 추가

Key Takeaway

Node.js 12.4.0은 실험적 기능을 정식화하고 프로덕션 환경 제어(타임아웃, 프로파일링) 옵션을 세밀하게 추가함으로써 프레임워크의 안정성과 운영 유연성을 동시에 향상시키는 전략을 보여준다.


Node.js를 운영하는 환경에서 --http-server-default-timeout 플래그를 명시적으로 설정하면 마이크로서비스의 long-polling이나 스트리밍 요청 타이밍을 워크로드에 맞게 조정할 수 있으며, --heap-prof를 활성화하면 메모리 누수 진단 시 애플리케이션 재시작 없이 시작 단계부터 힙 프로파일을 수집할 수 있다.

원문 읽기