|
| 1 | +--- |
| 2 | +title: "2025-03-12: React Aria March 5, 2025, Firefox 136.0, TypeScript 컴포넌트를 Go로 이식" |
| 3 | +author: "azu" |
| 4 | +translator: rewrite0w0 |
| 5 | +layout: post |
| 6 | +date: 2025-03-12T03:37:21.235Z |
| 7 | +category: JSer |
| 8 | +tags: |
| 9 | +- React |
| 10 | +- TypeScript |
| 11 | +- Vue |
| 12 | +- Electron |
| 13 | +- pnpm |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +JSer.info #728 - React Aria March 5, 2025 출시되었다 |
| 18 | + |
| 19 | +- [March 5, 2025 Release – React Spectrum Releases](https://react-spectrum.adobe.com/releases/2025-03-05.html) |
| 20 | + |
| 21 | +Toast/Tree/Virtualizer 컴포넌트를 추가, Autocomplete를 Menu/Select와 조합해서 이용할 수 있도록 되었다. |
| 22 | +또한, `<Pressable>`/`<Focusable>` 추가, `usePress` 리팩터링이 포함되어있다. |
| 23 | +그 외로는, 문서를 Tailwind v4에 대응 |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +Firefox 136.0 출시되었다 |
| 28 | + |
| 29 | +- [Firefox 136.0, See All New Features, Updates and Fixes](https://www.mozilla.org/en-US/firefox/136.0/releasenotes/) |
| 30 | +- [Firefox 136 for developers - Mozilla | MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/136) |
| 31 | + |
| 32 | +HTML의 `autocorrect` 속성을 지원, `Intl.DurationFormat` 지원, Data URLs 최대 크기를 32MB에서 Chrome과 같은 512MB로 변경되었다. |
| 33 | +Cookie Storage API 지원, HTTPS-First로 변경되었다. |
| 34 | +실험적 기능으로, `Error.captureStackTrace()` 지원, `Clear-Site-Data` 헤더 지원, SVG의 `<discard>` 요소 지원이 포함되었다. |
| 35 | + |
| 36 | +---- |
| 37 | + |
| 38 | +TypeScript 컴파일러를 Go언어로 포팅하는 계획이 공개되었다. |
| 39 | + |
| 40 | +- [A 10x Faster TypeScript - TypeScript](https://devblogs.microsoft.com/typescript/typescript-native-port/) |
| 41 | + |
| 42 | +TypeScript 자료형 체크나 LSP 성능 개선하기 위해서, TypeScript 컴파일러를 Go언어로 포팅할 계획이 공개되었다. |
| 43 | +이식한 native판을 TypeScript 7로 출시할 예정이며, native판이 안정될 떄까지는 JS 버전도 관리될 예정이다. |
| 44 | +TypeScript 7가 출시된 이후도, 이행 문제가 없을때까지는 JS 버전을 관리하며, 99.99%는 그대로 이행할 수 있는 것을 목표로 하고 있다. |
| 45 | + |
| 46 | +- https://github.com/microsoft/typescript-go |
| 47 | + |
| 48 | +> "Why a port instead of a rewrite? What's the difference? · microsoft/typescript-go · Discussion #410" |
| 49 | +> https://github.com/microsoft/typescript-go/discussions/411 |
| 50 | +
|
| 51 | +왜 다시 작성하지 않고 이행을 선택했는가는, TypeScript 컴파일러 코드 기반 크기나, TypeScript 사양이 따로 있는 것이 아니라 레퍼런스 구현만이라는 이유도 들고 있다. |
| 52 | + |
| 53 | +> Why Go? #411 |
| 54 | +> https://github.com/microsoft/typescript-go/discussions/411 |
| 55 | +
|
| 56 | +Go를 선택할 이유로, GC가 있다는 이유와 의미론적 코드 구조가 JS와 닮았고, 이식성 높은 것을 이유로 들고 있다. |
| 57 | + |
| 58 | +- [TypeScript is being ported to Go | interview with Anders Hejlsberg - YouTube](https://www.youtube.com/watch?v=10qowKUW82U) |
| 59 | + |
| 60 | +C#은 OOP 언어라서, 기존 TypeScript 컴파일러 코드를 이행하기에는, 구조 변경할 이유가 있었기에 선택하기에는 어려운 면이 있었다. |
| 61 | +그리고, TypeScript 컴파일러는 GC에 의존하고 있어서, Rust 언어는 선택하기 어려운 면이 있었다. |
| 62 | +다시 작성했다면, 처음부터 GC/순환참조 그래프에 의존하지 않는 구조로 하고 싶다는 이야기. |
| 63 | + |
| 64 | +또한, 구체적인 출시 스케쥴은 미정이지만, 기본적으로는 이행이 부드럽게 이뤄지는 것을 목표로 하고 있다. |
| 65 | + |
| 66 | +---- |
| 67 | + |
| 68 | +{% include inline-support.html %} |
| 69 | + |
| 70 | +---- |
| 71 | + |
| 72 | +<h1 class="site-genre">헤드라인</h1> |
| 73 | + |
| 74 | +---- |
| 75 | + |
| 76 | +## March 5, 2025 Release – React Spectrum Releases |
| 77 | +[react-spectrum.adobe.com/releases/2025-03-05.html](https://react-spectrum.adobe.com/releases/2025-03-05.html "March 5, 2025 Release – React Spectrum Releases") |
| 78 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 79 | + |
| 80 | +React Aria March 5, 2025 출시. |
| 81 | +Toast/Tree/Virtualizer 컴포넌트를 추가, Autocomplete를 Menu/Select와 조합해서 이용하도록. |
| 82 | +`<Pressable>`/`<Focusable>` 추가, |
| 83 | +`usePress` 리팩터링. |
| 84 | +문서를 Tailwind v4에 대응 |
| 85 | + |
| 86 | + |
| 87 | +---- |
| 88 | + |
| 89 | +## Electron 35.0.0 | Electron |
| 90 | +[www.electronjs.org/blog/electron-35-0](https://www.electronjs.org/blog/electron-35-0 "Electron 35.0.0 | Electron") |
| 91 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Electron</span> <span class="jser-tag">ReleaseNote</span></p> |
| 92 | + |
| 93 | +Electron 35.0.0 출시. |
| 94 | +Chromium 134/Node.js 22.14.0/V8 13.5으로 업데이트, Service Worker Preload Scripts 지원 |
| 95 | + |
| 96 | + |
| 97 | +---- |
| 98 | + |
| 99 | +## Release v3.16.0 · nuxt/nuxt |
| 100 | +[github.com/nuxt/nuxt/releases/tag/v3.16.0](https://github.com/nuxt/nuxt/releases/tag/v3.16.0 "Release v3.16.0 · nuxt/nuxt") |
| 101 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Vue</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 102 | + |
| 103 | +Nuxt.js v3.16.0 출시. |
| 104 | +`create-nuxt` 패키지 추가, 성능 개선, delayed/lazy hydration 지원 |
| 105 | + |
| 106 | + |
| 107 | +---- |
| 108 | + |
| 109 | +## Release pnpm 10.6 · pnpm/pnpm |
| 110 | +[github.com/pnpm/pnpm/releases/tag/v10.6.0](https://github.com/pnpm/pnpm/releases/tag/v10.6.0 "Release pnpm 10.6 · pnpm/pnpm") |
| 111 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 112 | + |
| 113 | +pnpm v10.6.0 출시. |
| 114 | +`.npmrc` 설정을 전부 `pnpm-workspace.yaml`에 입력하도록 |
| 115 | + |
| 116 | + |
| 117 | +---- |
| 118 | + |
| 119 | +## Release v1.51.0 · microsoft/playwright |
| 120 | +[github.com/microsoft/playwright/releases/tag/v1.51.0](https://github.com/microsoft/playwright/releases/tag/v1.51.0 "Release v1.51.0 · microsoft/playwright") |
| 121 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">playwright</span> <span class="jser-tag">ReleaseNote</span></p> |
| 122 | + |
| 123 | +playwright v1.51.0 출시. |
| 124 | +`browserContext.storageState()`가 IndexedDB 지원, `filter({ visible })` 추가, `expect(page).toHaveURL(fn)` 지원. |
| 125 | +LLM 대상 Copy prompt 레포트에 추가 |
| 126 | + |
| 127 | + |
| 128 | +---- |
| 129 | + |
| 130 | +## Release @ark-ui/react@5.0.0 · chakra-ui/ark |
| 131 | +[github.com/chakra-ui/ark/releases/tag/%40ark-ui%2Freact%405.0.0 ](https://github.com/chakra-ui/ark/releases/tag/%40ark-ui%2Freact%405.0.0 "Release @ark-ui/[email protected] · chakra-ui/ark") |
| 132 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">Vue</span> <span class="jser-tag">Solid</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 133 | + |
| 134 | +Ark UI v5 출시. |
| 135 | +성능과 Bundle Size 개선, 컴포넌트에 기본값을 지정하는 옵션 추가 |
| 136 | + |
| 137 | + |
| 138 | +---- |
| 139 | + |
| 140 | +## Firefox 136.0, See All New Features, Updates and Fixes |
| 141 | +[www.mozilla.org/en-US/firefox/136.0/releasenotes/](https://www.mozilla.org/en-US/firefox/136.0/releasenotes/ "Firefox 136.0, See All New Features, Updates and Fixes") |
| 142 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Firefox</span> <span class="jser-tag">ReleaseNote</span></p> |
| 143 | + |
| 144 | +Firefox 136 출시. |
| 145 | +HTML의 `autocorrect` 속성 지원, `Intl.DurationFormat` 지원, Data URLs 최대 크기를 32MB에서 Chrome와 같은 512MB로 변경. |
| 146 | +Cookie Storage API 지원, HTTPS-First로 변경. |
| 147 | +실험적 기능으로, `Error.captureStackTrace()` 지원, `Clear-Site-Data` 헤더 지원, SVG의 `<discard>` 요소 지원 |
| 148 | + |
| 149 | +- [Firefox 136 for developers - Mozilla | MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/136 "Firefox 136 for developers - Mozilla | MDN") |
| 150 | + |
| 151 | +---- |
| 152 | + |
| 153 | +## Bun v1.2.5 | Bun Blog |
| 154 | +[bun.sh/blog/bun-v1.2.5](https://bun.sh/blog/bun-v1.2.5 "Bun v1.2.5 | Bun Blog") |
| 155 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 156 | + |
| 157 | +Bun v1.2.5 출시. |
| 158 | +Node-API와 호환성 개선, `node:timers` 추가, `Bun.CSRF` 추가. |
| 159 | +dev server가 svelte 지원, CSS modules 지원 |
| 160 | + |
| 161 | + |
| 162 | +---- |
| 163 | +<h1 class="site-genre">읽을거리</h1> |
| 164 | + |
| 165 | +---- |
| 166 | + |
| 167 | +## A 10x Faster TypeScript - TypeScript |
| 168 | +[devblogs.microsoft.com/typescript/typescript-native-port/](https://devblogs.microsoft.com/typescript/typescript-native-port/ "A 10x Faster TypeScript - TypeScript") |
| 169 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">article</span> <span class="jser-tag">performance</span></p> |
| 170 | + |
| 171 | +TypeScript의 자료형 체크나 LSP 퍼포먼스 개선하기 위해, TypeScript 컴파일러나 LSP 도구를 Go언어로 포팅하는 이야기. |
| 172 | +이식된 native판을 TypeScript 7로 출시할 예정, native판이 안정될 때까지는 JS 버전도 관리될 예정. |
| 173 | + |
| 174 | + |
| 175 | +---- |
| 176 | + |
| 177 | +## Split Route Modules | Remix |
| 178 | +[remix.run/blog/split-route-modules](https://remix.run/blog/split-route-modules "Split Route Modules | Remix") |
| 179 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">article</span></p> |
| 180 | + |
| 181 | +React Router v7.2.0에 추가된 Split Route Modules 관련하여. |
| 182 | + |
| 183 | + |
| 184 | +---- |
| 185 | +<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 186 | + |
| 187 | +---- |
| 188 | + |
| 189 | +## microsoft/typescript-go: Staging repo for development of native port of TypeScript |
| 190 | +[github.com/microsoft/typescript-go](https://github.com/microsoft/typescript-go "microsoft/typescript-go: Staging repo for development of native port of TypeScript") |
| 191 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">golang</span> <span class="jser-tag">Tools</span></p> |
| 192 | + |
| 193 | +TypeScript를 Go 언어로 포팅 구현. |
| 194 | +자료형 체크 이외는 병렬로 처리 가능. 자료형 체크는 몇 몇 블록으로 나눠서 처리하도록 되어있음. |
| 195 | + |
| 196 | +- [A 10x faster TypeScript - YouTube](https://www.youtube.com/embed/pNlq-EVld70?si=OaEgTg6ROtfYDYLt "A 10x faster TypeScript - YouTube") |
| 197 | + |
| 198 | +---- |
| 199 | + |
| 200 | +## Pikku - A Function-First Framework for Node.js | Pikku |
| 201 | +[pikku.dev/](https://pikku.dev/ "Pikku - A Function-First Framework for Node.js | Pikku") |
| 202 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">library</span> <span class="jser-tag">server</span></p> |
| 203 | + |
| 204 | +TypeScript로 작성된 웹 프레임워크. |
| 205 | +단순 함수 핸들러를 정의. TypeScript 코드에서 JSON 스키마 생성해 검증하고, 클라이언트 코드도 자동적으로 생성 |
| 206 | + |
| 207 | + |
| 208 | +---- |
0 commit comments