2024-07 
๐ ๋งํฌ & ์ฝ์ ๊ฑฐ๋ฆฌ
Web Engines Hackfest 2024
Web Engines Hackfest๋ 2009๋ WebkitGTK+ Hackfest๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฒ์ ์์๋ ์ด๋ ๋งคํด ์งํ๋๋ ์ฝํผ๋ฐ์ค๋ค. ๋ช ์นญ์์ ์ ์ ์๋ฏ์ด ๋ธ๋ผ์ฐ์ ์ ๊ด๋ จ ํ์ค, ๊ทธ๋ฆฌ๊ณ ์น ์์ง ์ฃผ์ ๋ค์ ์ง์ค์ ์ผ๋ก ๋ค๋ฃฌ๋ค.
์ฌํด๋ ์ด 8๊ฐ์ ์ธ์ ์ด ์งํ๋์๊ณ , ํฅ๋ฏธ๋ก์ด ๋ช๋ช ์ธ์ ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
-
The Future of Source Maps (๋ฐํ์๋ฃ) - Jonathan Kuperman
- ์์ค ๋งต์ 2009๋ ์ฒ์ ๊ฐ๋ฐ๋ ํ๋ก ์ฌ์์ ํฌ๊ฒ ๋ณํ์ง ์์๋ค. ์ด๋ก ์ธํด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์ ์ฒด๋์ด ์์ผ๋, 2023๋ ์ ํ๋ํ๋ฅผ ์ํ ๊ทธ๋ฃน์ด ๊ตฌ์ฑ๋์ด ๊ณต์ TC39 ํ ์คํฌ ๊ทธ๋ฃน์ผ๋ก ์น๊ฒฉ๋์๋ค. ์ด ์ธ์ ์ ์ฌ์์ ํฌํจ๋ ํฅ๋ฏธ๋ก์ด ์ ๊ท ๊ธฐ๋ฅ๋ค์ ์๊ฐํ๋ค.
-
Firefox Wayland post mortem (๋ฐํ์๋ฃ) - Martin Stransky -Firefox๋ ์ต๊ทผ ๋์คํ๋ ์ด ํ๋กํ ์ฝ์ธ Wayland๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ํํ๋ค. ์ ํ์ ๋ฐ๋ฅธ ์ฅ๋จ์ ๊ณผ ์ฌ์ฉ์์ ๋ฐ์์ ๋ํ ํฌ์คํธ ๋ชจํ ์ ๊ณต์ ํ๋ค.
-
Nova JavaScript Engine โ Exploring a Data-Oriented Engine Design (๋ฐํ์๋ฃ) - Aapo Alasuutari
- ๋ฐ์ดํฐ ์งํฅ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ Rust์์ ๊ธฐ๋ณธ JavaScript ์์ง์ ์์ฑํ ๋์ ์ฅ/๋จ์ ์ ์ดํด๋ณธ๋ค.
-
Sustainable Futures: Funding the Web Ecosystem (๋ฐํ์๋ฃ) - Stephanie Stimac
- ์น์ ์ธ๊ณ ์ฌํ ๊ธฐ๋ฐ ์์ค์ ๋ด๋นํ๊ณ , ํ๋ ์ฌํ์ ์ผ๊ณผ ์ถ์ ํ์ฑํ๊ณ ์๋ค. ๊ทธ๋ฌ๋ ์น ์ํ๊ณ์ ์ง์์ฑ์ ์ทจ์ฝํ๋ฉฐ ์ง์ ๋ถ๊ฐ๋ฅํ ์ํ์ ์ฒํด ์๋ค. ๋ฏธ๋ ์ธ๋๊ฐ ์์ ์ ์ด๊ณ ์ง์ ๊ฐ๋ฅํ ์ ๋ณด ์ ๊ทผ์ ์ ์งํ ์ ์๋๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ๋ค์ ๋ค๋ฃฌ๋ค.
-
History of WebGPU in Deno (๋ฐํ์๋ฃ) - Leo Kettmeir
- Deno๋ 2021๋ ์ด๋ถํฐ WebGPU๋ฅผ ์ง์ํด ์์ง๋ง, ์ฑ๋ฅ์ด ๋ฐ์ด๋ WebGPU ๊ตฌํ์ ์ ๊ณตํ๋ ๋ฐ์๋ ๋ช ๊ฐ์ง ์ด๋ ค์์ด ์์๋ค. ์ด ์ธ์ ์ ์ง์์ ๋ฌ์ฑํ๋ ๋ฐ ํ์ํ ์ผ๋ จ์ ์ด๋ฒคํธ์ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฐํ๋ค.
-
Status of the Layer-Based SVG Engine in WebKit (๋ฐํ์๋ฃ) - Nikolas Zimmermann
- HTML ๋ฐ SVG ๋ ๋๋ง ํ์ดํ๋ผ์ธ์ ํตํฉํ๊ธฐ ์ํ ์๋ก์ด Webkit ์ฉ SVG ์์ง์ธ LBSE(Layer Based SVG Engine)๋ฅผ ์๊ฐํ๋ค.
Config 2024

