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은 더 빠른 설치 속도와 강화된 보안 감사 기능을 제공합니다. 의존성 해석 알고리즘이 개선되어 설치 시간이 단축되었습니다.
javascript
| No | 작성일 | Title |
|---|---|---|
| 3384 | 2026. 08. 21. | Node.js API에서 요청 취소를 제대로 처리하는 방법: AbortSignal로 외부 작업 정리하기 |
| 3352 | 2026. 08. 13. | Node.js 응답이 간헐적으로 느릴 때: 이벤트 루프 지연 측정과 CPU 작업 분리 방법 |
| 3320 | 2026. 08. 04. | JavaScript fetch 요청을 안전하게 만드는 방법: timeout·재시도·오류 처리 실전 패턴 |
| 3288 | 2026. 07. 27. | Node.js 서버 무중단 배포를 위한 Graceful Shutdown 구현 가이드 |
| 3257 | 2026. 07. 19. | Node.js 대용량 파일 처리 가이드: 스트림과 backpressure로 메모리 사용량 제어하기 |
| 3232 | 2026. 07. 11. | Node.js 실무형 에러 처리: async/await에서 실패를 일관되게 분류하고 복구 속도 높이기 |
| 3174 | 2026. 07. 02. | Node.js 환경 변수 검증 가이드: process.env를 안전한 설정 객체로 바꾸기 |
| 3123 | 2026. 06. 24. | TypeScript 타입 좁히기 운영 가이드: unknown 입력을 안전한 도메인 객체로 바꾸기 |
| 3065 | 2026. 06. 16. | 브라우저 성능 병목 찾기: PerformanceObserver로 LCP·INP·긴 작업 로그 수집하기 |
| 2978 | 2026. 06. 08. | Node.js fetch 타임아웃과 재시도 설계: 외부 API 장애 전파 줄이기 |