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

Node.js 25.6.1이 cjs-module-lexer를 merve로 교체하고 npm을 11.9.0으로 업그레이드하며 HTTP 헤더 파싱에 slab 할당을 도입한 성능 개선 릴리스

Node.js 25.6.1 (Current)

2026년 2월 10일5intermediate

Context

Node.js 런타임은 지속적으로 CommonJS 모듈 해석, HTTP 요청 처리, 메모리 할당 효율성 측면에서 개선이 필요했다. 특히 HTTP 헤더 파싱 시 메모리 할당과 구조화된 복제(structured clone) 구현에서 불필요한 힙 할당이 발생하고 있었다.

Technical Solution

  • cjs-module-lexer를 merve로 교체: CommonJS 모듈 어휘 분석 도구 변경으로 모듈 해석 성능 개선
  • HTTP 헤더 파싱에 slab 할당 도입: 메모리 재사용 풀 방식으로 요청당 할당 빈도 감소
  • 구조화된 복제 구현의 힙 할당 제거: Anna Henningsen이 structured clone에서 불필요한 메모리 할당 제거
  • simdutf를 활용한 UTF-8 문자열 쓰기 최적화: 단일 바이트 문자열 처리 시 SIMD 연산 적용
  • 모듈 레졸브 훅 중복 호출 제거: imported CommonJS에 대해 resolve 훅이 두 번 실행되던 문제 해결
  • npm 11.9.0 업그레이드: 패키지 관리자 기능 개선 및 의존성 보안 업데이트
  • 다양한 의존성 업데이트: undici 7.21.0, amaro 1.1.7, minimatch 10.1.2, googletest 56efe39, OpenSSL 3.5.5
  • Windows SRV DNS 연결 오류 수정: c-ares fallback detection 로직으로 ECONNREFUSED 해결
  • SQLite 바인드 메모리 복사 제거: 대용량 텍스트 바인드 시 추가 복사 단계 제거
  • SQLite run() 결과에 DictionaryTemplate 적용: 메모리 구조 최적화

Impact

아티클에 정량적 성능 수치(레이턴시 감소, 처리량 증가, 메모리 절감 비율 등)가 명시되지 않았다.

Key Takeaway

Node.js와 같은 대규모 런타임은 모듈 해석, HTTP 처리, 메모리 할당 같은 기본 작업에서의 작은 최적화를 누적하여 전반적 성능을 향상시킨다. 의존성 도구를 더 효율적인 대안으로 교체하고 내부 구현에서 불필요한 할당을 제거하는 것이 효율성 개선의 핵심이다.


Node.js 기반 백엔드 애플리케이션 개발 시

2

5.

6.1 이상으로 업그레이드하면 HTTP 헤더 파싱 성능과 모듈 로딩 속도가 개선되며, 특히 고빈도 요청 처리나 CommonJS 모듈을 많이 사용하는 프로젝트에서 런타임 오버헤드가 감소할 것으로 예상된다.

원문 읽기