# JavaScript에 곧 도입될 주요 신기능과 표준화 동향

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=21734](https://news.hada.io/topic?id=21734)
- GeekNews Markdown: [https://news.hada.io/topic/21734.md](https://news.hada.io/topic/21734.md)
- Type: news
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-06-30T10:18:01+09:00
- Updated: 2025-06-30T10:18:01+09:00
- Original source: [deno.com](https://deno.com/blog/updates-from-tc39)
- Points: 10
- Comments: 3

## Summary

JavaScript 표준화 기구인 **TC39**가 최근 회의에서 `using`, `Array.fromAsync`, `Error.isError` 등 **생산성·안전성**에 중점을 둔 신기능 9가지를 단계별로 진전하였습니다. 여러 **불변 ArrayBuffer, 시드 랜덤, clamp, NumberFormat 개선** 등 다양한 기능이 현재 논의 중이며, 일부는 **Deno** 및 최신 브라우저에서 이미 사용할 수 있습니다.

## Topic Body

- 최근 **TC39 108차 회의**에서 JavaScript의 미래를 이끌 **9개 제안**이 각 표준화 단계별로 진전됨  
- **Stage 4(최종 승인)** 에는 `using`, `Array.fromAsync`, `Error.isError` 등 개발 생산성 및 안전성을 높이는 기능이 포함됨  
- **Stage 3~1**에는 불변 ArrayBuffer, 시드 랜덤, clamp, NumberFormat 개선, Random 함수 등 다양한 유용 기능 제안이 논의 중임  
- **Deno**는 최신 표준 도입 및 실험에 적극적이며, 일부 기능은 이미 Deno와 최신 브라우저에서 사용 가능함  
- 향후 표준화 논의가 이어질 예정이며, JavaScript 생태계가 더 안전하고 간결하게 진화할 것으로 기대됨  
  
---  
  
### TC39 최신 표준화 동향 및 JavaScript 주요 신기능  
  
#### Stage 4: 공식 채택 예정 기능  
  
##### 명시적 리소스 관리(`using`)  
  
- **`using` 선언문**을 통해 파일, 네트워크 소켓 등 리소스 객체의 수명 종료 시 자동으로 정리 처리를 보장  
- C#·Python 등에서 영감 받은 구조로, 객체에 `[Symbol.dispose]()` 또는 `[Symbol.asyncDispose]()` 메서드를 구현해 블록 종료 시 호출  
- 예외 발생 시에도 자동 정리되어, 파일 핸들 등 자원 누수 위험 감소  
- **Chrome 134, Firefox 134, Deno v2.3** 등에서 이미 지원, Deno에서는 파일·소켓 등 실무에 즉시 활용 가능  
  
##### `Array.fromAsync`  
  
- **비동기 iterable**을 **배열로 변환**해주는 표준 메서드로, Promise를 반환  
- async generator 등에서 순차적으로 값을 수집, 최종적으로 배열 결과를 Promise로 얻음  
- 기존의 동기 `Array.from`과 사용법 유사하며, mapping 함수와 thisArg 지원  
- 모든 주요 브라우저, Node v22, Deno v1.38 이상에서 지원  
  
##### `Error.isError`  
  
- 어떤 값이 **진짜 Error 객체**인지 간단하게 판별할 수 있는 내장 함수  
- cross-realm, 서브클래스 오류 등 복잡한 경우에도 신뢰성 있게 동작  
- Polyfill, 라이브러리 개발 시 신뢰도 향상  
  
#### Stage 3: 불변 ArrayBuffer  
  
##### Immutable ArrayBuffer  
  
- **`ArrayBuffer`의 불변화**를 지원하는 `transferToImmutable()`, `sliceToImmutable()` 메서드 추가 예정  
- 불변 buffer는 한 번 생성 후 수정·분리 불가, 스레드·워커 간 안전한 공유 및 성능 향상에 기여  
- Deno 등에서는 바이너리 데이터 처리시 불필요한 복사 없이 효율적으로 활용 가능  
  
#### Stage 2: 신규 제안 기능  
  
##### `Random.Seeded`  
  
- **시드 기반 PRNG**(`Random.Seeded(seed)`)로 반복 실행 간 동일한 난수 시퀀스 생성 가능  
- 게임·시뮬레이션 등 재현성이 중요한 영역에 유용  
- 기존 `Math.random()`과 달리 시드 지정 및 상태 복제 등 고급 기능 제공  
  
##### `Number.prototype.clamp`  
  
- **수치 범위 제한 메서드**로, 지정한 최소~최대값 구간으로 값을 자동 보정  
- 기존의 `Math.min(Math.max(x, min), max)` 패턴을 짧고 명확하게 대체  
  
#### Stage 1: 초기 논의 제안  
  
##### Keep Trailing Zeros  
  
- `Intl.NumberFormat`의 신규 옵션으로, 소수점 이하 **0 유지/제거**를 세밀하게 제어  
- 금액·고정 소수점 등 UI에서 원하는 표현력 강화  
  
##### Comparisons  
  
- Node.js의 `util.inspect`와 비슷하게, 값의 **사람 친화적 표기**와 **diff 출력** 표준화 목표  
- 테스트 프레임워크, 콘솔 출력 등에서 일관성 제공  
  
##### Random Functions  
  
- 신규 `Random` 네임스페이스 도입, 난수·샘플링·셔플 등 안전하고 간결한 랜덤 관련 함수 모음  
- 오프바이원 오류 방지 및 다양한 수집·샘플링 패턴을 직관적으로 지원  
  
### Deno와 JavaScript 생태계의 미래  
  
- Deno는 **표준화 논의에 적극 참여**하며 최신 기능을 실무에 신속히 반영하고 있음   
- 예) async context 전파, 내장 OpenTelemetry, 새로운 리소스 관리 패턴 등  
- 9월 이후 추가 TC39 회의에서 표준화 논의 지속 예정  
- JavaScript 개발자는 향후 더욱 강력하고 안전하며, 편리한 언어 환경을 경험할 수 있게 될 것

## Comments



### Comment 40940

- Author: carnoxen
- Created: 2025-07-03T16:29:29+09:00
- Points: 1

[await operations proposal](https://github.com/tc39/proposal-await.ops)  
  
이건 언제...

### Comment 40776

- Author: dohyun682
- Created: 2025-06-30T10:47:16+09:00
- Points: 1

패턴 매칭은 언제 추가되려나요

### Comment 40775

- Author: click
- Created: 2025-06-30T10:42:31+09:00
- Points: 1

stage 1에 signals가 있는데 정식 출시되려면 아직 멀은 듯 합니다.
