|
| 1 | +--- |
| 2 | +title: "2025-08-31: Bun v1.2.21, Apollo Client v4, nx 패키지 침해와 공급망 공격" |
| 3 | +author: "azu" |
| 4 | +translator: rewrite0w0 |
| 5 | +layout: post |
| 6 | +date: 2025-08-31T09:33:32.067Z |
| 7 | +category: JSer |
| 8 | +tags: |
| 9 | + - nodejs |
| 10 | + - ESLint |
| 11 | + - express |
| 12 | + - Bun |
| 13 | + - GraphQL |
| 14 | +--- |
| 15 | + |
| 16 | +JSer.info #746 - Bun v1.2.21 가 출시되었다. |
| 17 | + |
| 18 | +- [Bun v1.2.21 | Bun Blog](https://bun.com/blog/bun-v1.2.21) |
| 19 | + |
| 20 | +`Bun.SQL`가 MySQL/MariaDB/SQLite/PostgreSQL 대응, YAML 네이티브 지원이 추가되었다. 또한, `Bun.secrets` 추가, `Bun.build` API으로 `--compile` 지원, `bunx`으로 `--package` 플래그 지원이 포함된다. |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +Apollo Client 4.0 가 출시되었다. |
| 25 | + |
| 26 | +- [Release @apollo/client@4.0.0 · apollographql/apollo-client](https://github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.0.0) |
| 27 | +- [Migrating to Apollo Client 4.0 - Apollo GraphQL Docs](https://www.apollographql.com/docs/react/migrating/apollo-client-4-migration) |
| 28 | + |
| 29 | +React 의존을 `@apollo/client/react`으로 분리해서 코어를 프레임워크에 의존하지 않게 함, 에러 핸들링 업데이트로 `ApolloError` 폐지, Link 클래스화하는 큰 변경 포함. 또한, `@defer` 지원, React Compiler으로 컴파일된 Hooks 공개, SSR API 업데이트 됨. |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +nx 패캐지에 멀웨어를 포함한 부정한 버전 공개되는 문제가 발생했다. |
| 34 | + |
| 35 | +- [Malicious versions of Nx and some supporting plugins were published · Advisory · nrwl/nx](https://github.com/nrwl/nx/security/advisories/GHSA-cxm3-wv7p-598c) |
| 36 | +- [Supply Chain Security Alert: Popular Nx Build System Package Compromised with Data-Stealing Malware - StepSecurity](https://www.stepsecurity.io/blog/supply-chain-security-alert-popular-nx-build-system-package-compromised-with-data-stealing-malware) |
| 37 | + |
| 38 | +21.5.0, 20.9.0, 20.10.0 복수 버전에 문제가 있고, 데이터 훔치는 멀웨어가 포함되었다. |
| 39 | +해당 버전을 사용하고 있는 경우는, nx 패키지 업데이트가 필요하다. |
| 40 | + |
| 41 | +--- |
| 42 | + |
| 43 | +{% include inline-support.html %} |
| 44 | + |
| 45 | +--- |
| 46 | + |
| 47 | +<h1 class="site-genre">헤드라인</h1> |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## ESLint v9.34.0 released - ESLint - Pluggable JavaScript Linter |
| 52 | + |
| 53 | +[eslint.org/blog/2025/08/eslint-v9.34.0-released/](https://eslint.org/blog/2025/08/eslint-v9.34.0-released/ "ESLint v9.34.0 released - ESLint - Pluggable JavaScript Linter") |
| 54 | + |
| 55 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">ReleaseNote</span></p> |
| 56 | + |
| 57 | +ESLint v9.34.0 출시. |
| 58 | +`--concurrency=auto`으로 multithread linting 지원 |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## Bun v1.2.21 | Bun Blog |
| 63 | + |
| 64 | +[bun.com/blog/bun-v1.2.21](https://bun.com/blog/bun-v1.2.21 "Bun v1.2.21 | Bun Blog") |
| 65 | + |
| 66 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 67 | + |
| 68 | +Bun v1.2.21 출시. |
| 69 | +`Bun.SQL`가 MySQL/MariaDB/SQLite/PostgreSQL 이용 가능, YAML 네이티브 지원, `Bun.secrets` 추가. |
| 70 | + |
| 71 | +`Bun.build` API으로 `--compile` 지원, `bunx`가 `--package` 플래그 지원 |
| 72 | + |
| 73 | +--- |
| 74 | + |
| 75 | +## Release @apollo/client@4.0.0 · apollographql/apollo-client |
| 76 | + |
| 77 | +[github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.0.0 ](https://github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.0.0 "Release @apollo/[email protected] · apollographql/apollo-client") |
| 78 | + |
| 79 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">GraphQL</span></p> |
| 80 | + |
| 81 | +Apollo Client 4.0 출시. |
| 82 | +React 의존을 `@apollo/client/react`으로 분리해서 코어를 프레임워크 의존하지 않게 함, `ApolloClient`에서 `link` 필수화 / `uri` 같은 단축 명령 삭제. |
| 83 | +에러 핸들링 업데이트해서 `ApolloError` 폐지하고 에러 그 자체를 준비된 클래스로 변경, Link는 함수에서 클래스화, RxJS를 표준 Observable 구현에 선정. |
| 84 | +`dataState` 프로퍼티에 쿼리 결과를 알 수 있도록, `@defer` 지원, `localState` 옵션 추가, React Compiler로 컴파일 된 Hooks 공개. |
| 85 | +TypeScript 네임스페이스 간 자료형 정리 / 엄격화와 트리쉐이킹 개선, SSR API 업데이트(`prerenderStatic`). |
| 86 | +`useLazyQuery`의 API 변경, `useQuery`에서 `onCompleted`와 `onError` 삭제. |
| 87 | +마이그레이션을 위한 Codemod도 제공. |
| 88 | + |
| 89 | +- [Migrating to Apollo Client 4.0 - Apollo GraphQL Docs](https://www.apollographql.com/docs/react/migrating/apollo-client-4-migration "Migrating to Apollo Client 4.0 - Apollo GraphQL Docs") |
| 90 | + |
| 91 | +--- |
| 92 | + |
| 93 | +## Malicious versions of Nx were published · Advisory · nrwl/nx |
| 94 | + |
| 95 | +[github.com/nrwl/nx/security/advisories/GHSA-cxm3-wv7p-598c](https://github.com/nrwl/nx/security/advisories/GHSA-cxm3-wv7p-598c "Malicious versions of Nx were published · Advisory · nrwl/nx") |
| 96 | + |
| 97 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">security</span> <span class="jser-tag">ReleaseNote</span></p> |
| 98 | + |
| 99 | +`nx` 패키지 멀웨어를 포함된 버전이 공개된 문제. |
| 100 | +다음 버전에는 문제가 있어서 대응 필요 |
| 101 | + |
| 102 | +- 21.5.0 |
| 103 | +- 20.9.0 |
| 104 | +- 20.10.0 |
| 105 | +- 21.6.0 |
| 106 | +- 20.11.0 |
| 107 | +- 21.7.0 |
| 108 | +- 21.8.0 |
| 109 | +- 20.12.0 |
| 110 | + |
| 111 | +관련 글: |
| 112 | + |
| 113 | +- [Supply Chain Security Alert: Popular Nx Build System Package Compromised with Data-Stealing Malware - StepSecurity](https://www.stepsecurity.io/blog/supply-chain-security-alert-popular-nx-build-system-package-compromised-with-data-stealing-malware "Supply Chain Security Alert: Popular Nx Build System Package Compromised with Data-Stealing Malware - StepSecurity") |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +## Announcing Rspack 1.5 - Rspack |
| 118 | + |
| 119 | +[rspack.rs/blog/announcing-1-5](https://rspack.rs/blog/announcing-1-5 "Announcing Rspack 1.5 - Rspack") |
| 120 | + |
| 121 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">rspack</span> <span class="jser-tag">ReleaseNote</span></p> |
| 122 | + |
| 123 | +Rspack 1.5 출시. |
| 124 | +Node.js 16 지원 종료. |
| 125 | +Barrel file 최적화, `watchpack` 대신 네이티브 구현 추가, `@rspack/browser`으로 브라우저에서의 bundle 지원. |
| 126 | +Rust로 Rspack 확장하는 binding 걸어둠, 정수 인라인화 지원 |
| 127 | + |
| 128 | +--- |
| 129 | + |
| 130 | +## Node.js v22.19.0 (LTS) |
| 131 | + |
| 132 | +[nodejs.org/en/blog/release/v22.19.0](https://nodejs.org/en/blog/release/v22.19.0 "Node.js v22.19.0 (LTS) ") |
| 133 | + |
| 134 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">rlee</span></p> |
| 135 | + |
| 136 | +Node.js v22.19.0 출시. |
| 137 | +`NODE_USE_SYSTEM_CA=1` 추가, `--experimental-wasm-modules` 플래그 제거하는 변경, `zstdCompress` 사전을 지원 |
| 138 | + |
| 139 | +--- |
| 140 | + |
| 141 | +## Node.js v24.7.0 (Current) |
| 142 | + |
| 143 | +[nodejs.org/en/blog/release/v24.7.0](https://nodejs.org/en/blog/release/v24.7.0 "Node.js v24.7.0 (Current)") |
| 144 | + |
| 145 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p> |
| 146 | + |
| 147 | +Node.js v24.7.0 출시. |
| 148 | +`node:crypto`에서 Post-Quantum Cryptography으로 ML-KEM/ML-DSA 지원, Web Cryptography API 지원 개선. |
| 149 | +single executable applications에서 `execArgv` 필드 지원 |
| 150 | + |
| 151 | +--- |
| 152 | + |
| 153 | +## August 25, 2025 Release – React Spectrum Releases |
| 154 | + |
| 155 | +[react-spectrum.adobe.com/releases/2025-08-25.html](https://react-spectrum.adobe.com/releases/2025-08-25.html "August 25, 2025 Release – React Spectrum Releases") |
| 156 | + |
| 157 | +<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> |
| 158 | + |
| 159 | +React Spectrum August 25, 2025 Release. |
| 160 | +Popover/Tooltip 의 origin-aware overlay 애니메이션 추가, Autocomplete를 RC화, `GridListSection` 추가 |
| 161 | + |
| 162 | +--- |
| 163 | + |
| 164 | +<h1 class="site-genre">읽을거리</h1> |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +## Run Express.js on Cloudflare Workers |
| 169 | + |
| 170 | +[jross.me/run-express-js-on-cloudflare-workers/](https://jross.me/run-express-js-on-cloudflare-workers/ "Run Express.js on Cloudflare Workers") |
| 171 | + |
| 172 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">express</span> <span class="jser-tag">article</span></p> |
| 173 | + |
| 174 | +Cloudflare Workers의 `enable_nodejs_http_server_modules` 플래그로 express가 동작할 수 있는 이야기 |
| 175 | + |
| 176 | +--- |
| 177 | + |
| 178 | +## The Power Of The Intl API: A Definitive Guide To Browser-Native Internationalization — Smashing Magazine |
| 179 | + |
| 180 | +[www.smashingmagazine.com/2025/08/power-intl-api-guide-browser-native-internationalization/](https://www.smashingmagazine.com/2025/08/power-intl-api-guide-browser-native-internationalization/ "The Power Of The Intl API: A Definitive Guide To Browser-Native Internationalization — Smashing Magazine") |
| 181 | + |
| 182 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">i18n</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span></p> |
| 183 | + |
| 184 | +Intl API에 대하여 |
| 185 | + |
| 186 | +--- |
| 187 | + |
| 188 | +## The Complete Guide to Self-Hosting Next.js at Scale — @dlhck |
| 189 | + |
| 190 | +[dlhck.com/thoughts/the-complete-guide-to-self-hosting-nextjs-at-scale](https://dlhck.com/thoughts/the-complete-guide-to-self-hosting-nextjs-at-scale "The Complete Guide to Self-Hosting Next.js at Scale — @dlhck") |
| 191 | + |
| 192 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Next.js</span> <span class="jser-tag">article</span></p> |
| 193 | + |
| 194 | +Next.js 셀프호스팅할 때 조심해야할 점과 설정에 대하여 |
| 195 | + |
| 196 | +--- |
| 197 | + |
| 198 | +<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 199 | + |
| 200 | +--- |
| 201 | + |
| 202 | +## sidequestjs/sidequest: Sidequest is a modern, scalable background job processor for Node.js applications. |
| 203 | + |
| 204 | +[github.com/sidequestjs/sidequest](https://github.com/sidequestjs/sidequest "sidequestjs/sidequest: Sidequest is a modern, scalable background job processor for Node.js applications.") |
| 205 | + |
| 206 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">library</span></p> |
| 207 | + |
| 208 | +Node.js에서 백그라운드 작업을 처리하는 라이브러리. |
| 209 | +`node:worker_threads` 사용하여 구현 |
| 210 | + |
| 211 | +- [Sidequest.js](https://sidequestjs.com/posts/intro-to-sidequest/ "Sidequest.js") |
| 212 | + |
| 213 | +--- |
| 214 | + |
| 215 | +## adamhl8/filterql: A tiny query language for filtering structured data |
| 216 | + |
| 217 | +[github.com/adamhl8/filterql](https://github.com/adamhl8/filterql "adamhl8/filterql: A tiny query language for filtering structured data") |
| 218 | + |
| 219 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">search</span></p> |
| 220 | + |
| 221 | +데이터 스키마를 정의해서, 검색하는 DSL 제공하는 라이브러리. |
| 222 | +일치 검색, 비교, 정렬하는 검색 연산자에 대응. |
| 223 | + |
| 224 | +--- |
| 225 | + |
| 226 | +## image-js/image-js: Image processing and manipulation in JavaScript |
| 227 | + |
| 228 | +[github.com/image-js/image-js](https://github.com/image-js/image-js "image-js/image-js: Image processing and manipulation in JavaScript") |
| 229 | + |
| 230 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Image</span> <span class="jser-tag">library</span></p> |
| 231 | + |
| 232 | +JavaScript에서 이미지 처리하는 라이브러리. |
| 233 | +Node.js와 브라우저에서 동작하며, PNG/JPEG/TIFF 이미지 읽고 쓰기와, 픽셀 단위 처리, 필터, 마스킹 이미지 처리 제공 |
| 234 | + |
| 235 | +--- |
0 commit comments