Config๋ Figma์์ ์ฃผ์ตํ๋ ๋์์ธ ์ปจํผ๋ฐ์ค๋ก, ์ด๋ฒ์ ์๊ฐ๋ ๊ธฐ๋ฅ๋ค ์ค AI ๊ธฐ๋ฐ์ ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ Front-end ๊ฐ๋ฐ์๋ค์ด ์ฃผ๋ชฉํ ๋งํ๋ค.
- ํ๋กฌํํธ ์ ๋ ฅ์ ํตํ ์๋ ๋์์ธ ์์ฑ
- ํ๋กํ ํ์ ์ ์๋ ์ฐ๊ฒฐ
์ด ๊ธฐ๋ฅ๋ค์ ๋์์ด๋์ ๊ฐ๋ฐ์์ ํจ์จ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ๊ฒ์ผ๋ก ๊ธฐ๋๋๋ค.
[์ฐธ๊ณ ] ํ๊ธ ์ปจํผ๋ฐ์ค ์์ฝ
Scan HTML faster with SIMD instructions: Chrome edition
์ต์ ํ๋ก์ธ์์๋ ํ ๋ฒ์ ์ฌ๋ฌ ๋ฐ์ดํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ช ๋ น์ด๊ฐ ์๊ณ , ์ฌ์ค์ ํ ๋ฒ์ 16๋ฐ์ดํธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. ์ด๋ฌํ ๋ช ๋ น์ด๋ฅผ ๋จ์ผ ๋ช ๋ น์ด, ๋ค์ค ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ SIMD(Single Instruction Multiple Data)๋ผ ํ๋ค.
๋ช ๋ น์ด๊ฐ HTML ๋๋ JSON ๊ตฌ๋ฌธ ๋ถ์๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์์ ์ ๊ฐ์ํํ๋ ๋ฐ ์ ์ฉํ ์ ์๋์ง์ ๋ํด ์๋ฌธ์ ๋์์ผ๋ simdjson ํ์์ ๊ฐ์ด JSON ๊ตฌ๋ฌธ ๋ถ์์ SIMD ๋ช ๋ น์ด๊ฐ ์ค์ ๋ก ์๋ ๊ธฐ๋ก์ ๊นจ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ์๋ค.
์ด์ ์๊ฐ์ ๋ฐ์ Google Chrome ๋ธ๋ผ์ฐ์ (Chromium)์ ์์ง์ HTML ์ ๋ ฅ์ ๋ํ SIMD ๊ตฌ๋ฌธ ๋ถ์์ ์ฑํํ๋ค.
JavaScript Framework Maintainers on Unification Potential

