2022-01 
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ํ๋กํ ํ์ ์ ์ ํํ์๊น?

ํ๋ผํค ์ธ๊ณ๊ด์ ์ํฅ์ ๋ฐ์ ๋ง๋ค์ด์ง ํด๋์ค
์ ๊ทธ ์ธ๊ณ๊ด์ ์ ๋ฉด์ผ๋ก ๋ฐ๋ฐํ๋ฉฐ ๋ง๋ค์ด์ง ํ๋กํ ํ์
์ ์ฒ ํ์ ์ธ ๋ฐฉ์์ผ๋ก ์ค๋ช
ํ๊ณ ์๋ค.
์ ์์ ์ด๋ฐ ๋
ํนํ ํด์์ hoisting, this, lexical scope, prototype์ ๋์ฑ ๋ช
ํํ๊ฒ ์ดํดํ ์ ์๊ฒ ๋์์ค๋ค.
์ด ๊ธ์ ํตํด '์๋ฐ์คํฌ๋ฆฝํธ๋ prototype์ผ๋ก ์์ํ๋ค'๋ผ๋ ์๋ชป๋ ํธ๊ฒฌ์ ๋ฒ๋ฆฌ๊ณ ๋ณด๋ค ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋๊ธธ ๋ฐ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋ฐํ๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๊ผญ ์ฝ์ด ๋ณด๊ธธ ์ ๊ทน ๊ถ์ฅํ๋ค.
The Future of Svelte (Interview with Rich Harris)

'21/11์, Svelte ๊ฐ๋ฐ์์ธ Rich Harris๊ฐ Next.js ๊ฐ๋ฐ์ฌ์ธ Vercel๋ก์ ์ด์ง์ ๋ํ ๊น์ง ๋ฐํ๊ฐ ์์๋ค. ์ด๋ Svelte ์ํ๊ณ์ ํฐ ๋ด์ค์ผ ์๋ฐ์ ์๋ ๊ฒ, Vercel์ React ๊ธฐ๋ฐ์ Next.js๋ฅผ ๊ฐ๋ฐํด์ค๊ณ ์๊ณ , ์ด๋ฅผ ํตํด ์ฃผ์ ๋น์ฆ๋์ค๋ฅผ ์ํํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ Vercel ํฉ๋ฅ๋ฅผ ๊ฒฐ์ ํ์๊น? ๊ทธ๋ฆฌ๊ณ Svelte์ ๋ฏธ๋๋ ์ด๋ป๊ฒ ๋๋ ๊ฑธ๊น?
A hundred things I learned working on the react team
Dan Abramov๊ฐ React ๊ฐ๋ฐํ์ ์ผ์์ผ๋ก ์ผํ๋ฉด์ ๋ฐฐ์ด ๋ด์ฉ๋ค์ 100๊ฐ์ ํธ์ ์ค๋ ๋๋ก ์ ๋ฆฌํ ๊ธ์ด๋ค. ๊ธฐ์ ์ ์ธ ๋ด์ฉ๊ณผ ํจ๊ป ํ๋ก์ ํธ ๊ด๋ฆฌ, ์ปค๋ฎค๋์ผ์ด์ ๋ฑ ๋ค์ํ ์ธ์ฌ์ดํธ๋ฅผ ์ฟ๋ณผ ์ ์๋ค.
์ผ๋ก๋ก 50๋ฒ์งธ ํธ์์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
50.ย naming is one of the most important decisions you will be doing. itโs not just bikeshedding. give it appropriate time and effort. you will mess it up anyway though.
[์ฐธ๊ณ ] ์ข ๋ ํธํ๊ฒ ์ฝ๊ณ ์ถ๋ค๋ฉด, ๋ค์ ๋งํฌ๋ฅผ ๋ฐฉ๋ฌธํ๋ผ. https://threadreaderapp.com/thread/1470613731071696896.html
Enzyme is dead. Now what?
React ํ
์คํ
์ ํธ๋ฆฌํฐ์ธ Enzyme์ ์ํ ๋น๊ณต์ React 17 ์ด๋ํฐ ํ๋ก์ ํธ enzyme-adapter-react-17
๊ฐ๋ฐ์์ธ Wojciech Maj์ ๊ธ๋ก, ํ์ฌ Enzyme์ ์ฌ์ฉํ๊ณ ์๊ณ ์์ผ๋ก React 18๋ก ์ด๋์ ๊ณ ๋ คํ๊ณ ์๋ค๋ฉด, ์ Enzyme ์ด์ธ์ ๋ค๋ฅธ ๋์ฒด์ฌ๋ฅผ ๋น์ฅ ์ฐพ์์ผ ํ๋์ง์ ๋ํด ์๊ธฐํ๋ค.
์์ ๋ํ ์ธ๊ธฐ ์๋ ๋ค์์ React ํ๋ก์ ํธ(React-PDF,ย React-Calendar, React-Date-Picker ๋ฑ)๋ฅผ ๊ฐ๋ฐํ๊ณ ์๊ณ , Enzyme ๊ธฐ๋ฐ์ ๋จ์ ํ ์คํธ๋ฅผ ์ํํ๊ณ ์์ง๋ง Enzyme์ React 17 ๊ณต์ ์ง์์ ์ํ PR์ด ์ค๋ซ๋์ ๋จธ์ง ๋์ง ์๊ณ ์๋ค๋ ์ ๊ณผ React 18 ์ง์์ ์ํด์๋ ์ด๋ํฐ ์ฐจ์๋ง์ ์์ ์ผ๋ก ํด๊ฒฐ๋ ์ ์๋ค๋ ์ ์ ๊ทผ๊ฑฐ๋ก ๋ค๊ณ ์๋ค.
Blogged Answers: A (Mostly) Complete Guide to React Rendering Behavior
Redux maintainer์ธ Mark Erikson์ด React Rendering์ ๋ํด ์ ๋ฆฌํ ๊ธ์ด๋ค. ๋น๊ต์ ์์ธํ ์ค๋ช ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด, React Rendering ๊ณผ์ ์ ๋ํด, ๊ทธ๋ฆฌ๊ณ ์ฑ๋ฅ ์ต์ ํ์ ๋ํด ๋ณด๋ค ๋์ ์ดํด๊ฐ ํ์ํ ์ฌ๋์ ์ฝ์ด๋ณด๊ธธ ์ถ์ฒํ๋ค.
Why TurboRepo Will Be The First Big Trend of 2022

