2022-05 
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ๊ธฐ๋ฒ
๋ค์์ 2๊ฐ ์๋ฆฌ์ฆ๋ก ๊ตฌ์ฑ๋ ๊ธ์ ํตํด ๋จ์ผ ์ฝ๋ ์ ์ฅ์์์ ๋ค์ค ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ Monorepo ๊ฐ๋ฐ ์ ๋ต์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ๊ณผ ํจ๊ป, ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๋๊ตฌ๋ค์ ๋ํ ์๊ฐ ๋ฐ ์ฅ๋จ์ ์ ์๊ฐํ๋ค.
[์ฐธ๊ณ ] Line๊ณผ ์ฐ์ํ ํ์ ๋ค์ ๊ธฐ์ ๋ธ๋ก๊ทธ๋ฅผ ํตํด ์๊ฐ๋ monorepo ๊ธ๋ค๋ ๊ฐ์ด ์ฐธ๊ณ ํด ๋ณด๊ธฐ ๋ฐ๋๋ค.
The Future of Micro-Frontends
Micro Front-end(์ดํ MFE)๋ฅผ ๋งํ ๋ ์ด๋ ์ ๋์ "microโ๊ฐ MFE ์ผ๊น? MFE ๊ตฌํ๋ณด๋จ ๋ณด๋ค ๋ถ์ฐ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง์ด ๋ชฉ๊ฒฉํ๊ฒ ๋๋ค.
์ ์๋ ์์ ์ด ๋ง๋ MFE ๋ฉํ๋ชจ๋ธ Micro-frontends in context ์ ํ์ฉํด ๋์์ธํ๊ณ , MFE ๊ฐ์ ํต์ ์ Publish-subscribe ํจํด์ ํ์ฉํด design-time ์ปคํ๋ง์ ํํผํ๊ฑฐ๋ ๋๋ ์ต์ํํ ๊ฒ์ ์ ์ํ๊ณ ์๋ค.
Back-end์ ์ด๋ฒคํธ ์ฃผ๋์ ์ํคํ ์ฒ์ ๊ฐ์ด ์ด๋ฒคํธ๋ฅผ ์ํ ๋๋ ทํ ์คํค๋ง๋ฅผ ๊ฐ๋ ๊ฒ์ ํตํฉ๊ณผ์ ์์ ๋ง์ ์ค์๋ฅผ ์ค์ฌ ์ค ์ ์๋ค. event-bus ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์จํ๊ฒ ๊ฒฐํฉ๋ ์์๋ค ๊ฐ์ ๊ตฌ์กฐ์ ์ธ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๋ฐ ๋์์ ์ค ์ ์๋ค.
Module Federation Examples
์ฌ๋ฌ ๊ฐ์ ๋ถ๋ฆฌ๋ ๋น๋๋ค์ ๋์ ์ผ๋ก ์คํ์์ผ, ๋ง์น ํ๋์ ์ฑ๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ module federation์ Webpack 5์ ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋๋ก ์ถ๊ฐ๋์๋ค. ์ด ์ ์ฅ์๋ Webpack์ module federation์ ๊ตฌํํ ๊ฐ๋ฐ์๊ฐ ์ง์ ๋ค์ํ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉ๋ ์ ์๋ ์ผ์ผ์ด์ค ์์ ๋ฅผ ์์ฑํด ์ ๊ณตํ๋ค๋ ์ ์์ ๊ด์ฌ์ ๊ฐ์ง๋งํ๋ค.
JavaScript Symbol์ ๊ทผํฉ

