2021-08 
λ§ν¬ & μ½μ거리
An Introduction to WebAssembly for JavaScript Developers
μ΄ λ¬Έμλ JavaScript WebAssembly μΈν°νμ΄μ€μ λν μκ° κΈλ‘ JavaScript μ½λκ° wasmκ³Ό μ΄λ»κ² μνΈμμ©νλμ§μ ν¨κ» λνΌ(Emscripten λꡬ λ±μ ν΅ν΄ μμ±λ)λ₯Ό ν΅ν ꡬν λ°©μμ λν΄λ μ€λͺ νλ€.
wasmμ κ΄μ¬μ΄ μκ²Όλ€λ©΄, μ΄μ΄μ 15k λΌμΈμ C++ μ½λλ‘ μμ±λ λ λλ§ μμ§μ wasm λ³νκΈ° κΈλ μ¬λ―Έμκ² μ½μ μ μμ κ²μ΄λ€.
Porting a C++ Rendering Engine to WebAssembly
ESM doesn't need to break the ecosystem
μ€λ μκ° λμ npm ν¨ν€μ§λ₯Ό λ€λ£¨λ νκ²½μμ κ°λ°ν΄ μλ€λ©΄ λͺ¨λ μ¬μ©κ³Ό κ΄λ ¨ν΄μ CommonJS(require()
) λ¬Έλ²μ΄ ESM λ³΄λ€ λ μΉμν κ²μ΄λ€. κ·Έλ¬λ CommonJSλ νμ€ μμμ μνμ§ μμΌλ©°, ESM λ±μ₯ μ΄νλ‘ μ 체 μνκ³λ μ μ§μ μΌλ‘ ESMμΌλ‘ μ νμ΄ μ΄λ€μ§ κ²μ΄λ€.
μ΄ κΈμ CommonJS ν¨ν€μ§λ₯Ό μμ ESM ν¨ν€μ§λ‘ μ ννλ λ°©λ²κ³Ό μνκ³ νΈνμ±μ μν Dual CJS/ESM λͺ¨λ ν¨ν€μ§λ₯Ό μ΄λ»κ² λ§λ€ μ μλμ§ μ€λͺ νλ€.
μμ(Pure) ESM ν¨ν€μ§κ° 무μμΈμ§, κ·Έλ¦¬κ³ νμ€μ μ΄μλ€μ λν΄ κΆκΈνλ€λ©΄ λ€μ λ§ν¬λ₯Ό μΆκ°λ‘ μ°Έκ³ νλΌ.
Pure ESM package
How to use finite state machines in React?
Finite state machines(μ ν μν κΈ°κ³)λ μμ€ν μ μν(νμ)λ₯Ό κΈ°μ νλλ° μ¬μ©λλ μνμ λͺ¨λΈμ΄λ€. μ£Όμ΄μ§ κ°μ²΄κ° κ°μ§ μ μλ λͺ¨λ μνμ μν κ°μ μ νμ λ€λ£¨λ©°, κΈ°λ³Έ κ·μΉμ μν μμ€ν μ ν λ²μ νλμ μνμλ§ μμ μ μλ€λ κ²μ΄λ€. (νμ€ μΈκ³μμμ μλ μ νΈλ±μ λ μ¬λ € λ³Ό μ μλ€.)
μ΄ κΈμ React νλ‘μ νΈμ μΌλ°μ μν κ΄λ¦¬μμ finite state machineμ μ¬μ©μΌλ‘ μ ννλ μμ λ₯Ό ν΅ν΄ λ³΄λ€ μμ μ± λμ μ½λλ₯Ό μμ±νλ λ°©λ²μ μκ°νλ€.
OpenJS World 2021