ํฌ๊ณ ์์ ์ฌ๋ฌ ํ๋ก์ ํธ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ ํ ๋ monorepo๋ฅผ ๊ณ ๋ฏผํ์ง๋ง ์ธํ ํ๊ณ ์ต์ ํํ๋๋ฐ ๋ง์ ๋ฆฌ์์ค๋ฅผ ํ ์ ํด์ผ ํ๋ ์ฅ๋ฒฝ์ ๋ง์ฃผํ๊ฒ ๋๋ค.
Turborepo๋ ์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ JavaScript ๋ฐ TypeScript ์ฝ๋ ๋ฒ ์ด์ค์ฉ ๊ณ ์ฑ๋ฅ ๋น๋ ์์คํ ์ผ๋ก, ์บ์ฑ๊ณผ ์์ ์ค์ผ์ค๋ง ์ต์ ํ, CPU ๋ฆฌ์์ค๋ฅผ ์ต๋ํ ํ์ฉํ ๋ณ๋ ฌ์ ์ฒ๋ฆฌ ๋ฑ์ ๊ธฐ๋ฒ์ ํตํด ๋น๋ ์๋๋ฅผ 85ํ๋ก ํฅ์์ํฌ ์ ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ "Zero config"๋ฅผ ์งํฅํ๊ธฐ ๋๋ฌธ์ ๊ฐํธํ ์ค์ ์ผ๋ก ํธ๋ฆฌํ๊ฒ ์ด์ฉํ ์ ์๋ค๊ณ ํ๋ค.

