2023-06 
π λ§ν¬ & μ½μ 거리
Reactμμ Viewμ λ λλ§ κ΄μ¬μ¬ λΆλ¦¬λ₯Ό μν VAC ν¨ν΄ μκ°
UI κ°λ°μμ JS κ°λ°μκ° νμ νλ κ²½μ° JSXλ₯Ό ν¨κ» μμ ν΄μΌ νλ μΌμ΄ μ’ μ’ λ°μνλ€. μ΄λ° κ²½μ° μ½λ μΆ©λμ΄ λ°μνκ±°λ, λ€λ₯Έ κ°λ°μκ° μμ±ν μ½λλ₯Ό μμ νκΈ° μ΄λ €μ΄ μΌμ΄ μκΈΈ μ μλ€.
VAC(View Asset Component) ν¨ν΄μ λ·° λ‘μ§κ³Ό JSX κ°λ° μμμ 격리ν¨μΌλ‘μ¨ μ΄λ¬ν νμ λ¬Έμ λ₯Ό μ€μΌ μ μλ ν¨ν΄μ΄λ€. λ€μμ VAC ν¨ν΄μ ν μλ‘, μ€ν λ°μ€ ꡬνμ νμν λ·° λ‘μ§μ λ³λ μ»΄ν¬λνΈλ‘ 격리νκ³ , UI ννμ νμν μ 보λ₯Ό propsλ‘ VACμκ² μ λ¬νκ³ μλ€:
// View Component
const SpinBox = () => {
const [value, setValue] = useState(0);
const props = {
value,
onDecrease: () => setValue(value - 1),
onIncrease: () => setValue(value + 1),
};
return <SpinBoxView {...props} />;
};
// VAC
const SpinBoxView = ({ value, onIncrease, onDecrease }) => (
<div>
<button onClick={onDecrease}>-</button>
<span>{value}</span>
<button onClick={onIncrease}>+</button>
</div>
);
λΉμ¦λμ€ λ‘μ§κ³Ό Viewμ κ΄μ¬μ¬λ₯Ό λΆλ¦¬νλ μ¬λ¬ κΈ°λ²μ΄λ ν¨ν΄μ μ μ©νμμλ μ¬μ ν JSX κ΄λ¦¬λ‘ μΈν΄ UI κ°λ°μμ JS κ°λ°μκ° νμ μ μ΄λ €μμ΄ μλ€λ©΄ VAC ν¨ν΄μ κ²ν ν΄ λ³΄λ κ²λ μ’μ λ―νλ€.
λ€μ΄λ² ν ν¬ν‘μμ κΈμ΄μ΄κ° λ°νν μμλ μ΄ν΄ λ³Ό μ μλ€: https://tv.naver.com/v/23162062
Best Practices and Design Patterns in React.js for High-Quality Applications
React μ±μ ꡬμΆν λ μκ³ μμΌλ©΄ μ μ©ν μ€κ³ λ°©λ²λ€κ³Ό ν¨ν΄μ λν΄ μ€λͺ νλ κΈμ΄λ€. νλ‘μ νΈλ₯Ό κΈ°λ₯ κΈ°λ° ν΄λ κ΅¬μ‘°λ‘ κ΅¬μ±, μκ³ μ§μ€λ μ»΄ν¬λνΈλ₯Ό μ μ§, λͺ ννκ³ μλ―Έ μλ μ΄λ¦μ μ¬μ©, μν κ΄λ¦¬ λ° API ν λΆλ¦¬ λ± κΈ°λ³Έμ μ΄μ§λ§ μ μ΅ν λ΄μ©λ€μ μ λ¦¬ν΄ λμλ€.
Next.js λ SSR κ΄λ ¨λ μ€λͺ μ μμ§λ§ React μ±μ λ§λ€ λ νμν κΈ°λ³Έμ μΈ λ΄μ©μ λ΄κ³ μμ΄μ νμ¬ Reactλ‘ κ°λ°νκ³ μκ±°λ κ°λ°ν μμ μ΄ μλ€λ©΄ ν λ²μ―€ μ½μ΄λ΄λ μ’μ κ²μ΄λ€.
κ°λ°μκ° μμλλ©΄ μ’μ 'μ¬ν κ°λ₯ν μμ ' νμ©λ²
μ’μ μ§λ¬Έμ νλ κ²μ μ΄λ ΅λ€. μ’μ μ§λ¬Έμ ν΄μΌ μ’μ, μνλ λ΅λ³μ μ»μ μ μλ€. μ΄λ¬ν μ’μ μ§λ¬Έμ νλ λ°©λ² μ€μλ 'μ¬ν κ°λ₯ν μμ 'λ₯Ό νμ©νλ λ°©λ²μ΄ μλ€. 'μ¬ν κ°λ₯ν μμ 'λ₯Ό νμ©νλ©΄ μ½λμ λ§₯λ½κ³Ό μν©μ μ ννκ³ μμΈνκ² μ λ¬ν μ μλ€.
μ΄ κΈμμλ 'μ¬ν κ°λ₯ν μμ 'λ 무μμΈμ§, μ΄λ»κ² λ§λ€ μ μλμ§μ λν΄ μ€λͺ νλ€. R νλ‘κ·Έλλ° κ΄λ ¨ μ΄μΌκΈ°κ° νλ°λΆμ ν¬ν¨λμ΄ μμΌλ, μ΄λ°λΆλ§ μ½μ΄ 보μλ μ’μ λ―νλ€.
React from Another Dimension
μ§λ 5μ 9~11μΌ μ§νλμλ Remix Conf 2023μμ Dan Abramovμ μΈμ μΌλ‘, λ Έλμ κ°μ¬λ₯Ό κ²μνκ³ λ³Ό μ μλ κ°μΈ μΉ μ¬μ΄νΈλ₯Ό React κ΅¬μ± μμλ₯Ό μ¬μ©ν΄ λ§λλ κ³Όμ μ λ€λ£¬λ€. μΈμ μ 컀λ€λ μ¨λΌμΈ λ°λͺ¨μ κ°μ΄ ꡬμ±λμ΄ μμΌλ©°, κΈ°λ₯μ ν κ°μ§μ© μΆκ°ν΄ λκ°λ©΄μ Reactκ° μ΄λ»κ² νμ©λλμ§λ₯Ό μ€λ¬΄μ κ΄μ μμ μ λ¬νλ€.
11 HTML best practices for login & sign-up forms
HTML μ리먼νΈμ μμ±μ μ νν μ¬μ©νλ κ²μ μ€μνλ€. μ νν μ¬μ©νλ€λ©΄ λ§μ λΆλΆ λΈλΌμ°μ μ λμμ λ°μ μ μλ€.
μ΄ κΈμμλ λ‘κ·ΈμΈμ μμλ‘ νμ¬ HTML μ리먼νΈμ μμ±μ μ νν μ¬μ©νλ λ°©λ²μ λν΄ μ€λͺ νλ€.
What's new in ECMAScript 2023
μ΄λ² ECMAScript 2023μ λμ λ μ κΈ°λ₯λ€μ μκ°νλ κΈμ΄λ€. νΉν μλ‘κ² μΆκ°λ λ°°μ΄ λ©μλλ₯Ό ν΅ν΄ λμ± μμΈ‘ κ°λ₯ν μ½λ μμ±μ΄ κ°λ₯ν΄μ§ μ μ΄ λμ λλ€. μλ‘μ΄ κΈ°λ₯μ κ΄μ¬μ΄ μλ€λ©΄ μ½μ΄λ³΄κΈΈ λ°λλ€.
μ£Όλμ΄ κ°λ°μλ₯Ό μν μμ² μ¬μ΄ TCP/IP 4κ³μΈ΅ μ΄μΌκΈ°
TCP/IP μ μ‘ κ³μΈ΅μ λν΄ νλ°°λ₯Ό μλ‘ λ€μ΄ μ€λͺ νλ€. λ€μ κΈλ‘λ μ£Όλμ΄ κ°λ°μλ₯Ό μν TCP/IP μ£Όμ νλ‘ν μ½ μμ보기λ μμΌλ κ΄μ¬ μλ€λ©΄ μ΄μ΄μ μ½μ΄λ³΄κΈΈ μΆμ²νλ€.
On commit messages
νλ‘μ νΈκ° μ€λ«λμ μ±κ³΅ν μ μλμ§λ μ½λ μ μ§ λ³΄μμ±μ λ¬λ € μλ€κ³ ν΄λ κ³ΌμΈμ μλλ€. κ·Έλ° λ©΄μμ μ»€λ° λ©μμ§λ μ λ§ μ€μνλ€. νλμ λͺ ννμ§ μμ μ»€λ° λ©μμ§κ° μ¬λ¬ κ°λ°μλ€μ μκ°μ νλΉνκ² λ§λ€κ³ , μ½λλ₯Ό λ³κ²½ν μ μκ² λ§λ€ μλ μλ€.
λ€μ μ€λλ κΈμ΄μ§λ§ μ΄ κΈμ κ·Έλ° μ»€λ° λ©μμ§μ μ€μμ±κ³Ό μ»€λ° λ©μμ§λ₯Ό μ΄λ»κ² μμ±ν΄μΌ νλμ§ μ μ€λͺ νκ³ μλ€.
리μ‘νΈ κ³΅μ λ¬Έμ νκΈ λ²μ (λΉκ³΅μ)
μ΅κ·Ό 리λ΄μΌλ React 곡μ λ¬Έμμ λΉκ³΅μ νκΈ λ²μ μ¬μ΄νΈμ΄λ€. μλ¬Έκ³Ό λ²μμ ν¨κ» λ³Ό μ μλλ‘ κ΅¬μ±λμ΄ μλ€.
Costly CSS Properties and How to Optimize Them
μ±λ₯μ λΉμ©μ΄ λ§μ΄ λλ CSS μμ±κ³Ό μ΄λ₯Ό μ΅μ ννλ λ°©λ²μ μ€λͺ
νλ κΈμ΄λ€. box-shadow
, filter
, border-radius
λ±μ΄ λΉμ©μ΄ λ§μ΄ λλ λνμ μΈ μμ±μ΄κ³ μ΄λ₯Ό κ°μ ν μ μλ λ°©μμ λν΄ μ€λͺ
νκ³ μλ€.
Will JavaScript Become the Most Popular WebAssembly Language?
λΈλΌμ°μ μμ νμ₯λμκΈ° λλ¬Έμ JavaScriptκ° Wasmμ μμ°μ€λ½κ² μ ν©ν κ²μ΄λΌκ³ μ½κ² μΆμΈ‘ν μ μλ€. κ·Έλ¬λ μλ Wasmμ κ°λ°μκ° JavaScriptλ₯Ό ν΅ν΄ λΈλΌμ°μ μμ λ€λ₯Έ μΈμ΄μ μνΈ μμ©ν μ μλλ‘ μ»΄νμΌνλ κ²μ΄μλ€.
νμ¬ μλ² μ¬μ΄λ Wasmλ₯Ό μν μ¬λ¬ λΉ λΈλΌμ°μ λ°νμ(Dockerμ Wasm μ§μ ν¬ν¨)μ΄ μλ€. νμ§λ§ Wasm λͺ¨λμ μ€μ λ‘ JavaScript λ°νμ(μ: V8) λ΄μμ μ€νλκΈ° λλ¬Έμ, Wasmμ λ²μ© λ°νμ μ νμ λ°λΌ JavaScriptμμ μ λ ¬ λν κ³μ μ€μν μλ°μ μλ€.
πΉ νν 리μΌ
How to draw any regular shape with just one JavaScript function
μΌκ°ν¨μμ canvasλ₯Ό μ΄μ©ν΄ μ½κ² μ λ€κ°νμ λ§λλ λ°©λ²μ μκ°νλ€.
μΆκ°λ‘ MDNμμ κΈ°μ‘΄μ κΈ°μ λ¬Έμλ₯Ό 보μνκΈ° μν λΈλ‘κ·Έλ₯Ό 5μλΆν° μμνμλ€.
π¦ μ½λμ λꡬ
The Epic Stack
μ΅μ μΉ κ°λ°μμ μ¬μ©ν μ μλ νλ₯ν λκ΅¬κ° λ무 λ§λ€. μ΄λ‘ μΈν΄ μ΅μ μΉ κ°λ°μ λλ‘ μ§μΉκ² λ§λ€κΈ°λ νλ€.
μ΄κ²μ μ’μ μ μ λλΆλΆμ κ²½μ° μλͺ»λ μ νμ νκΈ°κ° μ΄λ ΅λ€λ κ²μ΄λ€. μ ν리μΌμ΄μ μ ꡬμΆνλ λ° μ¬μ©ν μ μλ λλΆλΆμ νλ μμν¬μ λꡬμ μ₯λ¨μ μ λλ€μ μ±μ μ μ½ μ‘°κ±΄μ λ§λ€.
κ·ΈλΌμλ λΆκ΅¬νκ³ μμ§λμ΄λ€μ λΆμ λ§λΉλ‘ μΈν΄ μ§μμ μΌλ‘ μ΄λ €μμ κ²ͺκ³ μλ€. μ΄λ₯Ό μ΄λ»κ² ν΄κ²°ν μ μμκΉ?
React μνκ³μ μ£Όμ μΈλ¬Ό μ€ ν λͺ μΈ Kent C. Doddsλ μ€λ κ²½νμ λ°νμΌλ‘ νμ΄ μμ΄λμ΄λ₯Ό λ λΉ λ₯΄κ³ μμ μ μΈ κΈ°λ° μμμ νλ‘λμ μ μΆμν μ μλλ‘ λμμ£Όλ νλ‘μ νΈ μ€νν°(Remix κΈ°λ°)λ₯Ό 곡κ°νλ€.
Remix Conf μΈμ λ κ°μ΄ μ°Έκ³ ν΄ λ³΄κΈ° λ°λλ€.
μ μ¬ν Next.js κΈ°λ°μ μν°νλΌμ΄μ¦ boilerplate νλ‘μ νΈλ μλ€.
useHooks
ui.dev νμμ μ¬μ©νλ React Hooksλ₯Ό λͺ¨μλ μ¬μ΄νΈμ΄λ€. μμ μ¬κ°μ Hooksλ₯Ό μ 곡νλ€. μ§μ ꡬννκΈ°μλ λ²κ±°λ‘μ΄ useClickAway
μ κ°μ Hooksλ μμΌλ νλ² μ΄ν΄λ³΄κΈΈ λ°λλ€.
CodeJar
μΉμμ μ¬μ©ν μ μλ μ½λ μλν°μ΄λ€. λ€μν νλ‘κ·Έλλ° μΈμ΄μ μμ ν λ§λ₯Ό μ 곡νλ€.
pretty-ts-errors
νμ
μ΄ λ³΅μ‘ν΄μ§μλ‘ νμ
μ€ν¬λ¦½νΈμ μ€λ₯λ μ½κΈ° νλ€μ΄μ§λ€. μ¬μ€ λ΄κ° μκ³ μΆμ κ²μ email: string
μ΄ λλ½λμλ€λ μ¬μ€λΏμΈλ°λ νμ
μ€ν¬λ¦½νΈ μ€λ₯λ ...
μΌλ‘ μλ΅λ κΈ΄ μ€λ₯λ₯Ό 보μ¬μ£ΌκΈ°λ νλ€.
pretty-ts-errors νλ¬κ·ΈμΈμ νμ μλ¬μ ν΅μ¬λ§ μμ½ν΄μ 보μ¬μ€λ€. vscodeμμλ§ μ¬μ© κ°λ₯νλ€.
ts-pattern

λ λμ λ μμ ν 쑰건 μ²λ¦¬λ₯Ό λμμ£Όλ λΌμ΄λΈλ¬λ¦¬λ€.
- ν¨ν΄ λ§€μΉμ ν΅ν΄ 볡μ‘ν 쑰건μ νλμ κ°κ²°ν ννμμΌλ‘ ννν μ μλ€.
- μ½λκ° λ μ§§μμ§κ³ λ μ½κΈ° μ¬μμ§λ€.
- Exhaustiveness checkingμ ν΅ν΄ μ€μλ‘ λΉ νΈλ¦° μΌμ΄μ€λ₯Ό μ‘μμ€λ€.