피드로 돌아가기
Node.js BlogBackend
원문 읽기
Node.js 11.11.0이 N-API 날짜 객체 구현, util.inspect() 컴팩트 깊이 모드, 워커 스레드 네이티브 애드온 통합 등 20개 이상의 기능 추가 및 버그 수정으로 릴리스
Node.js 11.11.0 (Current)
AI 요약
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++ 간 날짜 데이터 변환 로직을 단순화할 수 있으며, 워커 스레드 환경에서의 네이티브 애드온 호환성이 개선되어 멀티스레드 병렬 처리 구현 시 런타임 에러를 줄일 수 있습니다.