# ECMAScript 2024 승인 : 새로운 기능은?

> Clean Markdown view of GeekNews topic #15579. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15579](https://news.hada.io/topic?id=15579)
- GeekNews Markdown: [https://news.hada.io/topic/15579.md](https://news.hada.io/topic/15579.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-06-28T12:20:24+09:00
- Updated: 2024-06-28T12:20:24+09:00
- Original source: [2ality.com](https://2ality.com/2024/06/ecmascript-2024.html)
- Points: 9
- Comments: 0

## Summary

`Map.groupBy()`와 `Object.groupBy()`를 통해 iterable 항목을 효율적으로 그룹화할 수 있습니다. `Promise.withResolvers()`와 `Atomics.waitAsync()` 같은 새로운 메서드들이 비동기 프로그래밍을 더욱 편리하게 만들어줍니다. 그 외에 정규 표현식 플래그 /v, ArrayBuffer와 SharedArrayBuffer의 transfer() 등이 추가되었습니다. 무료로 제공되는 "Exploring JavaScript (ES2024 Edition)" 책을 통해 ECMAScript의 역사와 각 버전별 새로운 기능들을 자세히 배울 수 있습니다.

## Topic Body

#### 동기 iterable 그룹화  
- `Map.groupBy()`는 iterable의 항목을 콜백에서 제공한 키를 가진 Map 항목으로 그룹화  
- `Object.groupBy()`는 Map 대신 객체를 생성  
  
#### `Promise.withResolvers()`  
- resolve하려는 Promise를 생성하는 새로운 방법을 제공  
  
#### 정규 표현식 플래그 `/v`  
- 새로운 정규 표현식 플래그 `/v` (`.unicodeSets`)는 다음 기능을 활성화함:  
  - 유니코드 문자열 속성에 대한 이스케이프 (`/u`를 통한 유니코드 코드 포인트 속성 `Emoji`와 `/v`를 통한 새로운 유니코드 문자열 속성 `RGI_Emoji`)  
  - 문자 클래스 내에서 `\q{}`를 통한 문자열 리터럴  
  - 문자 클래스에 대한 집합 연산  
  - `[^···]`를 통해 유니코드 속성 이스케이프가 부정될 때 `/i`로 개선된 매칭  
  
#### ArrayBuffer와 SharedArrayBuffer의 새로운 기능  
- ArrayBuffer:  
  - 직접 크기 조정 가능  
  - 전송을 위한 `.transfer()` 메서드 추가  
- SharedArrayBuffer:  
  - 크기를 늘릴 수는 있지만 줄일 수는 없음   
  - 전송 불가능하므로 `ArrayBuffers`가 가진 `.transfer()` 메서드는 없음  
  
#### 문자열이 well-formed인지 확인  
- 두 가지 새로운 메서드로 문자열이 (UTF-16) well-formed인지 확인 가능:  
  - String 메서드 `.isWellFormed()` 는 JavaScript 문자열이 well-formed이고 lone surrogate 를 포함하지 않는지 확인  
  - String 메서드 `.toWellFormed()` 는 각 lone surrogate가 코드 단위 0xFFFD("대체 문자"라는 이름의 동일한 숫자의 코드 포인트를 나타냄)로 대체된 수신자의 사본을 반환하므로 결과는 well-formed임  
  
#### `Atomics.waitAsync()`  
- `Atomics.waitAsync()`를 사용하면 공유 메모리 변경을 비동기적으로 기다릴 수 있음  
  
### ECMAScript 2024에 대한 무료 책  
- ["Exploring JavaScript (ES2024 Edition)"](https://exploringjs.com/js/)은 온라인에서 무료로 읽을 수 있음. 특히 관련 있는 두 챕터  
  - ["History and evolution of JavaScript"](https://exploringjs.com/js/book/ch_history.html): ECMAScript vs. JavaScript, TC39, TC39 프로세스, ECMAScript 제안 등  
  - ["New JavaScript features"](https://exploringjs.com/js/book/ch_new-javascript-features.html#ch_new-javascript-features): 각 ECMAScript 버전의 새로운 기능은 무엇인가?

## Comments



_No public comments on this page._
