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

Node.js 11.11.0이 N-API 날짜 객체 구현, util.inspect() 컴팩트 깊이 모드, 워커 스레드 네이티브 애드온 통합 등 20개 이상의 기능 추가 및 버그 수정으로 릴리스

Node.js 11.11.0 (Current)

2019년 3월 6일5intermediate

Context

Node.js는 지속적으로 JavaScript 런타임 기능을 확장하고 네이티브 확장 모듈과의 호환성을 개선해야 하는 상황에 직면해 있습니다. 특히 워커 스레드 환경에서의 네이티브 애드온 통합과 N-API의 기능 확장이 필요했습니다.

Technical Solution

  • N-API에 날짜 객체(Date Object) 구현 추가: napi_create_date() 및 관련 함수로 JavaScript Date를 C/C++에서 직접 처리 가능하도록 변경
  • util.inspect()에 컴팩트 깊이 모드(compact depth mode) 추가: 깊게 중첩된 객체의 출력 형식을 조절하기 위한 옵션 확장
  • 워커 스레드와 네이티브 애드온 통합 개선: MessagePort.prototype.onmessage가 Web 스펙에 더 가깝게 인자를 수용하도록 변경
  • 버퍼 생성 시 ArrayBuffer 구체화 방지: 메모리 최적화를 위해 메모리 할당 방식 개선
  • HTTP/2 메모리 사용량 최적화: 읽은 데이터에 맞춰 메모리 할당 크기 축소
  • 모듈 stat 캐시 버그 수정: 모듈 로드 성능에 영향을 미치는 캐시 동작 정정
  • 암호화 관련 버그 수정: DER PKCS8 파싱, Verify::VerifyFinal 에러 조건, ConvertKey openssl 에러 스택 정리

Key Takeaway

Node.js 11.11.0은 N-API와 워커 스레드를 중심으로 한 런타임 기능 확장과 메모리/성능 최적화를 통합했으며, 이는 네이티브 확장 개발자와 고성능 서버 애플리케이션 개발자에게 더 나은 도구와 안정성을 제공합니다.


Node.js를 활용한 네이티브 C/C++ 바인딩 개발 팀에서는 N-API의 새로운 날짜 객체 기능을 통해 JavaScript와 C/C++ 간 날짜 데이터 변환 로직을 단순화할 수 있으며, 워커 스레드 환경에서의 네이티브 애드온 호환성이 개선되어 멀티스레드 병렬 처리 구현 시 런타임 에러를 줄일 수 있습니다.

원문 읽기