React Summit 2024์ Fireside Chat ์ธ์ ์์ ์ค๋๋ ์ Front-end ํ๋ ์์ํฌ๋ค์ด Signals(Angular Signals, SolidJS signals)๊ณผ ๊ฐ์ ๋์ผ ๊ธฐ๋ฅ์ ํฅํด ๋์๊ฐ๊ณ ์๊ณ , ์ด ๋ฐฉํฅ์ฑ์ผ๋ก ๋์๊ฐ๋ค๋ฉด ์ธ์ ๊ฐ ํ๋์ ํ๋ ์์ํฌ๋ก ํตํฉ๋ ์ ์์ง ์์๊น์ ๋ํ ์๊ฒฌ์ ๋๋ด๋ค.
์ฌ์ค ๋ ผ์ ๊ฒฐ๊ณผ๋ฅผ ์งง๊ฒ ์์ฝํ๋ฉด, "๊ทธ๋ ์ง ์๋ค"์๋ค.
์ฃผ์ํ ํ๋ ์์ํฌ ๊ด๊ณ์๋ค์ ์๊ฒฌ์ ํตํด ์ด๋ ต๋ค๊ณ ์๊ฐํ๋ ์ด์ ์ ํจ๊ป ํํธ์ผ๋ก ์กฐ๊ธ์ ๊ฐ๋ฅ์ฑ์ ๋ํ ์๊ฐ๋ค๋ ํจ๊ป ์ฟ๋ณผ ์ ์๋ค.
So You Want To Build A Browser Engine
์ง์ง(?) ํ ๊ด์ ์์ Chromium๊ณผ ๊ฒฝ์ํ๊ฑฐ๋ ๋๋ ๋ฅ๊ฐํ๋ ๋ธ๋ผ์ฐ์ ์์ง์ ๋ง๋ค ๋ ์ฐธ๊ณ ํ ์ ์๋ ์กฐ์ธ๋ค์ ์ดํด๋ณผ ์ ์๋ค.
Progressive Web Apps (PWAs) Phishing

