2021-06 
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
Design Systems Repo
์ต๊ทผ ๋ค์ด ๋์์ธ ์์คํ ์ ๋ํ ๊ด์ฌ์ด ๋ง์์ง๊ณ ์๊ณ , ๊ทธ์ ๋น๋กํด ๋ค์ํ ๋์์ธ ์์คํ ๋ค์ด ๊ณต๊ฐ๋๊ณ ์๋ค. ๊ทธ๋ฌ๋ ์ ๋ง๋ค์ด์ง ๋์์ธ ์์คํ ์ ๊ฒ์ํ๊ณ ์ฐพ์๋ณด๋ ๊ฒ์ ์ฝ์ง ์๋ค.
Design System Repo์์๋ ์ฌ๋ฌ๋ถ๋ค์ด ์๊ฐ๋ฐ์ ์ ์๋ ํ๋ ์ด์ ๋ ๋ค์ํ ๋์์ธ ์์คํ ๋ชฉ๋ก๊ณผ ์คํ์ผ ๊ฐ์ด๋, ํจํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ทธ๋ฆฌ๊ณ ๊ด๋ จ ๋ฌธ์์ ์ปจํผ๋ฐ์ค ๋ฑ, ๋์์ธ ์์คํ ๊ณผ ๊ด๋ จ๋ ๋ฐฉ๋ํ ๋ฆฌ์์ค ๋ค์ ์ฐพ์๋ณผ ์ ์๋ค.
Implementing Private Fields For JavaScript
Firefox JavaScript ์์ง์ธ SpiderMonkey ํ์์ ์ผํ๊ณ ์๋ ์ ์๋ ์๋ก์ด JavaScript ์ธ์ด์ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ ์ ๋ ๋ช ์ธ์ ๊ตฌํ ๊ณผ์ ์์์ ํ์ค์ ์ด๋ ค์(์ธ์ด ๊ท๊ฒฉ์ ๋ฒ์ด๋๋ ๋ฑ์)์ ๋ค๋ฃจ๋ ๊ธ์ด๋ค.
์ ์๋ class field proposal์ ํตํด ์ ์๋ Private fields ์๋ฅผ ํตํด ๋ช ์ธ์ ๊ตฌํ์ ํ์ค์ ์ฐจ์ด๋ฅผ ์ค๋ช ํ๋ค.
A JavaScript optimizing compiler
JavaScript ์ฝ๋๋ฅผ ์ต์ ํ๋ JavaScript๋ก ์ปดํ์ผ ํ๋ ์คํ์ ์๋์ ๊ดํ ํฅ๋ฏธ๋ก์ด ๊ธ๋ก, ๋์ JavaScript ์ฝ๋๋ฅผ LLVM ์ค๊ฐ ํํ์(Intermediate Representation)์ผ๋ก ๋ณํํ ํ, ์ต์ ํ๋ IR(์ค๊ฐ ํํ์)์ ํตํด ๋ค์ JavaScript ์ฝ๋๋ฅผ ์์ฑํ๋ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ค.
์ต์ ํ์ ๋ํ ๊ฒฐ๊ณผ๋ ์๋ ๋งํฌ๋ฅผ ํตํด ์ง์ ๋ฒค์น๋งํฌ๋ฅผ ์ํํด ๋ณผ ์ ์๋ค.
https://carlopi.github.io/js-opt-benchmark/
Past, Present, and Future of React State Management
2013๋ ๋ฑ์ฅํ React๋ UI์ ์ํ๋ฅผ ํํํ๋ ํจ์๋ผ๋ ํจ๋ฌ๋ค์ ์ ํ์ ๊ฐ์ ธ์๊ณ , React๋ ์ปดํฌ๋ํธ๊ฐ ์ด๋ป๊ฒ ๋ณด์ด๊ฒ ๋ ์ง๋ฅผ ์ํ์ ๊ธฐ๋ฐํด ์ฒ๋ฆฌํ๋ค. ์ด์ฒ๋ผ React๋ '์ํ'๋ผ๋ ์์ด๋์ด์ ๊ธฐ๋ฐํด ๋ง๋ค์ด์ก๋ค ํ ์ ์๋ค.
๊ธ์ ์ ์๋ ๊ณผ๊ฑฐ์ ์ค๋๋ ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ฑ์ฅํ๋ ๋ค์ํ ์ํ ๊ด๋ฆฌ์๋ค๊ณผ ๊ธฐ๋ณธ์ ๊ฐ๋ ๋ค๊ณผ ์ด๋ค ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ณ ์ ํ๋์ง๋ฅผ ํฌ๊ด์ ์ผ๋ก ๋ค๋ฃจ๊ณ ์๋ค.
Google I/O 2021: Web ์์ญ
๊ตฌ๊ธ์ ์ฐ๋ก ๊ฐ๋ฐ์ ํ์ฌ์ธ Google I/O 2021์ด ์ง๋ 5์ 18์ผ ~ 20์ผ, 3์ผ๊ฐ ์งํ๋์๊ณ , ๋ค์ฑ๋ก์ด ๋ด์ฉ๋ค์ด ๋ฐํ๋์๋ค. Front-end ์์ญ ๊ด์ ์์, ์น ์์ญ ์ธ์ ๋ค์ ํตํด ๊ตฌ๊ธ์ด ์ด๋ค ๊ธฐ์ ์์ญ์ ์ง์คํ๊ณ ์๋์ง๋ฅผ ๊ฐ๋ ํด ๋ณผ ์ ์๋ค.
๋ผ์ดํธํ์ฐ์ค ์ฑ๋ฅ ์งํ ์ดํด๋ณด๊ธฐ
์น ํ์ง ์ธก์ ์ ์ํ ๋๊ตฌ๋ก๋ ์ฌ๋ฌ ๋๊ตฌ๊ฐ ์๊ฒ ์ง๋ง, ๊ทธ์ค ๊ฐ์ฅ ์ ๋ช ํ ๊ฒ์ ๋จ์ฐ ๊ตฌ๊ธ์์ ์ ๊ณตํ๋ Lighthouse ์ผ ๊ฒ์ด๋ค.
Lighthouse๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ ต์ง ์๊ฒ ์น ํ์ง์ ์ธก์ ํ๊ณ ํ์ธํ ์ ์๋๋ฐ, ์ด๋ ์ธก์ ๊ฒฐ๊ณผ๋ ์ฌ๋ฌ ์งํ๋ค์ ์ ์๋ก์ ๋ํ๋๊ฒ ๋๋ค. ๊ฐ ์งํ์ ์ ์๊ฐ ๋์์๋ก ์ข๋ค๋ ๊ฒ์ ์ง๊ด์ ์ผ๋ก ์ ์ ์์ง๋ง, ๊ฐ ์งํ์ ์ ํํ ์๋ฏธ๋ฅผ ์๊ธฐ๋ ์กฐ๊ธ ์ด๋ ค์ธ ์ ์๋ค.
๋ณธ ๊ธ์์๋ Lighthouse์ ๊ฐ ์งํ๋ค์ ์๋ฏธ๋ฅผ ๊ทธ๋ฆผ๊ณผ ํจ๊ป ์๊ธฐ ์ฝ๊ฒ ์ค๋ช ํ์ฌ ์ดํด๋ฅผ ๋๋๋ค.
Software Engineering at Google
O'Reilly์์ ์ถ๊ฐํ Software Engineering at Google ์ฑ ์ด PDF ํ์ผ๋ก ๋ฌด๋ฃ ๊ณต๊ฐ๋์๋ค.
์ํํธ์จ์ด ์์ง๋์ด๋ง์ด๋ ๋ฌด์์ธ๊ฐ๋ผ๋ ๊ทผ๋ณธ์ ์ธ ๋ด์ฉ๋ถํฐ ์์ํ์ฌ ํ์ผ๋ก ์ผํ๊ธฐ, ์ง์ ๊ณต์ ํ๊ธฐ ๋ฑ ์ ๋ฐ์ ์ธ ์ํํธ์จ์ด ์์ง๋์ด๋ง์ ๋ํด ๋ค๋ฃฌ๋ค.
Journey of Improving React App Performance by 10x
React Application์ ์ฑ๋ฅ์ ํฅ์์์ผฐ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค.
render
์์ inline ํจ์ ์ ๊ฑฐ- ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ๋ง, Redux Store ์ ๋ฐ์ดํธ
- ์กฐ๊ฑด๋ถ ๋ ๋๋ง ์ ์ฉ
- ๋ถํ์ํ
await
์ ์ ๊ฑฐํ๊ณ ์ ์ฉ ๊ฐ๋ฅํ๋ฉดPromise.all()
์ฌ์ฉ
The future of Internet Explorer on Windows 10 is in Microsoft Edge
MS์์ Windows ๋ฐ์คํฌํฑ์ IE ์ง์์ 2022๋ 6์ 15์ผ๋ถ๋ก ์ข ๋ฃํ๊ฒ ๋ค๊ณ ๊ณต์ ๋ฐํํ์๋ค.
Modern Javascript: Everything you missed over the last 10 years (ECMAScript 2020)
ECMAScript๋ ๋งค๋ ์ ๋ฒ์ ์ ๋ฐํํ๋ฉฐ ๋น ๋ฅด๊ฒ ๋ณํํ๊ณ ์์ด ์ต์ ๊ธฐ์ ์คํ์ ๋์น๊ธฐ์ ์ญ์์ด๋ค. ์ต๊ทผ 10๋ ๋์์ ์๋ก ๋ฐํ๋ ๋ด์ฉ๋ค์ ํ๊ณณ์ ๋ชจ์ ๋ณด๊ธฐ ์ฝ๊ฒ ์ ๋ฆฌํ ๊ธ์ด๋ค.
ํํ ๋ฆฌ์ผ
Learn CSS
๊ตฌ๊ธ์ web.dev ํ์์ ๊ณต๊ฐํ ํํ ๋ฆฌ์ผ๋ก, CSS์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ๋ค์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ํญ๋ชฉ๋ค์ ์ธ๋ถํํ๊ณ CSS๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ๋ฐ์ค ๋ชจ๋ธ, ์ ๋ ํฐ, ํฌ๊ธฐ ๋จ์, ํ๋ ์ค ๋ฐ์ค, ๊ฐ์ ์์/ํด๋์ค ๋ฑ ๊ฑฐ์ ๋ชจ๋ CSS ์คํ๋ค์ ๋ค๋ฃจ๋ฉฐ, ๊ฐ๊ฐ์ ํญ๋ชฉ๋ค์ ๊ด๋ จ podcast์ ์ธํฐ๋ํฐ๋ธ ๋ฐ๋ชจ๊ฐ ์ ๊ณต๋๋ค.
Building A Rich Text Editor (WYSIWYG)
์ปค์คํ ๊ฐ๋ฅํ ๋ฆฌ์น ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ๋ง๋ค ์ ์๋ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ Slate๋ฅผ ์ฌ์ฉํด ์์ง์ (WYSIWYG) ํธ์ง๊ธฐ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํ๋ค.
How to Create Actions for Selected Text With the Selection API

