Contents
see ListES2025(ECMAScript 2025) 주요 변경사항
2025년 6월 정식 승인된 ES2025는 Promise.try, Iterator Helpers, Set 메서드, Float16Array 등 실무에서 바로 활용할 수 있는 기능들을 대거 포함했다. 2026년 현재 주요 브라우저와 Node.js 22+에서 대부분 지원된다.
1. Promise.try() - 동기/비동기 에러 통합 처리
Promise.try()는 동기 함수든 비동기 함수든 동일한 Promise 체인으로 에러를 처리할 수 있게 해준다. 기존에는 try-catch와 .catch()를 섞어야 했던 패턴을 깔끔하게 정리할 수 있다.
// Before: 동기 에러가 catch에 잡히지 않음
function getUser(id) {
if (!id) throw new Error("ID required"); // 이 에러는 .catch가 못 잡음
return fetch("/api/users/" + id).then(r => r.json());
}
getUser(null).catch(console.error); // Uncaught Error!
// After: Promise.try로 통합
Promise.try(() => getUser(null))
.then(user => console.log(user))
.catch(err => console.error("잡힘:", err.message));
// 출력: "잡힘: ID required"
// 실전 예시: DB 조회 함수
function queryDatabase(sql) {
return Promise.try(() => {
if (!sql.trim()) throw new Error("빈 쿼리");
return db.execute(sql); // 비동기
});
}
queryDatabase("")
.catch(err => console.log(err.message)); // "빈 쿼리"2. Iterator Helpers - 내장 이터레이터 메서드
배열의 map/filter/reduce처럼, 모든 이터레이터에서 직접 체이닝 메서드를 사용할 수 있다. 중간 배열을 생성하지 않아 메모리 효율이 뛰어나다.
// 이터레이터에서 직접 map, filter, take 사용
function* fibonacci() {
let a = 0, b = 1;
while (true) {
yield a;
[a, b] = [b, a + b];
}
}
// 피보나치 수열에서 짝수만 5개 추출
const result = fibonacci()
.filter(n => n % 2 === 0)
.take(5)
.toArray();
console.log(result); // [0, 2, 8, 34, 144]
// Map 엔트리 처리
const prices = new Map([["사과", 1500], ["바나나", 2000], ["포도", 5000]]);
const expensive = prices.entries()
.filter(([_, price]) => price >= 2000)
.map(([name, price]) => name + ": " + price + "원")
.toArray();
console.log(expensive); // ["바나나: 2000원", "포도: 5000원"]
// drop, forEach, some, every, find, reduce도 지원
const sum = fibonacci()
.take(10)
.reduce((acc, n) => acc + n, 0);
console.log(sum); // 883. Object.groupBy / Map.groupBy
배열을 특정 기준으로 그룹화하는 기능이 내장되었다. Lodash의 groupBy를 대체한다.
const products = [
{ name: "노트북", category: "전자기기", price: 1200000 },
{ name: "키보드", category: "주변기기", price: 89000 },
{ name: "모니터", category: "전자기기", price: 450000 },
{ name: "마우스", category: "주변기기", price: 35000 },
];
// Object.groupBy - 일반 객체 반환
const grouped = Object.groupBy(products, p => p.category);
console.log(grouped);
// {
// 전자기기: [{name: "노트북"...}, {name: "모니터"...}],
// 주변기기: [{name: "키보드"...}, {name: "마우스"...}]
// }
// Map.groupBy - Map 반환 (비문자열 키 사용 가능)
const byPriceRange = Map.groupBy(products, p =>
p.price >= 500000 ? "고가" : "저가"
);
console.log(byPriceRange.get("고가")); // [노트북, 모니터]4. 새로운 Set 메서드
Set에 집합 연산 메서드가 추가되어 수학적 집합 연산을 간단하게 수행할 수 있다.
const frontend = new Set(["React", "Vue", "Angular", "Svelte"]);
const popular = new Set(["React", "Vue", "Next.js", "Express"]);
// 합집합
frontend.union(popular);
// Set {"React", "Vue", "Angular", "Svelte", "Next.js", "Express"}
// 교집합
frontend.intersection(popular);
// Set {"React", "Vue"}
// 차집합
frontend.difference(popular);
// Set {"Angular", "Svelte"}
// 대칭차집합
frontend.symmetricDifference(popular);
// Set {"Angular", "Svelte", "Next.js", "Express"}
// 부분집합/상위집합 검사
const core = new Set(["React", "Vue"]);
core.isSubsetOf(frontend); // true
frontend.isSupersetOf(core); // true
core.isDisjointFrom(popular); // false5. Float16Array
16비트 부동소수점 타입 배열이 추가되었다. AI/ML 추론에서 메모리를 절반으로 줄이면서 충분한 정밀도를 유지할 수 있다.
const weights = new Float16Array([0.5, -1.25, 3.14]);
console.log(weights.byteLength); // 6 (Float32Array면 12)
console.log(Math.f16round(0.1)); // 0.0999755859375ES2025의 이 기능들은 라이브러리 의존성을 줄이고 코드 가독성을 높이는 실질적인 개선이다. 특히 Iterator Helpers와 Set 메서드는 함수형 프로그래밍 스타일의 코드를 네이티브로 작성할 수 있게 해준다.
javascript
| No | 작성일 | Title |
|---|---|---|
| 2866 | 2026. 05. 23. | Node.js 운영 추적 로그 설계: AsyncLocalStorage로 요청 ID와 장애 원인 연결하기 |
| 2787 | 2026. 05. 15. | Node.js fetch 타임아웃·재시도 표준 패턴: AbortSignal로 장애 전파 막기 |
| 2589 | 2026. 04. 23. | ES2026 JavaScript 신기능 완전 가이드: using/await using, Array.fromAsync, Error.isError, Math.sumPrecise 실전 적용 |
| 2490 | 2026. 04. 14. | ES2025/ES2026 완벽 정리: Iterator Helpers, Temporal API, using 키워드 실전 가이드 |
| 2469 | 2026. 04. 13. | ES2026 완벽 가이드: Temporal API, using/await using, Array/Set 신기능 총정리 |
| 2449 | 2026. 04. 12. | ES2025/ES2026 JavaScript 신기능 완벽 정리: Temporal API부터 using 키워드까지 |
| 2425 | 2026. 04. 11. | Node.js 24 LTS 핵심 신기능 완벽 가이드 - V8 13.6, Permission Model, URLPattern |
| 2389 | 2026. 04. 09. | ES2025 핵심 신규 기능 총정리 - Set 연산, Iterator Helpers, Temporal API까지 |
| 2368 | 2026. 04. 08. | ES2025/ES2026 완벽 정리: Temporal API, Resource Management, 새 문법 총정리 |
| 2350 | 2026. 04. 07. | ES2025 Iterator Helpers 완벽 가이드 - map, filter, take를 이터레이터에서 직접 사용하기 |