PWA๋ OS ๋ ๋ฒจ์์ ์ ํตํฉ๋ ์ฑ๊ณผ ๊ฐ์ด ๋์ํ๊ธฐ ๋๋ฌธ์ ํผ์ฑ ๋ชฉ์ ์ผ๋ก ํ์ฉ๋๊ธฐ ์ฝ๋ค. ์ฌ์ฉ์๊ฐ PWA ์ฑ์ ์ค์นํ๋ ๊ณผ์ ์์ ์ค์ ๋๋ฉ์ธ์ด ์๊ฒ ํ์๋๊ณ , ์ดํ ํ์ด์ง ์๋จ์ ๊ฐ์ง URL ํ์์ฐฝ์ ํตํด ์ฌ์ฉ์๋ฅผ ์์ผ ์ ์๋ค.
[์ฐธ๊ณ ] ํผ์ฑ์ ์ฌ์ฉ๋ ๋ฐ๋ชจ ์์ค๋ ๋ค์ ์ ์ฅ์์์ ํ์ธํ ์ ์๋ค.
- https://github.com/mrd0x/PWA-Phishing
News from WWDC24:WebKit in Safari 18 beta
Safari 18 Beta WebKit์ ์ถ๊ฐ๋ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ์๊ฐํ๋ค. Safari 18์ macOS Sequoia beta๋ฅผ ํตํด ์ฌ์ฉํด ๋ณผ ์ ์๋ค.
2023๋ ์ถ๊ฐ๋ Web Apps๋ ๋ชจ๋ ์น์ฌ์ดํธ(PWA ํํ์ด๊ฑฐ๋ ๊ทธ๋ ์ง ์์)๋ค์ dock์ ์์ฝ๊ฒ ์ถ๊ฐํด ์ฑ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ฒ ์ ๋ฐ์ดํธ๋ dock์ ํตํด ์ด๋ ค์๋ Web Apps์ ๋ํ ๋งํฌ๊ฐ ๋ค๋ฅธ ๊ณณ์์ ํด๋ฆญ๋๋ ๊ฒฝ์ฐ์๋ OS์ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ ์น์ฑ์ ํตํด ์ด๋ฆฌ๋๋ก ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค.
๋ํ HTML ์
๋ ฅ ์์๋ค์ ์ ์ ํ
์คํธ๋ฅผ ๋
ธ์ถํ๋๋ก ๊ตฌ์ฑํ ์ ์๋ writingsuggestions ์์ฑ์ ์ง์์ด ์ถ๊ฐ๋์๊ณ , ์ ๊ท์์์๋ Unicode 15.1.0 ๋ฌธ์๋ค์ ์ง์ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ ๊ฐ์ ์ ํ์ธํ ์ ์๋ค.
Inline conditionals in CSS?
CSS WG์ 24๋
6์ ํ์์์ ๋
ผ์๋ฅผ ํตํด ์ธ๋ผ์ธ if() ํจ์ ๋ฌธ๋ฒ ์ถ๊ฐ์ ๋ํ ํฉ์๋ฅผ ์ด๋ค๋ค.
/* ์ฌ์ฉ ์์ */
animation: if(media(prefers-reduced-motion) ? 10s : 1s) rainbow infinite;
ํฉ์๊ฐ ์ด๋ค์ง๊ธด ํ์ง๋ง, ํ์ค ๋ช ์ธ์ ๋๋ฌํ๊ธฐ ๊น์ง๋ ๊ธด ๊ณผ์ (๋๊ด์ ๊ด์ ์์๋ 2๋ ์ฌ)์ด ์์๋๋ค. ํ์ง๋ง ๋ค์ํ ์ฌ์ฉ์ฑ์ ์ ๊ณตํ ์ ์๋ค๋ ์ธก๋ฉด์์ ๊ธฐ๋๋๋ ๋ช ์ธ๋ค. ๋ช ์ธ์ ๋ํ ์์ธํ ๋ ผ์๋ ์ ์์๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
1,100km ๋จ์ด์ ธ ์๋ ์ฌ์ฉ์๋ฅผ ์ํ UX ๋ฆฌ์์น๋ถํฐ ๊ณผ๊ฐํ ๋ฆฌ๋ด์ผ๊น์ง์ ๊ธฐ๋ก
์ผ๋ณธ์ ์ต๋ ๊ท๋ชจ ์์ ๋ฐฐ๋ฌ ์๋น์ค์ธ ๋ฐ๋ง์์นธ์ MerchantApp UX/UI ๋ฆฌ๋ด์ผ ๊ฒฝํ์ ์๊ฐํ๋ ๊ธ์ด๋ค.
์ฃผ๋ฌธ์ ๋ฐ๊ณ ๋ฐฐ๋ฌ์์๊ฒ ์์์ ์ ๋ฌํ๋ ๊ณผ์ ์์ ์ฌ์ฉํ๋ ๊ฐ๋จํ ๋๊ตฌ๋ก ์๊ฐํ ์ ์์ง๋ง ๋งค์ฅ๋ง๋ค ๋ค๋ฅธ ์ด์๋ฐฉ์์ ๋ณต์กํจ๊ณผ ๋์งํธ ๋ฆฌํฐ๋ฌ์๊ฐ ๋ฎ์ ์ฐ๋ น๋๊ฐ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, ๋งค์ถ๊ณผ ์ง๊ฒฐ๋๋ ํ๋ก๋ํธ๋ผ๋ ์กฐ๊ฑด์ ๋์ ์ ์ธ ์ํฉ์์ ์ด๋ป๊ฒ ๊ฐ์ ์ ์๋ํ๋์ง ์๊ฐํ๋ค.
Transpiler, โ์ฌ์ฉโ๋ง๊ณ โํ์ฉโํ๊ธฐ
Transpiler์ ๊ธฐ๋ณธ์ ์ธ ์ฉ๋๋ ๋ค๋ฅธ ์ฝ๋๋ก ๋ณํํ๋ ๊ฒ์ ์๋ค. ๋จ์ํ ์ธ์ด์ ์ธ ๋ณํ์ ์ฉ๋์ ๋ํด ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค๊ณ , ํด๋ฆญ ๋์ ์์์ ๋ก๊น ์ ์ํ ์์ฑ์ ์๋์ผ๋ก ์ถ๊ฐํด ์ ์ ํ๋ ๋ฐ์ดํฐ ์์ง ๋ฐฉ๋ฒ์ ํจ์จํํ ๊ฒฝํ์ ์ฝ์ด๋ณผ ์ ์๋ค.
๐น ํํ ๋ฆฌ์ผ
Hands-On Guide to Property-Based Testing in JavaScript