μ§λ 6μ, 리λ μ€ μ¬λ¨ μ°νμ OpenJS μ¬λ¨μ΄ ν΄λ§λ€ μ£Όμ΅νλ μ½νΌλ°μ€λ‘ μ΄ 6κ° νΈλμ λ€μν μμ§μ JavaScript μνκ³ κ΄λ ¨ μΈμ λ€μ νμΈν΄ λ³Ό μ μλ€.
Yarn 3.0 ππ€ Performances, ESBuild, Better Patches, ...
ν¨ν€μ§ κ΄λ¦¬μμΈ Yarnμ μ°¨κΈ° λ©μ΄μ 릴리μ€μΈ 3.0μ λν μμ μ΄ μμλμκ³ , μ΄λ€ κΈ°λ₯λ€μ΄ ν¬ν¨λ μ§λ₯Ό μκ°νλ κΈμ΄λ€.
Yarn 1 β 2λ‘μ λ§μ΄κ·Έλ μ΄μ κ³Όμ μμμ λΆνΈν¨μ μ κ±°ν΄, λͺ¨λ λ²μ μμ 3μΌλ‘μ λ§μ΄κ·Έλ μ΄μ μ μ½κ² λ§λ€κ³ , Node 10+ μ΄μμ λ²μ μ μ§μν κ³νμ΄λΌκ³ λ°νκ³ μλ€.
[μ°Έκ³ ] yarn berry μ μ©κΈ°
A Visual Guide to React Rendering - It Always Re-renders

React μ ν리μΌμ΄μ ꡬ쑰μ μν―κ° λ³κ²½μ λ°λΌ μ»΄ν¬λνΈλ³ μ¬ λ λλ§μ΄ λ°μνλ κ³Όμ μ μκ°μ μμ λ₯Ό ν΅ν΄ 보μ¬μ£Όκ³ , React.memoλ₯Ό ν΅ν΄ λΆνμν μ¬ λ λλ§μ λ°©μ§ν μ μλμ§ μ€λͺ νλ€.
μν―κ°μ μ΄μ΄, propsλ₯Ό λ€λ£¬ κΈλ μ΄μ΄μ 보면 μ’λ€.
A Visual Guide to React Rendering - Props
Deep JavaScript: Theory and techniques

μΈμ΄(JavaScript)λ₯Ό λ³΄λ€ μ λ€λ£° μ μλ μ€μ©μ μΈ κΈ°λ²λ€κ³Ό ECMAScript μ€νμ κΈ°λ°ν μΈμ΄μ μΈ‘λ©΄μμμ λμκ³Ό κ·Έ μ΄μ μ λν΄ μ€λͺ νλ μ± μ΄λ€. (HTML λ²μ μ 무λ£λ‘ μ 곡λλ€.)
νλ μμν¬λ λꡬ νκ²½ λ±μ΄ μλ JavaScriptλ₯Ό λ³΄λ€ κΉκ² μ΄ν΄νκ³ μ λ€λ£¨κ³ μΆμ μ΄μκ² ν° λμμ΄ λ κ²μ΄λ€.
Vite: Rethinking Frontend Tooling
Viteλ Vue.js κ°λ°μμΈ Evan Youκ° μλ‘κ² κ°λ°ν λΉλ λꡬλ‘, κ°λ° μμλ λ²λ€λ§μ μννμ§ μκ³ ESMμ ν΅ν΄ νμν λͺ¨λλ§ λ‘λ©νκ³ μ΄ν νλ‘λμ λΉλλ Rollupμ μ¬μ©νλ€.
Evan Youλ μ¨λΌμΈ μΈμ μ ν΅ν΄ νλ‘μ νΈμ μμΈν λ°°κ²½(κΈ°μ μ μΈλΆμ¬ν λ° μ€κ³ κ³Όμ )μ μκ°νλ©°, Viteλ₯Ό ν΅ν΄ 무μμ ν΄κ²°νλμ§ μ λΉ λ₯Έμ§ κ·Έλ¦¬κ³ JS λꡬ μμμ μ λ μ ν©νμ§ μ€λͺ νλ€.
RenderingNG