์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๋ฉด์ ์ผ๋ฐ์ ์ผ๋ก Symbol์ ์ฌ์ฉํ ์ผ์ด ์ ์๋ค.
์ด๋ฐ Symbol์ ๋ํด ์์๋ณด๊ณ , ์ด๋ค ์ด์ ๋ก Symbol์ด ๋์
๋์์ผ๋ฉฐ, ์ฐ๋ฆฌ๋ ์ด Symbol์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง๋ฅผ ์๊ฐํ๋ค.
JAVASCRIPT FUNCTION COMPOSITION: WHATโS THE BIG DEAL?
ํจ์ํ ์๋ฐ์คํฌ๋ฆฝํธ์ ํจ์ ํฉ์ฑ์ ๋ํด์ ์ด์ผ๊ธฐ๋ฅผ ํ๊ณ , compose()
, flow()
, pipe()
๋ฅผ ์์ ๋ฅผ ํตํด ์ค๋ช
ํ๊ณ ,
ํจ์ ํฉ์ฑ์ ํตํ ์ฝ๋๋ ์๋ฆ๋ต์ง๋ง, ์ฝ๋๋ฅผ ํตํด ์๋ก์ด ์ฌ๊ณ ๋ฐฉ์์ ๋ฐฐ์ธ ์ ์์์ ์ด์ผ๊ธฐํ๋ค.
How return await can slow down your code
๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง๋ง, ๊ฐ๊ฐ ๋ค๋ฅธ ํํ๋ก ํธ์ถ๋๋ ๋ค์์ ํจ์๋ค ์ค์์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ(๋๋ ๋๋ฆฌ๊ฒ) ์คํ๋๋ ๊ฒ์ ์ด๋ค ๊ฒ์ผ๊น?
// function work(): Promise<any>;
async function doWait() {
return await work();
}
async function dontWait() {
return work();
}
function justReturn() {
return work();
}
๋๋ถ๋ถ์ ์ค ๊ฐ๋ฐ ์๋๋ฆฌ์ค์์๋ ์ฌ์ฉ๋๋ ์คํ์ ๋ฐ๋ผ ํจ์ฌ ๋ ์ค๋์ ์ ECMAScript ๋ฒ์ ์ผ๋ก ๋ณํ๋ ์ ์๋ค. ๊ฒฐ๋ก ์ ๊ฐ๋ฅํ Eslint no-return-await ๊ท์น์ ์ค์ ํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค.
์ ๊ธ์์๋ ์ํฉ๋ณ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ์ ํจ๊ป ๋ณด๋ค ์์ธํ ์ด์ ๋ฅผ ์ฝ์ด๋ณผ ์ ์๋ค.
Reliable Web Summit 2021
Reliable Web Summit 2021์ Angular ์ฝํผ๋ฐ์ค๋ก ์ ๋ช ํ ng-conf์ ์๋ธ ์ฝํผ๋ฐ์ค๋ก, ์ ๋ขฐ์ฑ์ ์ ๊ณตํ๋ ์น์ ๋ง๋ค๊ธฐ ์ํ ๋ค์ํ ์ฃผ์ ์ ์ธ์ ๋ค์ด ์งํ๋์๋ค.
PageObject
๋ฆฌํฉํ ๋ง์ ์ ์๋ก ์ ๋ช ํ ๋งํด ํ์ธ๋ฌ์ ๊ธ๋ก, ์น ํ์ด์ง์ ๋ํ ํ ์คํธ๋ฅผ ์์ฑํ ๋ HTML ์์๋ค์ ์ง์ ์กฐ์ํ๋ ์ ๊ทผ๋ณด๋ค ํ์ด์ง ๊ฐ์ฒด๋ฅผ ํตํด HTML ํ์ด์ง ๋๋ ์กฐ๊ฐ(fragment)๋ฅผ ๊ฐ์ธ๋ ํํ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๋ค.
Building a dialog component