์ผ๋ฐ์ ์ธ ํ ์คํธ ์๋๋ฆฌ์ค์์๋ ์์ ๊ธฐ๋ฐ ํ ์คํธ๋ฅผ ํตํด ํ๋์ฝ๋ฉ๋ ์ ๋ ฅ๊ฐ์ ์ฌ์ฉํ๊ณ , ์ด๋ฅผ ํ๋์ฝ๋ฉ๋ ๊ฒฐ๊ด๊ฐ๊ณผ ๋น๊ตํ๋ค. ํ์ง๋ง ์ด๋ฌํ ๋ฐฉ์์ ์์ธกํ์ง ๋ชปํ ์ ๋ ฅ๊ฐ์ ๋ํด ์ทจ์ฝํ ์๋ฐ์ ์๋ค. ์์ฑ ๊ธฐ๋ฐ ํ ์คํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒ ๊ฐ์ง์ ๋ฐ์ดํฐ ๋ณํ์ ์์ฑํ๊ณ , ํ ์คํธํ ์ ์๋ค.
How to publish a JavaScript package in 2024

Deno์ JSR์ ํฅ์๋ ๋ฌธ์์ ์ํํ ๋ฐํ์ ๊ฐ ํธํ์ฑ์ ํตํด ํจํค์ง์ ํผ๋ธ๋ฆฌ์ฑ๊ณผ ์๋น๋ฅผ ๊ฐ์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. ํนํ TypeScript๋ก JavaScript ํจํค์ง๋ฅผ ๋ฐฐํฌํ๋ ๊ธฐ์กด์ ๋ฐฉ๋ฒ์ transpiling, ๋ค์ํ ๋ด๋ณด๋ด๊ธฐ ์กฐ๊ฑด์ ๋ฐ๋ฅธ package.json ์ค์ , ๋์ฉ๋ npm tarball ์ฒ๋ฆฌ ๋ฑ์ ๋ณต์กํจ์ด ์๋ฐ๋๋ค.
์ด ์ธ์ ์ ๋ค์ํ ์ํฉ์ ๊ฐ์ ํด, ํจํค์ง๋ฅผ JSR์ ๋ฐฐํฌํ๊ณ ๊ธฐ์กด์ ๋ถํธํจ๋ค์ด ์ด๋ป๊ฒ ํด์๋ ์ ์๋์ง ๋ฐ๋ชจ๋ฅผ ํตํด ์๊ฐํ๋ค.
How to Make a CSS Timer
์นด์ดํธ๋ค์ด์ ๊ฐ๋ฐํด์ผ ํ๋ค๋ฉด, ์๋ง๋ JavaScript ํ์ด๋จธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ ์ฌ๋ฆด ๊ฒ์ด๋ค.
CSS ๋ง์ผ๋ก ์นด์ดํธ๋ค์ด์ ํํํ ์ ์๋ค๋ ์ฌ์ค์ ์๊ณ ์๋๊ฐ? CSS Houdini์ ์ผ์์ธ @property์ keyframe
์ ๋๋ฉ์ด์
์ ์ฌ์ฉํด ํ์ด๋จธ ์นด์ดํธ๋ค์ด์ ๊ตฌํํ ์ ์๋ค.
Array.reduce() is Goated ๐โจ
Array.reduce()์ ๊ฐ์ฅ ๋ํ์ ์ธ ์ฌ์ฉ์ ๋ฐฐ์ด์ ๊ฐ์ ๋ํ๋ ๊ฒฝ์ฐ์ด๋ค. ํ์ง๋ง ๊ทธ ์ธ์๋ ๋ฐฐ์ด์ ํํํ(flat), ํ๊ท ๊ฐ ๊ณ์ฐ, ๊ณ ์ ๊ฐ ์์ฑ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉ๋ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค.
๐ฆ ์ฝ๋์ ๋๊ตฌ
React Internals Explorer - easily see how React works

