피드로 돌아가기
Node.js BlogBackend
원문 읽기
Node.js 15.3.0이 DNS Promise Resolver에 cancel() 메서드, HTTP/HTTP2에 AbortSignal 지원, 그리고 5개 신규 모듈 알리아스를 추가해 비동기 작업 제어 강화
Node.js 15.3.0 (Current)
AI 요약
Technical Solution
- DNS Promise Resolver에 cancel() 메서드 추가: Promise 기반 DNS 조회 작업을 명시적으로 취소 가능하게 구현
- HTTP/HTTP2에 AbortSignal 지원 확대: http.request()와 http2Session.request()에서 표준 AbortSignal API로 요청 중단 제어
- EventTarget에 최대 리스너 경고 추가: 이벤트 리스너 과다 등록 시 경고 메시지 발생으로 메모리 누수 조기 감지
- HTTP2 세션의 로컬 윈도우 크기 설정 기능: 세션 레벨에서 흐름 제어(flow control) 파라미터 동적 조정
- 경로 모듈 알리아스 4개 추가: path/posix, path/win32, util/types 모듈을 공식 API로 제공해 플랫폼별 경로 처리 명시화
- fs.f/l/statSync에 throws 옵션 추가: 파일 상태 조회 실패 시 예외 발생 또는 false 반환 선택 가능
- readline의 getPrompt() 메서드 추가: 현재 프롬프트 텍스트를 런타임에 조회 가능
- 진단 리포트에 이벤트 루프 유휴 시간 메트릭 포함: 루프 성능 분석용 idle time 데이터 추가
- npm을 7.0.11 이상으로 업그레이드: 의존성 관리 및 설치 성능 개선
- V8 엔진 4개 패치 적용: 메모리 최적화 및 실행 성능 개선 관련 cherry-pick 업데이트
실천 포인트
Node.js 기반 서비스에서 외부 API 호출(HTTP), DNS 조회, 장시간 실행 작업을 수행할 때 AbortSignal과 cancel() 메서드를 적극 활용하면 타임아웃 처리 및 리소스 정리를 표준화된 방식으로 구현할 수 있다. 특히 요청 취소 시 자동으로 관련 소켓과 메모리가 해제되어 메모리 누수를 방지할 수 있다.