ECMAScript 2025 : 자바스크립트의 주요 신기능
올해 자바스크립트 사양 업데이트는 많은 영역을 다룬다. 가장 주목할 만한 추가 요소는 새로운 내장 Iterator 객체와 그에 따르는 함수형 연산자다.
www.itworld.co.kr
JSON import 개선에 대한 추가 설명
✅ 현재 상황 (예: Vite + 최신 번들러 환경)
Vite, Webpack, Rollup 같은 모던 번들러들은 JSON을 자동으로 파싱해서 JavaScript 객체로 제공해 줍니다. 그래서 아래와 같이 쓰는 게 전혀 문제되지 않습니다:
이건 Vite가 개발 중에 JSON 파일을 읽고 파싱해서 ES 모듈처럼 변환해주는 기능을 자체적으로 제공하기 때문입니다. 즉, Vite 내부적으로 빌드 시 JSON을 모듈처럼 다루는 기능이 있는 거죠.
📜 ES2025 (ECMAScript 표준)에서 말하는 것
이건 브라우저나 Node.js가 자체적으로 모듈 시스템에서 JSON을 처리할 수 있게 된다는 의미입니다. 과거에는 JavaScript 모듈 시스템(특히 브라우저에서 ES 모듈로 실행할 때)은 .js, .mjs, .ts 같은 스크립트만 지원했어요. import ... from './data.json'은 브라우저에서 직접 실행하면 오류가 났었죠.
그래서 Node.js에서도 --experimental-json-modules 플래그를 켜거나, JSON을 fs.readFileSync로 읽고 JSON.parse해야 했습니다.
즉, ES2025의 변화는 "런타임(브라우저나 Node.js) 자체에서 JSON을 직접 import할 수 있게 표준화"한 것입니다. 더 이상 번들러의 도움 없이도 가능해진 거죠.
Promise.try에 대한 추가 설명
📌 기존 방식의 문제점: 동기 vs 비동기 오류 처리의 차이
이제 아래처럼 호출해봅시다:
- try { ... } catch {}는 동기 오류만 잡음.
- .catch()는 비동기 오류만 잡음.
- 그래서 동기/비동기 혼합된 코드에서 일관된 오류 처리가 어려웠습니다.
✅ Promise.try()가 중요한 이유
이렇게 하면:
- mightThrowSyncError()가 동기적으로 에러를 던지든,
- mightReturnRejectedPromise()가 비동기적으로 에러를 리턴하든,
👉 **모든 오류가 .catch()로 "라우팅"**됩니다.
'javascript' 카테고리의 다른 글
| [Node] NVM 이란? NVM 설치하기 (0) | 2024.04.09 |
|---|---|
| [JS] Prettier란? Prettier Configuration파일 세팅하기 (0) | 2023.01.20 |
| [javascript] var의 문제점, let, const와의 차이 (0) | 2023.01.05 |
| [javascript] 변경 감지 이벤트 onchange, oninput 차이 (0) | 2022.10.12 |
| [javascript] Symbol이란? ES6에서 새로 추가된 타입, javascript enum (0) | 2022.09.23 |