์ต๊ทผ <dialog>
์๋ฆฌ๋จผํธ๊ฐ ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์์ stable ํ ์ํ๊ฐ ๋์๋ค. ์ด์ ๋ชจ๋ฌ์ด๋ ํ์
๋ฑ์ native <dialog>
์๋ฆฌ๋จผํธ๋ฅผ ํ์ฉํด์ ๋ ์ฝ๊ฒ ๋ง๋ค์ด ๋ณผ ์ ์๋ค. ์คํ์ผ, ์ ๋๋ฉ์ด์
, Javascript ์ฝ๋์ ๊ฐ์ด ์ฌ์ฉํ๋ ๋ฒ๊น์ง ์์ธํ ์ฌ์ฉ๋ฒ์ ๋ค๋ฃจ๊ณ ๋ฐ๋ชจ์ ์์ค, Youtube ์์ ๋ํ ์ ๊ณตํ๊ณ ์๋ค. ์กฐ๊ธ ๋ ๊ฐ๋จํ๊ฒ <dialog>
์๋ฆฌ๋จผํธ ์ฌ์ฉ๋ฒ์ ์์๋ณด๊ณ ์ถ๋ค๋ฉด #๋งํฌ ๊ธ์ ํ์ธํด ๋ด๋ ์ข๋ค.
Why Do Developers Keep Implementing State Management in React?
thoughtworks๋ ๊ธ๋ก๋ฒ ๊ธฐ์ ์๋ฌธ ํ์ฌ๋ก, ์ฃผ๊ธฐ์ (๋ฐ๊ธฐ๋ง๋ค)์ผ๋ก ๊ธฐ์ ๋ํฅ์ ๋ค๋ฃจ๋ Technology Radar ๋ฆฌํฌํธ๋ฅผ ๋ฐํํ๊ณ ์๋ค.
์ต์ ํธ์์๋ ์ฌ๋ฌ ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์ฃผ์ ๋ฅผ ๋ค๋ฃจ๊ณ ์๋๋ฐ, ๊ทธ์ค "๊ฐ๋ฐ์๋ค์ ์ ๊ณ์ํด์ React์์ ๋์ํ๋ ์ํ ๊ด๋ฆฌ์๋ฅผ ๊ฐ๋ฐํ๋๊ฐ?"์ ๋ํด ์ง๋ฌธ์ ๋์ง๋ ํญ๋ชฉ์ด๋ค. ์ฌ์ค, ๋ณธ๋ฌธ์ ์ ๊ทธ๋ฌํ ํ์์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํ ์ถ์ธก์ ๊ฐ๋ณ๊ฒ ๋์ง๊ณ ์์ ๋ฟ์ด๋ค.
๊ทธ๊ฐ Redux โ Mobx โ Zustand โ Recoil โ Jotai๋ก ์ด์ด์ ธ ์ค๋ ํ๋ฆ์ ์๊ณ ์๋ค๋ฉด, ์ฌ๋ฌ๋ถ๋ค๋ ๊ฐ์ ์๋ฌธ์ ํ์ ๊ฒ์ด๋ค.
React Libraries for 2022
React๋ฅผ ์ฌ์ฉํ ๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด์ ์ถ์ฒํด ์ค๋ค. React Project, Package Manager, State Management, Data Fetching, Router, CSS Styling๋ฅผ ํฌํจํ์ฌ 25๊ฐ์ง ์ฃผ์ ์ ๋ํด ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ธ๊ธํ๋ค. ๋ค๋ง, ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ค ์๋ ๊ฒ์ ์๋์ด์, ๊ฐ๋ณ๊ฒ ์ฐธ๊ณ ํด ๋ณด๋ฉด ์ข๋ค.
When Does React Render Your Component?

React์์๋ ๋ ๋๋ง์ด ์๋ํ์ง ์๊ฒ ์ผ์ด๋๋ ๊ฒฝ์ฐ๋ฅผ ์์ฃผ ์ ํ ์ ์์ง๋ง, React ๊ณต์ ๋ฌธ์์์๋ ๋ช
ํํ๊ฒ ์ค๋ช
ํ๊ณ ์์ง ์์ ํ์
ํ๊ธฐ ์ด๋ ต๋ค.
์ด ๊ธ์์๋ React์์ ๋ ๋์ ์๋ฏธ๋ถํฐ ์ดํด๋ณด๊ณ , ์ธ์ ๋ ๋๋ง ๋๋์ง ์์๋ณธ๋ค.
์นํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ Rust ๋๋ ค๊น๊ธฐ ๐ฅ

์นํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๊ด์ ์์ Rust๋ฅผ ํ์ตํ ๊ฒฝํ์ ๊ณต์ ํ๋ค.
๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์๊ณ , ์์ ๊ถ ๊ฐ๋
์ด ์์ํ๋ฉฐ, ์ปดํ์ผ๋ฌ๊ฐ ์ง๋์น๊ฒ ์น์ (??) ํ์ฌ ํ์ต์ด ์ด๋ ค์ ๋ ์ ์ ์ค๋ช
ํ๋ค.
๋์ผ๋ก Rust๋ฅผ ๋ฐฐ์์ผ ํ๋ ์ด์ ๋ฅผ ๊ณ ๋ฏผํด ๋ณธ๋ค.
ํํ ๋ฆฌ์ผ
33 JavaScript Concepts Every Developer Should Know ๐ค๏ธ๐ฏ๏ธ

33 Concepts Every JavaScript Developer Should Know(FE News 20/4์ ์์์ ํตํด ์๊ฐ) ์์ ์๊ฐ์ ๋ฐ์ ํด๋น ๋ชฉ์ฐจ๋ฅผ ๊ฐ๋จํ๊ฒ ์ค๋ช
ํ๋ค.
33๊ฐ์ง ๊ฐ๋
์ ๋ํด์ ์ด๋ฏธ์ง์ ์งง์ ์ค๋ช
์ ์ ๊ณตํ์ฌ ๋น ๋ฅด๊ฒ ์ดํด๋ณด๊ธฐ์ ์ข๊ณ , ๋ชจ๋ฅด๋ ๊ฐ๋
์ด ์๋ค๋ฉด ํํ ๋ฆฌ์ผ ๋งํฌ๋ค์ ์ ๊ณตํ๊ณ ์์ด ๊ฐ๋
๋ค์ ๋ฐฐ์ฐ๊ธฐ๋ ์ข๋ค.
Figma Tips
1๋ถ ๋ด์ธ์ ์งง์ ์ผ์ธ ์๋ฆฌ์ฆ๋ฅผ ํตํด Figma ์ฌ์ฉ ์ ํ์ฉํ ์ ์๋ ๊ณ ๊ธ ํ๋ค์ ์๊ฐํ๋ค.
JavaScript Fighting Game Tutorial with HTML Canvas

๋์ ๊ฒฉํฌ ๊ฒ์์ HTML Canvas๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ค์ด ๋ณด์!
์ฝ๋์ ๋๊ตฌ
Preview.js: Preview UI components in your IDE instantly

Preview.js๋ React, Vue ๋ฑ์ ์ปดํฌ๋ํธ๋ฅผ IDE์์ ๋ฐ๋ก ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ ์ ์๋๋ก ์ง์ํ๋ ๋๊ตฌ๋ค.
ํ์ฌ๋ React (V16+), Vue 2, Vue 3, SolidJS๋ฅผ ์ง์ํ๊ณ ์์ผ๋ฉฐ, Preact, Svelte๊ฐ ์ง์ ์์ ์ด๋ผ๊ณ ํ๋ค.
projen
projen์ ํ๋ก์ ํธ ์ค์ ํ์ผ๋ค์ธ package.json
, tsconfig.json
, .gitignore
, eslint
๋ฑ์ ํตํด ์ ์ ๋ฆฌ๋ JavaScript ์ ์ ํ์ผ๋ก ์์ฑ๋๋ค.
๊ธฐ์กด ์ค์ ํ์ผ๋ค์ ์๋์ผ๋ก ๊ด๋ฆฌ๋์ด์๋ ์๋๋ฉฐ, ์ ๊ณต๋๋ class ๋ชจ๋๊ณผ projen CLI๋ฅผ ํตํด ํ๋ก์ ํธ ์ค์ ์ ๊ด๋ฆฌํ๊ฒ ๋๋ค.
nexe
Nexe๋ Node.js ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปดํ์ผํด ๋จ์ผ ์คํ ํ์ผ๋ก ์์ฑํด ์ฃผ๋ CLI ๋๊ตฌ๋ค. (์ ์ฌํ ๋๊ตฌ๋ก๋ Pkg๊ฐ ์๋ค.)