이 블로그는 이 글을 번역한 글입니다!
2020년 10월 20일 Node.js v15가 출시되었습니다.
그와함께 Node.js v14 가 LTS로 승격되었고, 2주마다 v15의 새 릴리즈를 기대할 수 있습니다. 홀수 버전인 v15는 LTS로 승격되지 않습니다. 이 점을 염두해 두세요. 일반적으로 프로덕션 레벨에서는 LTS버전을 사용하는것이 좋습니다.
Node.js v15.0.0을 다운로드 하려면 (본 글을 번역하는 중에는 v15.0.2가 최신입니다.)
https://nodejs.org/en/download/current/ 에서 다운받을 수 있습니다.
추가로 릴리즈에 포함 된 커밋 목록은 https://nodejs.org/en/blog/release/v15.0.0 에서 찾을 수 있습니다.
Node.js v15에서는 AbortController
의 향상된 경험을 제공합니다. AbortController
는 웹 API를 AbortController
기반으로 Promise기반 API에서 취소 신호를 보내는데 사용되는 전역 유틸리티 클래스입니다.
const ac = new AbortController();
ac.signal.addEventListener('abort', () => console.log('Aborted!'),
{ once: true });
ac.abort();
console.log(ac.signal.aborted); // Prints True
위의 예제에서 abort
이벤트는 ac.abort()
를 호출 할 때 발생합니다.
AbortController
는 abort
이벤트가 한번만 트리거 합니다.
이벤트 리스너는 AbortSignal
에 { once: true }
옵션을 사용하여 abort
이벤트가 처리된 후 이벤트 리스너를 제거해야 합니다.
자세한 내용은 Node.js API문서를 참고하세요.
새로운 N-API버전을 다른 LTS Node.js버전으로 백포트하는동안 N-API7은 마지막 주요 릴리즈 이후 새로운 기능이며 ArrayBuffers
작업을위한 추가 메서드를 제공한다 알려드릴 가치가 있습니다.
Node.js 15는 npm7의 새로운 주요 릴리즈와 함께 제공됩니다. npm7 에는 npm 작업 영억 및 새로운 package-lock.json
형식을 비롯한 새로운 많은 기능이 제공됩니다. npm7에는 yarn.lock
파일도 지원합니다.
npm 7의 가장 큰 변화는 이제 피어 종속성이 기본으로 설치된다는 점입니다. npm7 릴리즈에대한 주요한 새로운 변경사항은 GitHub 블로그를 확인해주세요.
Node.js 15 부터의 기본 모드는 unhandledRejection
에서 throw
로 변경되었습니다.
만약 unhandledRejection
훅이 설정되어있지 않다면, unhandledRejection
이 잡히지 않은 예외로 처리됩니다. unhandledRejection
후크가 있는 사용자는 동작의 변화를 볼 수 없으며, -- unhandled-rejections=mode
프로세스 플래그를 사용하여 모드를 전환할 수 있습니다.
Node.js는 UnhandledPromiseRejectionWarning
가 기본으로 많은 릴리즈에 대해 배포되었으며, Node.js User Insight: Unhandled Promise Rejection설문조사의 결과와 와지막 Node.js Technical Steering의 결과를 기반으로 위원회 투표를 거쳐 throw
처리하기로 결정하였습니다. 이 결정을 추진해 주신 Mary Marchini에게 특별히 감사드립니다.
QUIC는 HTTP/3 의 기본 전송 프로토콜인 UDP기반 전송 프로토콜 입니다. QUIC는 TLS 1.3, 흐름 제어, 오류 수정, 연결 마이그레이션 및 멀티 플렉싱을 통해 내장 보안 기능을 제공합니다.
Node.js v15는 실험적으로 QUIC와 함께 지원되며 --experimental-quic
를 통하여 Node.js를 컴파일하며 활성화 할 수 있습니다. Node.js QUIC구현은 코어 net
모듈에 의해 참조할 수 있습니다.
const { createQuicSocket } = require('net');
QUIC에 대한 자세한 정보는 Node.js 문서를 참고해주세요.
V8 JavaScript 엔진이 V8.8.6으로 업데이트 되었습니다. (V8.8.4는 Node.js v14에서 사용가능한 최신버전입니다)
성능 조정 및 개선과 함께 V8 업데이트는 다음 언어기능도 제공합니다.
Promise.any()
— MDN (V8.8.5부터)AggregateError
— MDN (V8.8.5부터)String.prototype.replaceAll()
— MDN (V8.8.5에서)&&=,||=,
및 ??=
— MDN (V8.8.5부터)공식 블로그에서 V8에 대해 자세히 알아보세요.
Node.js에 새로운 기능을 추가하는 것 외에도 기여 프로세스를 개선하는데 초점을 두었습니다. 올해 프로젝트는 개선 대상 영역을 결정하는데 기여 프로세스에 대한 피드백을 수집하기 위해 Node.js 기여자 설문조사를 실시했습니다.
자동화 및 툴링도 개선되었습니다. 이제 GitHub레이블을 추가하는 것만으로 CI실행을 시작하고 커밋을 시작할 수 있으므로 공동 작업자가 Pull Request의 지속적인 흐름을 더 쉽게 관리할 수 있습니다.
작년은 Node.js의 10주년이었고, 이 프로젝트는 Node.js 다음 10년 노력을 시작했습니다. 이 노력의 목표는 Node.js의 첫 10년 동안 성공으로 이어진 요인을 반영하고 다음 10년 동안의 성공 방향을 설정하는 것입니다.
프로젝트의 기술적 가치, 지지자 및 요구 사항을 살펴보는 것으로 시작되었습니다. 향후 논의를 위한 기초를 설정하고 지금까지의 결과 중 하나는 우리의 노력을 안내하기 위해 기술적 문서를 만들었다는 것입니다.
새로운 Node.js v15릴리즈를 사용해보세요. 우리는 여러분의 피드백을 들으면 기쁩니다. 또한 최신 Node.js 기능 및 변경 사항과 프로젝트의 향후 호환성을 보장하기 위해 Node.js v15로 어플리케이션과 모듈을 테스트해볼 가치가 있습니다.
이제는 다음 주에 LTS로 승격 될 Node.js v14 (지금 현재는 되었음)로의 업그레이드를 계획을 시작할 좋은 시기이기도 합니다. Node.js v14는 2023년 4월까지 계속 지원됩니다.
또한 Node.js v10은 2021년 4월에 단종 될 예정이므로 Node.js v10을 계속 사용하는 경우 업그레이드 계획을 시작하는것이 좋습니다.
Node.js의 타임 라인은 Node.js 출시일정을 확인해보세요.
많은 Node.js 기여자 및 공동 작업자를 포함하여 이 릴리즈를 만든 모든 사람들에게 감사드립니다. 또한 Node.js 릴리즈를 유지 관리하고 생산하는 Node.js 릴리즈 워킹 그룹과 프로젝트 인프라를 계속 실행하는 Node.js빌드 워킹그룹에 특별한 감사의 말씀을 드립니다.
Node.js V15.0.0을 다운로드 하려면 https://nodejs.org/en/download/current/를 방문하세요. 마찬가지로 이 릴리즈에 포함된 커밋 목록은
https://nodejs.org/en/blog/release/v15.0.0/에서 찾을 수 있습니다.
참고: v15.0.0에서 암호화 회귀를 수정하는 v15.0.1을 사용할 수 있습니다.