Chrome κ°λ°νμ μ§λ 8λ μ¬μ μμ μ ν΅ν΄ Chromiumμ Blink λ λλ§ μμ§μ μλ‘κ² μ¬μ€κ³ν μν€ν μ²μΈ RenderingNG(Next Generation)λ₯Ό 곡κ°νλ€.
RenderingNGμ λ³΄λ€ μμ μ μΈ λ λλ§ μ±λ₯μ ꡬννλ κ²μ μμΌλ©°, μμΈ‘ κ°λ₯νκ³ μ λ’°ν μ μλ μ±λ₯, νλμ¨μ΄ κΈ°λ₯ μ¬μ©μ κ·Ήλν, νμλλ λ΄μ©μ νμν μμ λ§μ μν, λ λλ§ λΉμ©μ κ΄λ¦¬ν μ μλ κ°λ°μ APIs μ 곡, λΉμ£ΌμΌ μ½ν μΈ μ΅μ ν λ±μ μμ μ΄ ν¬ν¨λλ€.
RenderingNGλ λ€μν μ£Όμ νλ‘μ νΈλ€(CompositeAfterPaint, LayoutNG, λ±)λ‘ κ΅¬μ±λμ΄ μμΌλ©°, μ΄λ€μ λν΄μλ μ΄μ΄μ§λ μλ¦¬μ¦ κΈμ ν΅ν΄ μμΈν λ΄μ©μ 곡κ°ν μμ μ΄λΌκ³ νλ€.
λ³΄λ€ μμΈν μν€ν μ²λ μ΄μ΄μ§λ λ€μ μλ¦¬μ¦ κΈμ μ°Έκ³ νλΌ.
Overview of the RenderingNG architecture
RenderingNGμ λν κ°λ΅ν μμ½μ λ€μμ μ°Έκ³ νλΌ.
Chromiumμ΄ λ°νν RenderingNGκ° λ¬΄μμΈκ°?
The future of CSS: Nesting Selectors
CSS μ μ²λ¦¬κΈ°μΈ LESS/SASS λ±μ μ¬μ©ν΄ λ³Έ κ²½νμ΄ μλ€λ©΄, μ€μ²© κ·μΉμ ν΅ν΄ μμ μ νμμ λ§€μΉν μ μλ &
κ·μΉμ λν΄ μ μκ³ μμ κ²μ΄λ€.
μ΄λ₯Ό λ³λμ λꡬλ₯Ό ν΅ν΄ λ³ν μμ΄ λ€μ΄ν°λΈμμ μ¬μ©ν μ μκ² νλ "Nesting Selector"(CSS Nesting Module) μ€νμ λν μ μμΌλ‘, κΈ°λ³Έμ λ¬Έλ²κ³Ό μ¬μ© μμ λ±μ μκ°νλ€.
table.colortable {
& td {
text-align: center;
&.c { text-transform: uppercase }
&:first-child, &:first-child + td { border: 1px solid black }
}
& th {
text-align: center;
background: black;
color: white;
}
}
CSSWGμ 2021/7/7, κ΄λ ¨ μ μμ λν΄ Public Working Draft λ°νμ λμν΄ νμ€νλ₯Ό ν₯ν μ¬μ μ΄ μμλμλ€.
CSS νμ€ν νλ‘μΈμ€μ λν΄μλ λ€μμ μ°Έκ³ νλΌ.
An Inside View of the CSS Working Group at W3C
Next Gen CSS: @container
Containment Level 3 specμ μΌμμΈ @container
μμ±μ λΆλͺ¨ 컨ν
μ΄λμ ν¬κΈ°λ₯Ό κΈ°μ€ν΄ μμλ₯Ό μ€νμΌλ§ ν μ μκ² νλ€.
μ¬μ©μ μν΄μ μ΅μ Chrome(v91+)μμ λ€μ νλκ·Έλ₯Ό νμ±νν΄μΌ νλ€.
chrome://flags/#enable-container-queries
Building A Dynamic Header With Intersection Observer

λ·° μμμμ νΉμ μμκ° μ€ν¬λ‘€ λ¨μ λ°λΌ λμ μΌλ‘ λ°μνλ UIλ₯Ό ꡬννλ €κ³ ν λ Intersection Observer APIλ₯Ό νμ©ν μ μλ€. μ΄ κΈμμ μ 곡νλ λ°λͺ¨λ₯Ό νμΈν΄ λ³Έλ€λ©΄ Intersection Observerλ₯Ό λ μ½κ² μ΄ν΄ν μ μμ κ²μ΄λ€.
JS books
무λ£λ‘ λ€μ΄λ‘λνκ±°λ μ½μ μ μλ λ€μν JavaScript μμ λ€μ λν λͺ©λ‘μ μ 곡νλ€.
νν 리μΌ
Journey of a web page π£οΈ - How browsers work