๋ํ ์ ํต monorepo ๋๊ตฌ๋ค๊ณผ ์ฐจ์ด์ ์ผ๋ก pipeline ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ ์ด๊ฒ์ ๊ฐ๋ฐ์๊ฐ ๋ช ์์ ์ผ๋ก ์์ ๊ด๊ณ ๋ฐ ์์๋ฅผ ์ง์ ํ ์ ์์ด, ์๋ก์ด ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ๋ณด๊ณ ์์ ํ๋ฆ์ ๋น ๋ฅด๊ฒ ์ดํดํ ์ ์๊ฒ ๋๋ค. ์ด pipeline์ ์ ์๋ ์์ ๋ค์ ์์ ์ธ๊ธํ CPU์ ๋ฉํฐ์ฝ์ด ํ๋ก์ธ์๋ฅผ ์ต๋ํ ํ์ฉํด ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅธ ๋น๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
React Conf 2021
'21/12/9์ผ ์จ๋ผ์ธ์ผ๋ก ์งํ๋์๋ React Conf 2021
์ ๋ชจ๋ ์ธ์
์ด ๊ณต๊ฐ๋์๋ค. ์๋กญ๊ฒ ๊ฐ๋ฐ ์ค์ธ React Forget (auto-memoizing ์ปดํ์ผ๋ฌ)์ ์๋ก์ด ์ํคํ
์ฒ๋ก React Native ์ฌ์์ฑ ๊ณํ ๋ฑ์ ๋ํ ๋ด์ฉ์ ๊ณต๊ฐํ๋ค.
The State of CSS 2021
2021๋ ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ CSS ํํฉ ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ๊ฐ ๊ณต๊ฐ๋์๋ค. Front-end ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํ๋ CSS ๊ธฐ๋ฅ, ๊ธฐ์ , ๋๊ตฌ ๋ฑ์ ํต๊ณ๋ก ๋ณผ ์ ์์ด CSS ๊ด๋ จ ๊ธฐ์ ๊ณผ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๋ฐ์ ํฐ ์ฐธ๊ณ ๊ฐ ๋ ๊ฒ์ด๋ค. ๋ค์์ ํด๋น ์ค๋ฌธ์กฐ์ฌ์์ ๋ณผ ์ ์๋ ํต๊ณ ์์๋ค.
- CSS ํ๋ ์์ํฌ์ ๊ด๋ จํด์ Tailwind CSS ์ฌ์ฉ๋ฅ ์ด ์ ๋ ๋๋น 13%๋ก ํฐ ํญ์ผ๋ก ์์นํ๊ณ , Bootstrap์ด ์ฌ์ ํ ์ฌ์ฉ๋ฅ 1์๋ฅผ ์ฐจ์งํ๊ณ ์๋ค.
- 98.7%์ ๊ฐ๋ฐ์๊ฐ CSS์ Flexbox ๊ธฐ๋ฅ์ ์ฌ์ฉํด ๋ณธ ์ ์ด ์๋ค๊ณ ๋ตํ๋ค.
- 34%์ ๊ฐ๋ฐ์๊ฐ CSS-In-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ๋ณตํ๊ฒ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๋ตํ๋ค.
๋ํ, ๋งค๋ ๋ฐํํ๋ JavaScript ํํฉ ์ค๋ฌธ์กฐ์ฌ๋ 2022๋ 1์์ ๊ณต๊ฐ๋๋ค๊ณ ํ๋ค.
ํํ ๋ฆฌ์ผ
์ฐจ์ธ๋ CSS ๋ ์ด์์
Flex์ Grid ๋ ์ด์์์ด ๋ฑ์ฅํ ์ง ๊ฝค ๋์์ง๋ง ๋ฅ์ํ๊ฒ ์ ์ฌ์ฉํ๊ธฐ๋ ์ฝ์ง ์๋ค. ์ ์๋ ๋์์ด๋์ ๊ฐ๋ฐ์๋ก ์ผํ ๊ฒฝํ์ ํตํด ๋ค์์ 2๊ฐ ์๋ฆฌ์ฆ ๊ธ์ ํตํด Flex์ Grid์ ๊ฐ ์์ฑ๋ค์ ๊ทธ๋ฆผ์ ํตํด ์ฝ๊ฒ ์ดํดํ ์ ์๋๋ก ์ค๋ช ํ๋ค.
How to create NFTs with JavaScript
๋์ฒด ๋ถ๊ฐ๋ฅ ํ ํฐ(NFT, non-fungible token)์ ์ต๊ทผ ๋ฏธ๋ ๊ธฐ์ (๋์งํธ ์์ฐ ๊ฑฐ๋)๋ก ๋ง์ ์ด๋ค์ ๊ด์ฌ์ ๋ฐ๊ณ ์๋ค. ์ด ๊ธ์ JavaScript๋ก NTF๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ค๋ช ํ๋ค.
Array.prototype.groupBy to the rescue!
Array.prototype.GroupBy๊ฐ ๋๋์ด TC39 stage3์ผ๋ก ๋ณ๊ฒฝ๋์๋ค.
์ด ๊ธ์ ๊ธฐ์กด์ reduce, filter, map ๋ฑ์ ๋ค์ํ ํจ์๋ฅผ ์ด์ฉํด์ผ๋ง GroupBy๋ฅผ ๊ตฌํํ ์ ์์๋ ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋ง์ง๋ง์ผ๋ก Array.prototyp.groupBy
๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋ค.
const items = [
{
type: "fruit",
value: "๐",
},
{
type: "fruit",
value: "๐",
},
{
type: "vegetable",
value: "๐ฅ",
},
{
type: "vegetable",
value: "๐ถ๏ธ",
},
];
items.groupBy(({ type }) => type);
์ฝ๋์ ๋๊ตฌ
Mitosis: Write components once, run everywhere
Mitosis๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋์ ์ปดํฌ๋ํธ ์ฝ๋๋ก React, Vue, Angular, Svelte ๋ฑ ์ฌ๋ฌ ํ๋ ์์ํฌ์ ์ปดํฌ๋ํธ ์ฝ๋๋ก ์ปดํ์ผํ ์ ์๋ค. Playground๋ฅผ ํตํด ์ด๋ป๊ฒ ๋์ํ๋์ง ํ ์คํธํด ๋ณผ ์ ์๋ค.
Pattens.dev
Front-end ๊ฐ๋ฐ์๋ฅผ ์ํ ์ด๋ณด๋ค ์ข์ ์ฐธ๊ณ ์ฌ์ดํธ๋ ์๋ค!
Front-end์์ ์์ฃผ ์ ํ๊ฒ ๋๋ ๋์์ธ ํจํด, ๋๋๋งํจํด, ์ฑ๋ฅ ํจํด
์ ์๊ฐ์ ์ธ ์๋ฃ, CodeSandbox ์์ ์ ํจ๊ป ์ ๊ณตํ๊ณ ์๋ค.
์ฑ
๊น์ง ๋ฌด๋ฃ๋ก ์ ๊ณตํ๊ณ ์์ผ๋ ๊ผญ! ๋ณด๊ณ ํ์ตํด ๋ณด๊ธฐ ๋ฐ๋๋ค.