ํ ์คํธ ์๋ํฐ์์ ๋ฌธ์ฅ ์ ํ ์, ์ ํ ์์ญ ์์ ๋ฉ๋ด๊ฐ ๋ํ๋๋ ๊ฒ์ ๋ณธ ์ ์ด ์์ ๊ฒ์ด๋ค. ์น์์๋ ์ด๋ป๊ฒ ์ด๊ฒ์ ๊ตฌํํ ์ ์์๊น? ๋ค์ ์์ํ ์ ์๋ API์ธ Selection API๋ฅผ ์ด์ฉํ์ฌ ์ด๋ฅผ ์น์์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
Coding Fantasy: Learn Flexbox by Playing a Coding Game

flexbox๋ฅผ ์ด์ฉํ๋ฉด ๋ ์ด์์ ์์ ์ ๋น๊ต์ ์ฝ๊ฒ ์งํํ ์ ์๋ค. ๊ฒ์์ ํตํด flexbox ๊ฐ๋ ์ ํ์ตํ ์ ์๋๋ก ๋๋๋ค.
Get Started With React By Building A Whac-A-Mole Game
React๋ฅผ ์ด์ฉํด ๋๋์ง ์ก๊ธฐ(Whac-A-Mole) ๊ฒ์์ ๋ง๋ค์ด๋ณธ๋ค. React์ ๊ธฐ์ด๋ถํฐ ํ๋์ฉ ๊ตฌํ์ ์งํํ๋ค. ๊ธฐ์ด ๊ฐ๋ ๋ค๋ ํจ๊ป ์ค๋ช ํด ์ฃผ๊ธฐ ๋๋ฌธ์ React ์ ๋ฌธ์๋ ๋ฐ๋ผ ํด๋ณด๊ธฐ ์ข๋ค.
์ฝ๋์ ๋๊ตฌ
React Notion X
์ธ๊ธฐ๋ฅผ ๋๊ณ ์๋ ๋ฉ๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ธ Notion์ ์ฝํ ์ธ ๋ฅผ React๋ก ๋ ๋๋ง ํ ์ ์๊ฒ ํ๋ TypeScript๋ก ์์ฑ๋ ๋๊ตฌ๋ค.
# 1) Notion ์ฝํ
์ธ ๋ฅผ ์ป์ด์จ๋ค.
import { NotionAPI } from 'notion-client'
const notion = new NotionAPI()
const recordMap = await notion.getPage('067dd719a912471ea9a3ac10710e7fdf')
# 2) ์ป์ด์จ ์ฝํ
์ธ ๋ฅผ React๋ฅผ ํตํด ๋ ๋๋งํ๋ค.
import React from 'react'
import { NotionRenderer } from 'react-notion-x'
export default ({ recordMap }) => (
<NotionRenderer recordMap={recordMap} fullPage={true} darkMode={false} />
)
์๋ฅผ ๋ค์ด, ๋ค์์ Notion ์ฝํ ์ธ ๋ฅผ
- https://www.notion.so/Notion-Kit-Test-Suite-067dd719a912471ea9a3ac10710e7fdf
React ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ก๋ฉํด ๋ค์๊ณผ ๊ฐ์ด ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์๋ค.
- https://react-notion-x-demo.transitivebullsh.it/
Map of JavaScript
JavaScript์ HTML, DOM ๊ทธ๋ฆฌ๊ณ JavaScript์์์ ๋ฐ์ดํฐ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๊ฐ ํ์ฅ์ Map ์ด๋ฏธ์ง ํํ๋ก ํ์ธํด ๋ณผ์ ์๋ค.
WWIT
์ต์ iOS ์ฑ๋ค์ UI ๋์์ธ ํจํด๋ค์ ์คํฌ๋ฆฐ์ ๋ชจ์์ ์ ๊ณตํ๋ Mobbin์ ์๊ฐ์ ๋ฐ์ WWIT(What Was IT)
์ ํ๊ตญ์์ ๊ฐ๋ฐ๋ iOS ๋ชจ๋ฐ์ผ ๋์์ธ ํจํด๋ค์ ๋ํ ์คํฌ๋ฆฐ์์ ๋ชจ์์ ๋ณผ ์ ์๋๋ก ์ ๊ณตํ๋ค.
iOS ์ฑ๋ค์ด๋ผ ํ๋๋ผ๋ ๋ง์ ๊ฒฝ์ฐ ์์ธ ํ๋ฉด๋ค์ ์น๋ทฐ๋ฅผ ํตํด ๊ตฌํ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, Front-end ๊ด์ ์์๋ UI/UX์ ๋ํ ์๊ฐ์ ์ป์ ์ ์์ด ์ฐธ๊ณ ํ ๋งํ๋ค.
Screen Sizes
๋ค์ํ Apple ๊ธฐ๊ธฐ๋ค์ ๋ํ ์ธ๋ฐํ ๋์คํ๋ ์ด ์ ๋ณด๋ฅผ ํ๋์ ํ์ธํด ๋ณผ ์ ์๋ค.
CSS Hell
์ผ๋ฐ์ ์ธ CSS ์ค๋ฅ๋ค์ ๋ํ ๋ชจ์๊ณผ ์์ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
Introducing WebContainers: Run Node.js natively in your browser
Node.js ํ๊ฒฝ์ ๋ธ๋ผ์ฐ์ ์์ ์คํํ ์ ์๊ฒ ๋์๋ค. ์ฌ์ง์ด ๋ก์ปฌ ํ๊ฒฝ๋ณด๋ค ๋น๋ ๋ฐ ํจํค์ง ์ค์น๊ฐ ๋น ๋ฅด๋ฉฐ, ๋ธ๋ผ์ฐ์ ์๋๋ฐ์ค ์์์ ์คํ๋๋ฏ๋ก ์์ ํ๋ค๊ณ ํ๋ค.
public beta ๋ฒ์ ์ด๊ธด ํ๋, ์ด๊ณณ์์ ์ง์ ์ฌ์ฉํด ๋ณผ ์ ์๋ค.