|
| 1 | +--- |
| 2 | +title: "2023-10-16: Lit 3, Chrome 118, Zod 작성하기" |
| 3 | +author: "azu" |
| 4 | +translator: rewrite0w0 |
| 5 | +layout: post |
| 6 | +date : 2023-10-16T12:44:04.356Z |
| 7 | +category: JSer |
| 8 | +tags: |
| 9 | +- Bun |
| 10 | +- npm |
| 11 | +- Chrome |
| 12 | +- UI |
| 13 | +- parcel |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +JSer.info #665 - Web Components 라이브러리 Lit 3.0가 출시되었습니다. |
| 18 | + |
| 19 | +- [Lit Launch Day: Lit 3.0, Labs graduations, a compiler and more! – Lit](https://lit.dev/blog/2023-10-10-lit-3.0/) |
| 20 | +- [Lit 3 upgrade guide – Lit](https://lit.dev/docs/v3/releases/upgrade/) |
| 21 | + |
| 22 | +Lit 3는, IE11 지원 종료, 최소 실행 환경을 ES2021 지원하는 브라우저로 변경했습니다. |
| 23 | +Lit 2.0에서 비권장된 API 삭제, Stage 3 Decorator 대응했습니다. |
| 24 | +또한, 새롭게 Lit 템플릿 컴파일러 공개, Preact Signals 통합하는 패키지도 공개했습니다. |
| 25 | + |
| 26 | +--- |
| 27 | + |
| 28 | +Chrome 118 출시되었습니다. |
| 29 | + |
| 30 | +- [New in Chrome 118 - Chrome for Developers](https://developer.chrome.com/en/blog/new-in-chrome-118/) |
| 31 | + |
| 32 | +Chrome 118에서는 CSS의 `@scope` 규칙 지원합니다. |
| 33 | + |
| 34 | +- [Limit the reach of your selectors with the CSS `@scope` at-rule - Chrome for Developers](https://developer.chrome.com/articles/at-scope/) |
| 35 | + |
| 36 | +Media Query에서 JavaScript가 유효한지 판단하는 `scripting` 추가, DevTools의 "Sources" 패널 개선, `zstd`의 Content-Encoding 지원이 있습니다. |
| 37 | + |
| 38 | +---- |
| 39 | + |
| 40 | +[Write your own Zod](https://zackoverflow.dev/writing/write-your-own-zod)에서는, [Zod](https://github.com/colinhacks/zod) 같은 스키마 기반 검증을 어떻게 동작하는가 해설합니다. |
| 41 | + |
| 42 | +mini Zod로 불리는 귀여운 Zod 클론 코딩하면서, 스키마 객체에서 자료형을 Infer하는 방법, 검증 구현 방법에 대해 해설합니다. |
| 43 | + |
| 44 | +---- |
| 45 | + |
| 46 | +{% include inline-support.html %} |
| 47 | + |
| 48 | +---- |
| 49 | + |
| 50 | +<h1 class="site-genre">헤드라인</h1> |
| 51 | + |
| 52 | +---- |
| 53 | + |
| 54 | +## Lit Launch Day: Lit 3.0, Labs graduations, a compiler and more! – Lit |
| 55 | +[lit.dev/blog/2023-10-10-lit-3.0/](https://lit.dev/blog/2023-10-10-lit-3.0/ "Lit Launch Day: Lit 3.0, Labs graduations, a compiler and more! – Lit") |
| 56 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">UI</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 57 | + |
| 58 | +Lit 3.0 출시. |
| 59 | +IE11 지원 종료, 최소 실행환경을 ES2021 지원하는 브라우저로 변경. |
| 60 | +Lit 2.0에서 비권장이었던 API 삭제, Stage 3의 Decorator에 대응. |
| 61 | +새로히 Lit 템플릿 컴파일러 공개, Preact Signals 통합하는 패키지 공개. |
| 62 | + |
| 63 | +- [Lit 3 upgrade guide – Lit](https://lit.dev/docs/v3/releases/upgrade/ "Lit 3 upgrade guide – Lit") |
| 64 | + |
| 65 | +---- |
| 66 | + |
| 67 | +## Bun v1.0.5 | Bun Blog |
| 68 | +[bun.sh/blog/bun-v1.0.5](https://bun.sh/blog/bun-v1.0.5 "Bun v1.0.5 | Bun Blog") |
| 69 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 70 | + |
| 71 | +Bun v1.0.5 출시. |
| 72 | +Fetch 메모리 누수 수정, `bun run --if-present` 지원, `package-lock.json`을 `bun.lockb`으로 변환해주는 `bun pm migrate` 명령어 추가. |
| 73 | +`peerDependencies`을 자동으로 설치하도록 변경 |
| 74 | + |
| 75 | + |
| 76 | +---- |
| 77 | + |
| 78 | +## Release v2.10.0 · parcel-bundler/parcel |
| 79 | +[github.com/parcel-bundler/parcel/releases/tag/v2.10.0](https://github.com/parcel-bundler/parcel/releases/tag/v2.10.0 "Release v2.10.0 · parcel-bundler/parcel") |
| 80 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">parcel</span> <span class="jser-tag">ReleaseNote</span></p> |
| 81 | + |
| 82 | +Parcel v2.10.0 출시. |
| 83 | +지연 컴파일 대상 지정할 수 있는 `--lazy [glob]`와 `--lazy-excludes` 추가. |
| 84 | +Rust 모듈을 하나의 패키지 매니저로 함으로 중복 Crates 삭제해 사이즈 경감, 또한 병렬 처리 효율적으로 하게 성능 개선됨. |
| 85 | + |
| 86 | + |
| 87 | +---- |
| 88 | + |
| 89 | +## Fresh 1.5: Partials, client side navigation and more |
| 90 | +[deno.com/blog/fresh-1.5](https://deno.com/blog/fresh-1.5 "Fresh 1.5: Partials, client side navigation and more") |
| 91 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">library</span></p> |
| 92 | + |
| 93 | +Fresh 1.5 출시. |
| 94 | +화면 전환 해당 영역을 파편해서 얻을 수 있는 `<Partial>` 추가. |
| 95 | +현재 경로와 일치하는 `<a>` 요소에 `data-current` 추가, 커스텀 빌드 타겟을 지정할 수 있는 `build.target` 객체 추가. |
| 96 | +esbuild 사용해서 bundle 파일 분석해서 메타파일 생성 기능 지원, 에러 오버레이 지원 |
| 97 | + |
| 98 | + |
| 99 | +---- |
| 100 | + |
| 101 | +## Bun v1.0.6 | Bun Blog |
| 102 | +[bun.sh/blog/bun-v1.0.6](https://bun.sh/blog/bun-v1.0.6 "Bun v1.0.6 | Bun Blog") |
| 103 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">yarn</span> <span class="jser-tag">npm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 104 | + |
| 105 | +Bun v1.0.6 출시. |
| 106 | +npm의 `overrides` 필드, yarn의 `resolutions` 필드 지원. |
| 107 | + |
| 108 | + |
| 109 | +---- |
| 110 | + |
| 111 | +## Electron 27.0.0 | Electron |
| 112 | +[www.electronjs.org/blog/electron-27-0](https://www.electronjs.org/blog/electron-27-0 "Electron 27.0.0 | Electron") |
| 113 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Electron</span> <span class="jser-tag">ReleaseNote</span></p> |
| 114 | + |
| 115 | +Electron 27.0.0 지원. |
| 116 | +macOS 10.13/10.14 지원 종료, `ipcRenderer.sendTo()` API 비권장화 |
| 117 | + |
| 118 | + |
| 119 | +---- |
| 120 | + |
| 121 | +## Astro 3.3: Picture component | Astro |
| 122 | +[astro.build/blog/astro-330/](https://astro.build/blog/astro-330/ "Astro 3.3: Picture component | Astro") |
| 123 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">astro</span> <span class="jser-tag">ReleaseNote</span></p> |
| 124 | + |
| 125 | +Astro 3.3 출시. |
| 126 | +`<picture />` 컴포넌트 추가, 신택스 하이라이트에 사용했던 라이브러리를 `shiki`에서 `shikiji`로 변경 |
| 127 | + |
| 128 | + |
| 129 | +---- |
| 130 | + |
| 131 | +## Vite (Unstable) (dev branch) | Remix |
| 132 | +[remix.run/docs/en/dev/future/vite](https://remix.run/docs/en/dev/future/vite "Vite (Unstable) (dev branch) | Remix") |
| 133 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Remix</span> <span class="jser-tag">vite</span> <span class="jser-tag">document</span></p> |
| 134 | + |
| 135 | +Remix의 Vite 지원. |
| 136 | +Vite의 플러그인으로 Remix가 동작할 수 있게끔. |
| 137 | + |
| 138 | +- [Just use vite! · remix-run/remix · Discussion #7632](https://github.com/remix-run/remix/discussions/7632 "Just use vite! · remix-run/remix · Discussion #7632") |
| 139 | + |
| 140 | +---- |
| 141 | + |
| 142 | +## Release v4.1.0 · rollup/rollup |
| 143 | +[github.com/rollup/rollup/releases/tag/v4.1.0](https://github.com/rollup/rollup/releases/tag/v4.1.0 "Release v4.1.0 · rollup/rollup") |
| 144 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">rollup</span> <span class="jser-tag">ReleaseNote</span></p> |
| 145 | + |
| 146 | +Rollup v4.1.0 출시. |
| 147 | +객체를 갖는 객체를 비트 플러그로 관리해서 메모리 소비량을 경감하는 개선 포함. |
| 148 | + |
| 149 | + |
| 150 | +---- |
| 151 | + |
| 152 | +## New in Chrome 118 - Chrome for Developers |
| 153 | +[developer.chrome.com/en/blog/new-in-chrome-118/](https://developer.chrome.com/en/blog/new-in-chrome-118/ "New in Chrome 118 - Chrome for Developers") |
| 154 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Chrome</span> <span class="jser-tag">ReleaseNote</span></p> |
| 155 | + |
| 156 | +Chrome 118 변경점 관련. |
| 157 | +CSS의 `@scope` 규칙 지원, Media Query에서 JavaScript가 유효한지 판단하는 `scripting` 추가. |
| 158 | +DevTools으 "Sources" 패널 개선, `zstd`의 Content-Encoding 지원. |
| 159 | + |
| 160 | + |
| 161 | +---- |
| 162 | +<h1 class="site-genre">읽을거리</h1> |
| 163 | + |
| 164 | +---- |
| 165 | + |
| 166 | +## Limit the reach of your selectors with the CSS \`@scope\` at-rule - Chrome for Developers |
| 167 | +[developer.chrome.com/articles/at-scope/](https://developer.chrome.com/articles/at-scope/ "Limit the reach of your selectors with the CSS \`@scope\` at-rule - Chrome for Developers") |
| 168 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">CSS</span> <span class="jser-tag">article</span></p> |
| 169 | + |
| 170 | +CSS `@scope` 관련한 글. |
| 171 | +`@scope` 덕에 셀렉터 범위를 제한할 수 있으며, 스코프는 특별히 영향없음. |
| 172 | +또한, `@scope { }`와 루트 지정없이 지정할 수 있는 scoped style을 다루는 prelude-less `@scope`에 대해서도 다룬다 |
| 173 | + |
| 174 | + |
| 175 | +---- |
| 176 | + |
| 177 | +## What's New in DevTools (Chrome 118) - Chrome for Developers |
| 178 | +[developer.chrome.com/blog/new-in-devtools-118/](https://developer.chrome.com/blog/new-in-devtools-118/ "What's New in DevTools (Chrome 118) - Chrome for Developers") |
| 179 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Chrome</span> <span class="jser-tag">debug</span> <span class="jser-tag">article</span></p> |
| 180 | + |
| 181 | +Chrome 118 개발자 모드 변경점에 대해. |
| 182 | +local overrides 개선, 코드 검색 개선, Sources 패널 개선, Lighthouse 11으로 업데이트 |
| 183 | + |
| 184 | + |
| 185 | +---- |
| 186 | + |
| 187 | +## Write your own Zod |
| 188 | +[zackoverflow.dev/writing/write-your-own-zod](https://zackoverflow.dev/writing/write-your-own-zod "Write your own Zod") |
| 189 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">article</span></p> |
| 190 | + |
| 191 | +Zod 같은 스키마 검증을 만드는 방법에 대해서. |
| 192 | +Zod 같이 스키마 객체에서 자료형을 Infer하는 방법, 검증 구현에 대해. |
| 193 | + |
| 194 | + |
| 195 | +---- |
| 196 | + |
| 197 | +## Flat config rollout plans - ESLint - Pluggable JavaScript Linter |
| 198 | +[eslint.org/blog/2023/10/flat-config-rollout-plans/](https://eslint.org/blog/2023/10/flat-config-rollout-plans/ "Flat config rollout plans - ESLint - Pluggable JavaScript Linter") |
| 199 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">article</span></p> |
| 200 | + |
| 201 | +앞으로 Config 파일에 관련하여. |
| 202 | +ESLint 9에서는 `eslint.config.js`의 Flat Config가 기본이 되어, `.eslintrc.*` 형식은 비권장이 됨. |
| 203 | +`.eslinrc.*` 지원은 ESLint 10에서 삭제 예정. |
| 204 | + |
| 205 | + |
| 206 | +---- |
| 207 | +<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 208 | + |
| 209 | +---- |
| 210 | + |
| 211 | +## react-hookz/web: React hooks done right, for browser and SSR. |
| 212 | +[github.com/react-hookz/web](https://github.com/react-hookz/web "react-hookz/web: React hooks done right, for browser and SSR.") |
| 213 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span></p> |
| 214 | + |
| 215 | +서버렌더링할 때 동작하는 React Hooks 콜렉션 라이브러리. |
| 216 | +`react-use` 계승을 의식하며 제작되었음 |
| 217 | + |
| 218 | + |
| 219 | +---- |
| 220 | + |
| 221 | +## elbywan/zap: Another \[insert blazing fast synonyms\] JavaScript package manager |
| 222 | +[github.com/elbywan/zap](https://github.com/elbywan/zap "elbywan/zap: Another \[insert blazing fast synonyms\] JavaScript package manager") |
| 223 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">package</span> <span class="jser-tag">console</span> <span class="jser-tag">Tools</span></p> |
| 224 | + |
| 225 | +Crystal 언어로 작성된 npm 패키지 매니저. |
| 226 | + |
| 227 | + |
| 228 | +---- |
0 commit comments