μ¬μ©μκ° λΈλΌμ°μ μμ μΉ μ£Όμλ₯Ό μ λ ₯νκ³ , κ·Έ κ²°κ³Όλ‘ μΆλ ₯λλ μΉ νμ΄μ§ μ¬μ΄μλ μ΄λ€ μΌλ€μ΄ λ°μν κΉ?
λΈλΌμ°μ κ° λμνλ λ°©μμ λν΄μ λ§μ΄ λ€λ€μ Έ μμ§λ§, λ€νΈμν¬ λ 벨μμμ κ³Όμ κ³Ό μ΄ν λΈλΌμ°μ μμμ μ²λ¦¬ κ³Όμ λ€μ μμ°¨μ νλ¦μ λ°λΌ λ΄μ©μ μ΄ν΄ν μ μλλ‘ μ€λͺ νκ³ μμ΄ λ³΄λ€ λμ μκ°μμ μΉμ μ΄ν΄ν μ μλλ‘ λμμ£Όλ κΈμ΄λ€.
How to write unit tests in JavaScript with Jest
λ¨μ ν μ€νΈλ λ§€μ° μ€μνμ§λ§, λν λ§μ κ²½μ° κ°κ³Όλλ μμμ΄κΈ°λ νλ€. μ’μ νμ§μ κ°λ μ½λμ λν μ΄μ μ νμ€ν λΆμ μ μΈ λ©΄λ³΄λ€ ν¬μ§λ§, λ³λμ μκ°μ λ€μ¬ λ¨μ ν μ€νΈλ₯Ό μμ±νλ κ²μ νμ λΆλ΄μ€λ¬μ΄ μμμ΄κΈ°λ νλ€.
μμ§ λ¨μ ν μ€νΈ μ½λ μμ±μ μ΅μμΉ μλ€λ©΄, μ΄ νν 리μΌμ ν΅ν΄ λ¨μ ν μ€νΈ μμ±μ μμν΄ λ³΄μ.
μ½λμ λꡬ
Windows 11 in React
μΉ νμ€ κΈ°μ (React)μ μ¬μ©ν΄, μΉμμ Windows 11 λ°μ€ν¬ν± λ²μ μ κ²½νν΄ λ³Ό μ μλλ‘ λ³΅μ ν νλ‘μ νΈλ€.
https://win11.blueedge.me/
Vanillaλ‘ κ΅¬νν Windows 7 νλ‘μ νΈλ μ°Έκ³ ν΄ λ³΄λΌ.
https://desk.glitchy.website/
Abracadabra

VS Codeμμ μ 곡νλ κΈ°λ³Έμ 리ν©ν λ§μ λν΄ λ¦¬ν©ν λ§μ λΉ λ₯΄κ³ μμ νκ² μνν μ μλ μΆκ°μ κΈ°λ₯μ μ 곡νλ νλ¬κ·ΈμΈμ΄λ€.
리ν©ν λ§ μλνλ₯Ό μν΄ μ 곡λλ μ 체 κΈ°λ₯ λͺ©λ‘μ λ€μμ μ°Έκ³ νλΌ.
List of available refactorings
slinky
Slinkyλ Scalaλ‘ React μ ν리μΌμ΄μ μ μμ±ν μ μλ νλ μμν¬λ€.
solid
Solidλ μ¬μ©μ μΈν°νμ΄μ€λ₯Ό λ§λ€ μ μλ μ μΈμ μ΄λ©°, μ μ°ν λΌμ΄λΈλ¬λ¦¬λ€.
VDOMμ μ¬μ©νμ§ μκ³ ν νλ¦Ώμ ν΅ν΄ μ€μ DOMμΌλ‘ μ»΄νμΌνλ©°, μνμ μ’ μλ μ½λλ§μ΄ μ λ°μ΄νΈ λλλ‘ λν λλ€.
// solidλ‘ μμ±λ κ°λ¨ν μΉ΄μ΄ν° μ¦κ° μμ μ½λ
import { render } from "solid-js/web";
import { createSignal } from "solid-js";
function Counter() {
const [count, setCount] = createSignal(0);
const increment = () => setCount(count() + 1);
return (
<button type="button" onClick={increment}>
{count()}
</button>
);
}
render(() => <Counter />, document.getElementById("app"));
μ§μ solid μ ν리μΌμ΄μ μ μμ±νκ³ ν μ€νΈ ν΄λ³Ό μ μλ€.
Solid Playground
solidμ λ³΄λ€ μμΈν λ΄μ©μ λ€μ κΈμ μ°Έκ³ νλΌ.
SolidJS Official Release: The long road to 1.0