Contents
see ListNode.js 24 개요
Node.js 24는 V8 엔진 13.6 업그레이드, Permission Model 안정화, npm 11 탑재 등 대규모 변경을 포함합니다. 2025년 10월 LTS로 전환되어 2028년 4월까지 지원됩니다.
V8 13.6 엔진의 새로운 JavaScript 기능
1. Float16Array
16비트 부동소수점 타입 배열이 추가되었습니다. 그래픽스, ML 추론 등 메모리 효율이 중요한 작업에 유용합니다.
// Float16Array - 16비트 부동소수점 배열
const f16 = new Float16Array([1.5, 2.7, 3.14]);
console.log(f16.byteLength); // 6 (각 요소 2바이트)
console.log(f16[2]); // 3.140625 (16비트 정밀도)
// Float32Array 대비 메모리 50% 절약
const f32 = new Float32Array(1000000); // 4MB
const f16arr = new Float16Array(1000000); // 2MB2. RegExp.escape()
정규식 특수문자를 안전하게 이스케이프하는 정적 메서드입니다.
// 사용자 입력을 정규식에 안전하게 사용
const userInput = "price: $100 (USD)";
const escaped = RegExp.escape(userInput);
console.log(escaped); // "price\:\ \$100\ \(USD\)"
// 동적 패턴 생성에 활용
function findExact(text, searchTerm) {
const pattern = new RegExp(RegExp.escape(searchTerm), 'gi');
return text.match(pattern);
}3. Error.isError()
객체가 실제 Error 인스턴스인지 확인하는 유틸리티입니다.
Error.isError(new Error('test')); // true
Error.isError(new TypeError('test')); // true
Error.isError({ message: 'fake' }); // false
Error.isError(null); // false4. Atomics.pause()
Worker 스레드에서 저수준 동시성 제어에 사용됩니다.
// spin-wait 루프에서 CPU 사이클 절약
const sharedBuffer = new SharedArrayBuffer(4);
const view = new Int32Array(sharedBuffer);
// Worker에서 값 변경 대기
while (Atomics.load(view, 0) === 0) {
Atomics.pause(); // CPU 힌트 - 바쁜 대기 최적화
}Permission Model 안정화
실험적이었던 Permission Model이 --permission 플래그로 안정화되었습니다.
# 파일 읽기만 허용 (쓰기 차단)
node --permission --allow-fs-read=/app/data server.js
# 네트워크 + 특정 디렉토리 읽기/쓰기
node --permission \
--allow-fs-read=/app \
--allow-fs-write=/app/logs \
--allow-net=api.example.com \
server.js글로벌 URLPattern
import 없이 바로 사용할 수 있는 URL 패턴 매칭입니다.
// 글로벌에서 바로 사용 가능
const pattern = new URLPattern({
pathname: '/api/users/:id'
});
const result = pattern.exec('https://example.com/api/users/42');
console.log(result.pathname.groups.id); // '42'
// Express 스타일 라우팅
const routes = [
{ pattern: new URLPattern({ pathname: '/api/posts/:id' }), handler: getPost },
{ pattern: new URLPattern({ pathname: '/api/users/*' }), handler: getUsers }
];Test Runner 개선
서브테스트 자동 대기가 적용되어 수동 await가 불필요합니다.
import { describe, it } from 'node:test';
import assert from 'node:assert';
describe('User API', () => {
// Node.js 24: 서브테스트가 자동으로 완료 대기
it('should create user', () => {
const user = createUser('test');
assert.strictEqual(user.name, 'test');
});
});npm 11
npm 11은 더 빠른 설치 속도와 강화된 보안 감사 기능을 제공합니다. 의존성 해석 알고리즘이 개선되어 설치 시간이 단축되었습니다.