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

Node.js 22.17.0 LTS가 IncomingMessage/ServerResponse 생성자 호출 규칙 명확화, HTTP/2 우선순위 API 폐기, assert.partialDeepStrictEqual() 안정화로 API 일관성과 보안 강화

Node.js 22.17.0 (LTS)

2025년 6월 24일12intermediate

Context

Node.js에서 IncomingMessage나 ServerResponse 같은 핵심 클래스를 new 키워드 없이 호출하는 패턴이 표준 JavaScript 동작과 맞지 않았다. HTTP/2 우선순위 API(stream.priority)는 실제 환경에서 지원이 불충분해 유지보수 부담이 증가했다.

Technical Solution

  • IncomingMessage 및 ServerResponse 클래스에 new 키워드 필수 요구: 향후 버전에서 경고 또는 오류 발생 예정
  • HTTP/2 우선순위 API(stream.priority 등) 폐기: 실제 지원이 불충분하여 향후 완전히 제거될 예정
  • assert.partialDeepStrictEqual() 안정화: 깊은 객체 비교에서 속성 부분집합만 비교하는 기능을 공식 지원으로 전환
  • shell 매개변수 빈 문자열 처리 변경: 명시적 선택(shell: true 또는 셸 경로)을 강요하여 구현 특이성 제거
  • fs.Dirent 관련 API 확대: dirent.parentPath, Readable.iterator(), readable.compose() 등으로 파일시스템 비동기 반복 개선
  • 권한 모델 개선: 진입 파일에 대한 읽기 접근 기본 허용으로 권한 제한 앱 실행 용이
  • 스트림 리소스 관리 강화: stream.autoClose 명시적 제어, stream.finished() 옵저버빌리티 추가, readable.readableAborted 등 상태 추적 속성 추가

Key Takeaway

Node.js 22.17.0 LTS는 API 표준화, 사용 중단 알림, 기능 안정화를 통해 개발자가 표준 JavaScript 관례를 따르도록 유도하고 장기적 호환성을 보장하는 방향으로 진화하고 있다.


Node.js 애플리케이션을 운영하는 팀에서 HTTP/2를 사용 중이라면 stream.priority() 호출을 감사하고 우선순위 힌트 의존성을 제거해야 한다. 폐기 예정 API를 미리 제거하면

2

2.

1

7.0 이후 장기 지원 버전으로의 전환이 매끄럽다.

원문 읽기