2025년 7월, 자바스크립트 최신 사양 ECMAScript 2025 (ES2025) 가 공개되었습니다.
이번 업데이트는 혁명적인 변화라기보다는, 실무에서 체감할 수 있는 편의성 개선이 많습니다.
Iterator, Set 연산 강화, Promise.try, JSON import 등 읽으면서 “이제서야 들어왔네” 싶은 기능들이 꽤 있었습니다.
아래에서 핵심 내용을 요약하고, 제가 흥미롭게 본 포인트를 정리했습니다.
1. 전역 Iterator 객체와 함수형 연산자
이번 ES2025의 가장 큰 변화 중 하나는 전역 Iterator 객체입니다.
Iterator.from()
으로 배열, 제너레이터 등을 감싸면 map, filter, take 같은 함수형 연산자를 게으른(lazy) 방식으로 사용할 수 있습니다.- 중간 배열을 만들지 않고 필요한 시점에만 처리 → 대규모 데이터 처리에서 성능에 유리
- Array뿐 아니라 generator, iterable에도 동일한 API 적용 가능
- Java의 Stream API와 유사한 방식으로 동작
Iterator.from(["Plato","Lao Tzu","St. Augustine"])
.map(name => name.length)
.filter(len => len < 10)
.take(2)
.toArray(); // [5,7]
이제 대규모 로그나 데이터 스트림을 다룰 때 중간 배열을 반복적으로 생성할 필요가 없어서 훨씬 깔끔해질 것 같습니다.
2. Set 메소드 강화: 교집합부터 대칭 차집합까지
자바스크립트 Set이 SQL 집합 연산처럼 쓸 수 있게 확장되었습니다.
intersection
: 교집합difference
: 차집합symetricDifference
: 대칭 차집합isSubsetOf
/isSupersetOf
/isDisjointFrom
: 집합 관계 확인
let set1 = new Set(["A","B","C"]);
let set2 = new Set(["C","D","E"]);
set1.intersection(set2); // {'C'}
set1.difference(set2); // {'A','B'}
set1.symetricDifference(set2); // {'A','B','D','E'}
이제 권한 관리나 태그 교집합 계산처럼 집합 연산이 필요한 상황에서 lodash 같은 라이브러리 없이도 깔끔하게 처리할 수 있게 되었습니다.
3. JSON 모듈 직접 import
이제 JSON 파일을 바로 모듈처럼 불러올 수 있습니다.
빌드 없이도 로컬 JSON을 import 가능하다는 점이 편리합니다.
import appConfig from './data.json' with { type: 'json' };
작은 프로젝트나 목업 데이터 작업 시에 특히 유용합니다.
4. 정규식 개선: 보안과 가독성 강화
RegExp.escape()
: 사용자 입력을 안전하게 이스케이프 처리하여 정규식 인젝션 방지- 정규식 내부 일부 구간만 플래그 적용 가능 (예: 대소문자 구분 선택적 적용)
/(?i:Love)|(?-i:Day)/
이제 악의적인 입력에도 안전하고, 복잡한 정규식을 더 직관적으로 작성할 수 있게 되었습니다.
5. Promise.try: 동기·비동기 에러 통합 처리
Promise.try()
덕분에 동기/비동기 에러를 하나의 체인으로 처리할 수 있습니다.
Promise.try(() => mightThrowSyncError())
.then(val => console.log("OK", val))
.catch(err => console.error("Error:", err));
Node.js에서 데이터 처리할 때 코드 흐름이 훨씬 깔끔해질 것 같습니다.
이제 try-catch와 Promise.catch를 별도로 나눌 필요가 없습니다.
6. Float16Array: 고성능 연산·ML 친화
16비트 부동소수점 배열이 추가되었습니다.
- 메모리를 절약하면서 대량 연산에 유리
- 머신러닝 가중치, 3D 그래픽 등에서 활용 가능
일반적인 웹 개발자는 당장 쓸 일이 없을 수 있지만,
WebGPU나 머신러닝 쪽에서는 반가운 추가 기능입니다.
정리하며
ES2025는 불편했던 지점을 해소하면서 실무 개발 경험을 개선해주는 업데이트입니다.
개인적으로는 Iterator와 Promise.try가 가장 바로 적용해보고 싶은 기능입니다.
모든 프로젝트에 당장 쓸 수는 없더라도, 알아두면 코드 품질과 생산성을 높일 수 있는 변화라고 생각합니다.
'IT 인사이트' 카테고리의 다른 글
개발자들은 왜 AI를 쓰면서도 믿지 못할까? | 2025 Stack Overflow 설문 요약 (0) | 2025.08.02 |
---|---|
AI 시대, 기술 기업이 원하는 개발자의 역량 9가지 (5) | 2025.07.31 |
Perplexity Comet, AI 브라우저 (1) | 2025.07.17 |
슬랙봇으로 클라우드 자동화하기: AI × 인프라의 실전 활용법 (1) | 2025.07.17 |
개발자에게 AI를 던져도 문제가 해결되지 않는 이유 (1) | 2025.07.15 |
댓글