|
| 1 | +--- |
| 2 | +title:"2025-07-12: TypeScript 5.9 Beta, i18n와 로컬라이즈, Node.js 모던한 기능" |
| 3 | +author:"azu" |
| 4 | +translator:rewrite0w0 |
| 5 | +layout:post |
| 6 | +date:2025-07-12T07:52:38.994Z |
| 7 | +category:JSer |
| 8 | +tags: |
| 9 | +-TypeScript |
| 10 | +-nodejs |
| 11 | +-MCP |
| 12 | +-Vue |
| 13 | +-vercel |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +JSer.info#741 - TypeScript 5.9 Beta가 출시되었다. |
| 18 | + |
| 19 | +-[Announcing TypeScript 5.9 Beta - TypeScript](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/) |
| 20 | + |
| 21 | +`tsc --init` 생성하는 설정을 변경,`import defer` 구문 지원,`--module node20` 옵션 추가가 포함. 또한, 자료형 체크 개선 및 성능 향상도 있음. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +Patreon 국제화와 로컬라이즈 구현에 대한 글이 공개되었다. |
| 26 | + |
| 27 | +-[4 Untranslatable Words Behind Patreon's Internationalization Overhaul](https://www.patreon.com/posts/133137028) |
| 28 | + |
| 29 | +조건식으로 문장을 나눌 때 주의점, 수치표현에서 Intl API 활용, 복수형 표현 로컬라이즈, 로컬라이즈로 인한 주의점 정리. |
| 30 | +또한, 로컬라이즈 시스템 이행할 때 일어난 문제와 해결 방법에 대해서도 작성. |
| 31 | + |
| 32 | +--- |
| 33 | + |
| 34 | +다음 글에서는, 2025년 Node.js에서 모던한 기능과 패턴에 대해 정리됨. |
| 35 | + |
| 36 | +-[Modern Node.js Patterns for 2025](https://kashw1n.com/blog/nodejs-2025/) |
| 37 | + |
| 38 | +ESM, built-in fetch API, Worker threads에 의한 병렬처리, AbortController에 의한 취소처리, 최신 Node.js 기능 활용 방법이 설명되어 있음. Permission model이나 Single Executable Applications 신기능에 대해서도 다룸. |
| 39 | + |
| 40 | +---- |
| 41 | + |
| 42 | +{% include inline-support.html %} |
| 43 | + |
| 44 | +---- |
| 45 | + |
| 46 | +<h1class="site-genre">헤드라인</h1> |
| 47 | + |
| 48 | +---- |
| 49 | + |
| 50 | +##Announcing TypeScript 5.9 Beta - TypeScript |
| 51 | +[devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/](https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/"Announcing TypeScript 5.9 Beta - TypeScript") |
| 52 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">TypeScript</span> <spanclass="jser-tag">ReleaseNote</span></p> |
| 53 | + |
| 54 | +TypeScript 5.9 Beta 출시. |
| 55 | +`tsc --init`으로 생성하는 설정을 변경,`import defer` 지원,`--module node20` 지원 |
| 56 | + |
| 57 | + |
| 58 | +---- |
| 59 | + |
| 60 | +##The future of Nuxt · nuxt/nuxt · Discussion#32559 |
| 61 | +[github.com/nuxt/nuxt/discussions/32559](https://github.com/nuxt/nuxt/discussions/32559"The future of Nuxt · nuxt/nuxt · Discussion #32559") |
| 62 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">Vue</span> <spanclass="jser-tag">vercel</span> <spanclass="jser-tag">news</span></p> |
| 63 | + |
| 64 | +Nuxt.js 개발하는 NuxtLabs가 Vercel에 인수 |
| 65 | + |
| 66 | +-[NuxtLabs joins Vercel - Vercel](https://vercel.com/blog/nuxtlabs-joins-vercel"NuxtLabs joins Vercel - Vercel") |
| 67 | + |
| 68 | +---- |
| 69 | + |
| 70 | +##Node.js — Node v24.4.0 (Current) |
| 71 | +[nodejs.org/en/blog/release/v24.4.0](https://nodejs.org/en/blog/release/v24.4.0"Node.js — Node v24.4.0 (Current)") |
| 72 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">nodejs</span> <spanclass="jser-tag">ReleaseNote</span></p> |
| 73 | + |
| 74 | +Node.js v24.4.0 출시. |
| 75 | +`fs.mkdtempDisposableSync` 추가,`--watch-kill-signal`フラグ 추가 |
| 76 | + |
| 77 | + |
| 78 | +---- |
| 79 | + |
| 80 | +##Release v5.100.0 · webpack/webpack |
| 81 | +[github.com/webpack/webpack/releases/tag/v5.100.0](https://github.com/webpack/webpack/releases/tag/v5.100.0"Release v5.100.0 · webpack/webpack") |
| 82 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">webpack</span> <spanclass="jser-tag">ReleaseNote</span></p> |
| 83 | + |
| 84 | +webpack v5.100.0 출시. |
| 85 | +HMR의 ES Modules output 지원,`using` 지원, Defer Module Evaluation 지원. |
| 86 | +`virtual:` 스키마 지원하는 VirtualUrlPlugin 추가 |
| 87 | + |
| 88 | + |
| 89 | +---- |
| 90 | + |
| 91 | +##Release v1.54.0 · microsoft/playwright |
| 92 | +[github.com/microsoft/playwright/releases/tag/v1.54.0](https://github.com/microsoft/playwright/releases/tag/v1.54.0"Release v1.54.0 · microsoft/playwright") |
| 93 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">playwright</span> <spanclass="jser-tag">ReleaseNote</span></p> |
| 94 | + |
| 95 | +playwright v1.54.0 출시. |
| 96 | +`partitionKey` 옵션 추가, html reporter에`noSnippets` 옵션 추가. |
| 97 | +`--user-data-dir` 플러그로 유저 데이터 디렉토리 지정 가능 |
| 98 | + |
| 99 | + |
| 100 | +---- |
| 101 | +<h1class="site-genre">읽을거리</h1> |
| 102 | + |
| 103 | +---- |
| 104 | + |
| 105 | +##Modern JavaScript in NGINX: QuickJS Engine Support for njs – NGINX Community Blog |
| 106 | +[blog.nginx.org/blog/quickjs-engine-support-for-njs](https://blog.nginx.org/blog/quickjs-engine-support-for-njs"Modern JavaScript in NGINX: QuickJS Engine Support for njs – NGINX Community Blog") |
| 107 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">nginx</span> <spanclass="jser-tag">JavaScript</span> <spanclass="jser-tag">article</span></p> |
| 108 | + |
| 109 | +NGINX의 njs은 QuickJS 엔진으로 선택해 이용 가능 |
| 110 | + |
| 111 | + |
| 112 | +---- |
| 113 | + |
| 114 | +##JavaScript scope hoisting is broken |
| 115 | +[devongovett.me/blog/scope-hoisting.html](https://devongovett.me/blog/scope-hoisting.html"JavaScript scope hoisting is broken") |
| 116 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">JavaScript</span> <spanclass="jser-tag">bundler</span> <spanclass="jser-tag">article</span></p> |
| 117 | + |
| 118 | +Rollup이 하는 Scope Hoisting은, Code splitting과 개념과 충돌해서 문제가 발생하는 것에 대한 글. |
| 119 | +모듈 실행순서 문제나 모듈을 함수로 래퍼할 때 최적화 문제에 대하여 |
| 120 | + |
| 121 | + |
| 122 | +---- |
| 123 | + |
| 124 | +##4 Untranslatable Words Behind Patreon's Internationalization Overhaul |
| 125 | +[www.patreon.com/posts/133137028](https://www.patreon.com/posts/133137028"4 Untranslatable Words Behind Patreon's Internationalization Overhaul") |
| 126 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">i18n</span> <spanclass="jser-tag">JavaScript</span> <spanclass="jser-tag">article</span></p> |
| 127 | + |
| 128 | +로컬라이즈 된 컨텐츠를 작성할 때 조심하는 것. |
| 129 | + |
| 130 | +- 조건식에서 문장을 나눌 때는, 완전한 문장으로 나눈다 |
| 131 | +- 수치 표현은 늘 Intl 이용 |
| 132 | +- 조건 표현도 로컬라이즈한다 |
| 133 | + |
| 134 | +로컬라이즈 시스템 이행할 때 일어난 문제와 해결 방법도 다룬다 |
| 135 | + |
| 136 | + |
| 137 | +---- |
| 138 | + |
| 139 | +##Modern Node.js Patterns for 2025 |
| 140 | +[kashw1n.com/blog/nodejs-2025/](https://kashw1n.com/blog/nodejs-2025/"Modern Node.js Patterns for 2025") |
| 141 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">nodejs</span> <spanclass="jser-tag">article</span></p> |
| 142 | + |
| 143 | +최신 Node.js에서 이용 가능한 기능 관련하여. |
| 144 | +ESM,`node:` prefix, built-in fetch API이나 testing framework 이용, top-level await. |
| 145 | +Worker threads에 의한 병렬처리, AbortController에 의한 취소 처리, async iterators에 의한 이벤트 처리. |
| 146 | +Permission model, import maps에 의한 모듈 해결, Single Executable Applications에 의한 단일 실행 가능 파일 작성 관련 |
| 147 | + |
| 148 | + |
| 149 | +---- |
| 150 | +<h1class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 151 | + |
| 152 | +---- |
| 153 | + |
| 154 | +##xmcp — The TypeScript MCP framework |
| 155 | +[xmcp.dev/](https://xmcp.dev/"xmcp — The TypeScript MCP framework") |
| 156 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">TypeScript</span> <spanclass="jser-tag">MCP</span> <spanclass="jser-tag">library</span></p> |
| 157 | + |
| 158 | +TypeScript의 MCP 서버 프레임워크 |
| 159 | + |
| 160 | + |
| 161 | +---- |
| 162 | + |
| 163 | +##typescript-eslint/tsgolint: ✨ Experimental proof-of-concept typescript-go powered JS/TS linter written in Go |
| 164 | +[github.com/typescript-eslint/tsgolint](https://github.com/typescript-eslint/tsgolint"typescript-eslint/tsgolint: ✨ Experimental proof-of-concept typescript-go powered JS/TS linter written in Go") |
| 165 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">TypeScript</span> <spanclass="jser-tag">ESLint</span> <spanclass="jser-tag">library</span></p> |
| 166 | + |
| 167 | +TSLint 규칙을 tsgo로 동작시키면 어느 정도 빨라지는가 실험적 구현. |
| 168 | +ESLint의 AST으로 변환없이 TS AST를 그대로 다루는 변경도 있어서, 20-40배 정도 빨리 체크 |
| 169 | + |
| 170 | + |
| 171 | +---- |
| 172 | + |
| 173 | +##josdejong/jsonrepair: Repair invalid JSON documents |
| 174 | +[github.com/josdejong/jsonrepair](https://github.com/josdejong/jsonrepair"josdejong/jsonrepair: Repair invalid JSON documents") |
| 175 | +<pclass="jser-tags jser-tag-icon"><spanclass="jser-tag">JSON</span> <spanclass="jser-tag">JavaScript</span> <spanclass="jser-tag">library</span></p> |
| 176 | + |
| 177 | +Invalid한 JSON 문자열을 JSON으로 고쳐주는 도구 |
| 178 | + |
| 179 | + |
| 180 | +---- |