React Internals Explorer ๊ฐ๋ฐ์๋ 2021๋ ์ฒ์ React ์์ญ์ ๊น๊ฒ ํ๊ณ ๋ค๊ธฐ ์์ํ์ ๋, React ๋ด๋ถ๋ฅผ ์ดํดํ๊ธฐ ์ํ ๋ฐฉํธ์ผ๋ก ์ง์ ๋ค์ด์ด๊ทธ๋จ์ ๊ทธ๋ ค๋๊ฐ๋ค๊ณ ํ๋ค. ํ์ง๋ง ์ด๋ ๋ง์ ๋ ธ๋ ฅ์ด ์๋ฐ๋๊ณ , ์ ์ ์ด๋ฏธ์ง ์์ค์ ๊ทธ์ณค๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์๊ฐํํ๋ ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ ๋ ์ฌ๋ ธ๋ค๊ณ ํ๋ค.
Farm

Farm์ Vite์ ํธํ์ฑ์ ๊ฐ๋ Rust๋ก ์์ฑ๋ ์น ๋น๋ ๋๊ตฌ๋ค. ์์ฒด ๋ฒค์น๋งํฌ ์์ผ๋ก๋ webpack ๋๋น 20๋ฐฐ, Vite ๋๋น 10๋ฐฐ ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์ฌ์ค ์ ์๋ค๊ณ ํ๋ค.
jskidpix

