피드로 돌아가기
Node.js 14.15.2 (LTS)
Node.js BlogNode.js Blog
Backend

Node.js가 npm 6.14.9, acorn 8.0.4 업그레이드 및 AsyncLocalStorage 메모리 누수 패치로 LTS 14.15.2 릴리스

Node.js 14.15.2 (LTS)

2020년 12월 15일5beginner

Context

Node.js 14 LTS 버전 운영 중 의존성 패키지의 보안 업데이트 필요성과 AsyncLocalStorage에서 발생하는 메모리 누수 문제, HTTP/2 스트림 처리의 회귀 버그를 해결해야 했습니다.

Technical Solution

  • npm을 6.14.8에서 6.14.9로 업그레이드하여 패키지 관리자의 보안 및 안정성 개선
  • acorn 파서를 v8.0.4로 업데이트하고 ecmaVersion 2021 지원 활성화
  • AsyncLocalStorage의 exit 경로에서 발생하는 메모리 누수 수정 (#35779)
  • HTTP/2 write 스케줄링 상태를 scope destructor에서 확인하는 검증 로직 추가 (#36241)
  • duplex 스트림의 end 이벤트 처리 회귀 버그 수정 (#35941)
  • assert, async_hooks, bootstrap, cluster, console 모듈을 primordials 사용으로 리팩토링
  • 빌드 시스템에서 which 명령어를 command -v로 대체하고 Python 3.x 호환성 개선
  • 벤치마크 도구를 Node 10 이상 지원으로 확장 및 startup 성능 벤치마크 추가

Impact

아티클에 정량적 성능 수치가 명시되지 않았습니다.

Key Takeaway

LTS 릴리스에서는 보안 업데이트와 버그 수정에 중점을 두되, 내부 코드 리팩토링(primordials 도입)을 통해 보안성과 메모리 효율성을 동시에 개선할 수 있습니다. 특히 비동기 작업의 메모리 누수와 스트림 처리 버그는 프로덕션 환경의 장기 안정성에 직결되므로 우선적으로 처리해야 합니다.


Node.js 기반 서비스를 운영 중인 팀에서

1

4.

1

5.2 LTS 이상으로 업그레이드하면, AsyncLocalStorage를 사용하는 컨텍스트 추적 로직에서의 예기치 않은 메모리 누수를 방지하고, HTTP/2 스트림 처리의 안정성을 확보할 수 있습니다. 특히 장시간 실행되는 백엔드 서버에서는 누적 메모리 누수 문제 해결로 안정성이 향상됩니다.

원문 읽기