How to Write Shell Scripts in Node with Googleโs zx Library
zx๋ Shell Script๋ฅผ ์ฌ๋ฌ๋ถ์ด ์น์ํ JavaScript/TypeScript๋ก ๊ฐ๋จํ๊ฒ ํ๋ก๊ทธ๋๋ฐํ ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ธํฐํ์ด์ค๋ ์๋นํ ์ง๊ด์ ์ด๋ผ bash๋ zsh ์คํฌ๋ฆฝํธ์ ์ต์ํ์ง ์๋ ๊ฐ๋ฐ์์๊ฒ๋ ์ ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด ๊ธ์ zx๋ฅผ ์ด์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ฐ๋จํ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋๋ ์์ ๋ฅผ ๋ค๋ฃจ๊ณ ์์ผ๋ ํ๋ฒ ๋ฐ๋ผ ํด๋ณด๋ฉด zx์ ๊ฐํธํจ์ ๋ชธ์ ์ฒดํํด ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
// hello-world-typescript.ts
import { $ } from "zx";
void (async function () {
await $`ls`;
})();
Drawing a Christmas Elf with HTML and CSS
HTML์ CSS๋ง์ ์ด์ฉํด์ ํฌ๋ฆฌ์ค๋ง์ค ์ํ๋ฅผ ๋ง๋ค์ด๊ฐ๋ ์ ์ ๊ณผ์ ์ ๋น๋์ค์ด๋ค. gradients, masks, clip-path๋ฅผ ์ฌ์ฉํด์ ํ๋ํ๋ ๊ทธ๋ ค๊ฐ๋ ๋ชจ์ต์ ๋ณด๋ฉด ๊ฐ๋ฐ ๋ํ๋ ๋ฌด์์ธ์ง ์ ์ ์๋ค.