Kid Pix๋ 1989๋ Macintosh ์ฉ์ผ๋ก ๊ฐ๋ฐ๋ ์ด๋ฆฐ์ด๋ค์ ์ํ ๋นํธ๋งต ๊ทธ๋ํฝ ์ํํธ์จ์ด๋ค. jskidpix๋ ์ด์ HTML/JS ๊ตฌํ์ฒด๋ก, Kid Pix์ ์ผ๋ถ ๊ธฐ๋ฅ์ ์ฌํํ๊ณ ์๋ค.
Tetris Font
Tetris Font๋ ํ ํธ๋ฆฌ์ค ๊ฒ์์ ๋ํ์ ์ด์ฉํด ์ ๋ ฅํ ๊ธ์๋ฅผ ๊ฒ์์ ๋์๊ณผ ๊ฐ์ด ํํํด ์ค๋ค.
smol-string
smol-string์ ๋ธ๋ผ์ฐ์ ์ localStorage(๋ํ SessionStorage)์ ํจ๊ป ์ฌ์ฉํ๋๋ก ์ค๊ณ๋ ์์ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, lz-string ๋์ฒด์ ๋ก ์ฌ์ฉ๋ ์ ์๋ค. ์ฌ์ฉ๋ฐฉ๋ฒ์ ์์ถ/ํด์ ํจ์๋ฅผ ํตํด ๊ฐ๋จํ ์ํํ ์ ์์ผ๋ฉฐ, ๋น๋๊ธฐ ์ํ์ WebWoker๋ฅผ ํตํด ์ฒ๋ฆฌ๋๋ค.
์์ฒด ๋ฒค์น๋งํฌ๋ฅผ ํตํด ๊ณต๊ฐ๋ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด ๋ชจ๋ ๋ถ๋ถ์์ lz-string ๋ณด๋ค ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค.
Ark UI
Ark UI๋ Chakra UI ๊ฐ๋ฐํ์์ ๊ฐ๋ฐํ headless UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก 37๊ฐ์ ๋ค์ํ ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ค. ํ์ฌ๋ React, Solid ๊ทธ๋ฆฌ๊ณ Vue์์ ์ฌ์ฉํ ์ ์๋ค.
matcha.css
matcha.css๋ ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ์คํ์ผ ์ํธ์ ์ ์ฌํ๊ฒ HTML ์์์ ์คํ์ผ์ ์ง์ ํ๋๋ก ์ค๊ณ๋ ์์ CSS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ฌ์ฉ์๊ฐ ๋ฌธ์ ์คํ์ผ๋ง์ ์ํ ์ถ๊ฐ ์์ ์ ์ํํ์ง ์๊ณ ์ฌ์ฉ๋๋๋ก ๊ตฌ์ฑ๋์๋ค. ๋น ๋ฅธ ํ๋กํ ํ์ดํ, ์ ์ HTML ํ์ด์ง, ๋งํฌ๋ค์ด์ผ๋ก ์์ฑ๋ ๋ฌธ์, ๋ณต์กํ CSS๋ฅผ ํ๊ณ ๋ค์ง ์๊ณ ์ํฌํ๋ก๋ฅผ ๊ฐ์ํํ๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ HTML ์์๋ฅผ ํ์ฉํ๋ ค๋ ๊ฐ๋ฐ์์๊ฒ ์ด์์ ์ด๋ค.
<link rel="stylesheet" href="https://matcha.mizu.sh/matcha.css">
๊ฐ๋จํ match.css ํ์ผ์ ๋ฌธ์์ ๋ก๋ฉํ๋ ๊ฒ๋ง์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ฌผ๋ก ํ์ํ ๊ฒฝ์ฐ ํ๊ทธ๋ค๊ณผ CSS ๋ณ์๋ค์ ์์ ์ ์คํ์ผ์ ๋ง๊ฒ ์ค๋ฒ๋ผ์ด๋ํ ์ ์๋ค.
dossi is now open source
dossi๋ GitHub ๋ด์ ๊ฐ์ธ ๋ ธํธ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์น์ฑ์ด๋ค. ๋์ค์ ๋ค์ ํ์ธํ๊ณ ์ถ์ ์ด์, ์์ด๋์ด, ์๊ฐ ๋ฑ์ ๊ธฐ๋กํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๋๊ตฌ๋ก 24๋ 5์ ์คํ์์ค๋ก ์ ํ๋์๋ค.
๊ธ์ ํตํด dossi ๊ฐ๋ฐ ๊ณผ์ ์์์ ๋์ ์ ์ธ ์ด์๋ค๊ณผ ๊ธฐ์ ์คํ ๋ฑ์ ํ์ธํ ์ ์๋ค.
One Million checkboxes
๋ ธ์ถ๋๋ ๋ฐฑ๋ง ๊ฐ์ ์ฒดํฌ๋ฐ์ค๋ค ์ค, ์ฐธ์ฌ์๋ค์ด ์ฒดํฌ(๋๋ ํด์ )ํ๋ฉด ์ฐธ์ฌ์ค์ธ ๋ค๋ฅธ ๋ชจ๋ ์ด๋ค์๊ฒ๋ ์ํ๊ฐ ๊ณต์ ๋๋ ๊ฒ์(?)์ด๋ค. ๊ฐ๋ฐ์๋ ์์ ์ ์น๊ตฌ์์ ๋ํ์์ ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ ธ๋ค๊ณ ํ๋ค.
ํจ์จ์ ์ธ ์ํ ์ ์ฅ์ ์ํด bit array๋ฅผ ์ฌ์ฉํ๊ณ , ์ํฏ๊ฐ์ redis์ ์ ์ฅ๋๋ค. ๊ฐ๋ณ์ ์ธ ํ ๊ธ์ ๋ธ๋ก๋์บ์คํ ์ ์น์์ผ์ ํตํด 30์ด๋ง๋ค ์ ์ก๋๋ฉฐ, react-window๋ฅผ ํตํด ๋ทฐํฌํธ์ ๋ ธ์ถ๋์ง ์๋ ์ฒดํฌ๋ฐ์ค๋ ๋ ๋๋ง ๋์ง ์๋๋ก ๊ตฌํํ๋ค๊ณ ํ๋ค.
[์ฐธ๊ณ ] ๊ฐ๋ฐ์์ ๋ธ๋ก๊ทธ์์ ๋ ๋ง์ ๊ฐ๋ฐ ๋ท์ด์ผ๊ธฐ๋ฅผ ํ์ธํ ์ ์๋ค.