2021-01 
๋งํฌ & ์ฝ์๊ฑฐ๋ฆฌ
2020๋ ๊ณผ ์ดํ JavaScript์ ๋ํฅ - ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ
React, Angular, Vue.js ๊ทธ๋ฆฌ๊ณ Svelte์ ์ต๊ทผ ๋ํฅ์ ๋ค๋ฃจ๋ ๊ธ๋ก, ๋ค์ํ ํ๋ ์์ํฌ๋ค์ ๊ธฐ์ ์ ๋ณํ์ ์ฐจ์ด์ ๋ค์ ๋ค๋ฃจ๊ณ ์์ด ์ฌ๋ฌ ํ๋ ์์ํฌ๋ค์ ๋ํฅ์ ํ๋์ ํ์ ํ ์ ์๋ค.
์ง๋ "๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ ๋ํฅ" ์๋ฆฌ์ฆ: 2017, 2018, 2019(1ํธ, 2ํธ)
React Server Component
React Server Component์ ๋ํ ์์์ด React ๊ณต์ ๋ธ๋ก๊ทธ์ ๊ณต๊ฐ๋์๋ค. ํ์ฌ๋ ์์ง ์ฐ๊ตฌ ์ค์ธ ๋จ๊ณ์ด์ง๋ง ๊ทธ ๊ฐ๋ฅ์ฑ์ ๋ํด ๋ง์ ์ค๋ช ์ ํ๊ณ ์๋ค. ํด๋ผ์ด์ธํธ ๋ฒ๋ค ์ฌ์ด์ฆ๋ฅผ ์ค์ด๊ณ backend ์์์ ์ง์ ์ ๊ทผํ ์ ์๋ React Server Component์ ๋ํ ๊ธ๊ณผ ์์์ด๋ค.

๋ฐํ ์ดํ ํด์ปค๋ด์ค์์๋ ์ง๋ฌธ์ด ๋์ด์ง ์๊ณ ์๋ค. Dan Abramov์๊ฒ ๊ถ๊ธ์ฆ์ด ์๋ค๋ฉด ์ฌ๋ฌ๋ถ๋ ์ง๊ธ ๋ต์ ์ป์ ์ ์๋ค.
[์ฐธ๊ณ ] React ์ฝ์ด ๊ฐ๋ฐํ์ Dan Abromov ํธ์์์๋ Server Component์ ๋ํ ์ฃผ์ ๋ด์ฉ์ ๋ํ ์์ฝ์ ํ์ธํด ๋ณผ ์ ์๋ค.
https://twitter.com/dan_abramov/status/1342261577475633154
Deview 2020
Deview 2020 ๋ฐํ ์์์ด ๊ณต๊ฐ๋์๋ค.
๊ทธ ์ค ์น ์ธ์ ๋ฐํ ์ค ๊ตญ๋ด์ ํด์ธ์์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ด์ ๋ก BFF (Backend for Frontend) ์ํคํ ์ณ๋ก์ ์ ํ ๊ฒฝํ์ ๋ค๋ฃจ๊ณ ์์ด ์๊ฐํ๋ค.
GraphQL
- ์์ด๋น์๋น์ GrahphQL์ ๋์ ํ๋ฉด์ BFF ์ํคํ ์ณ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด๊ฐ ๊ฒฝํ์ ๊ณต์ ํ ๋ฐํ์ด๋ค.
- GraphQL ์ด์ ๊ฒฝํ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ๊ฒฝํ์ด ๊ถ๊ธํ์๋ค๋ฉด GraphQL API ๊น์ง๊ฑฐ ์ด์ํด๋ณด์ง ๋ญ ๋ฐํ๋ฅผ ๋ณด์๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค.

Server-Side Rendering
- ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ์ SSR์ ๋์ ํ๋ฉด์ BFF ์ํคํ ์ฒ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด๊ฐ ๊ฒฝํ์ ๊ณต์ ํ ๋ฐํ์ด๋ค.
- SSR์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ตฌ์ฒด์ ์ธ ๊ฒฝํ์ด ๊ถ๊ธํ์๋ค๋ฉด ๋ฆฌ์กํธ ๊ฐ๋ฐ์ด ์ด๋ ๊ฒ ์ฌ์ ๋? (feat. Next.js) ๋ฐํ๋ฅผ ๋ณด์๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค.

์ด ์ธ์๋ Deview 2020์์ FrontEnd ๊ฒฝํ์ ๋ค๋ฃฌ ๋ค์ํ ์ธ์ ์ด ์์ผ๋ ์ดํด๋ณด๊ธฐ ๋ฐ๋๋ค.
[์ฐธ๊ณ ] Deview 2020 FrontEnd ์ธ์
- ๋ฌป๊ณ ํ ๋ฒ๋ก ๊ฐ! (๋ค์ด๋ฒ ํ๋ ์ด์ค ํ ๋ฒ์ ์ฝ๋๋ก ๋ชจ๋ฐ์ผ ์น/๋ชจ๋ฐ์ผ ์ฑ/PC ์น ์๋น์ค ํ์ฅ ๊ฐ๋ฐ๊ธฐ)
React๋ก ๋ง๋ค์ด์ง ๋ค์ด๋ฒ ํ๋ ์ด์ค ์๋น์ค๋ฅผ ์ง๋์ฑ๊ณผ Angular ๊ธฐ๋ฐ์ ์๋น์ค์ ํตํฉ์์ผฐ๋ ๊ฒฝํ์ ์๊ฐํ๋ค.- WebXR API๋ฅผ ์ด์ฉํ ์น AR ๊ฐ๋ฐ, ๊ทธ ํ๊ณ์ ๋์
ํ ์์ ์์ WebXR API๋ฅผ ์ ์ฉํ๋ ์ฅ์ ๊ณผ ํ๊ณ์ ๋ค์ ์ดํด๋ณด๊ณ ์ด๋ฅผ ๋์ฒดํ ์ ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค์ ์ค๋ช ํ๋ค.- ๊นํ 4.4K ์คํ billboard.js ๋ฉ์ธํ ์ด๋๊ฐ ๋ค๋ ค์ฃผ๋ ์คํ์์ค ๊ฐ๋ฐ๊ธฐ(๋ถ์ : ํจ๋จผ์ดํ!, ์คํ์์ค ๊ฐ๋ฐ์ ์ ์ด๋?)
๋ค์ด๋ฒ ์คํ์์ค ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ billboard.js ํ๋ก์ ํธ์ ๊ฐ๋ฐ๊ณผ ์ด์ ๊ฒฝํ์ ํตํด ์ง์ ๊ฐ๋ฅํ ์คํ์์ค ๋ฉ์ธํ ์ด๋์ค๋ฅผ ์ํ ๊ฒฝํ์ ์๊ฐํ๋ค.- Deno ๋ฅผ ํตํด ์์๋ณด๋ Javascript ์ธ์ ์ด์ผ๊ธฐ
Deno ์ ๋ํ์ฌ ์์๋ณด๋ฉฐ JavaScript ์์ TypeScript, Node.js์์ Deno ๊น์ง JavScript ์ธ์์์์ ๋ถํธํจ์ ํด๊ฒฐ ํ๊ณ ์ ํ๋ ๊ธฐ์ ์ ์๊ฐํ๋ค.- ์ฑ๋ฅ๊ฐ์ ๋ฐ์ด๋ค๊ธฐ (๊ณ ์ ์ SSR ์ฑ๋ฅ๊ฐ์ )
๋ค์ด๋ฒ์ ์ค๋งํธ์ด๋ผ์ด๋ ์ฑ๋ฅ๊ฐ์ ๋ฐฉํฅ๊ณผ ๊ทธ ์ฌ์ ์ ์๊ฐํ๋ค.- egjs ์คํ ์์ปค์ค ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค
๋ณต์กํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด์ ์คํ์์ค๋ฅผ ์ฐพ๋ ๊ณผ์ ๊ณผ ์คํ์์ค๋ฅผ ํ์ฉํ๋ฉด์ ๊ฒช์์ ์๋ ์ค์ ์ฌ๋ก๋ฅผ ์ฌ๋ฐ๊ฒ ๋ฐฐ์ธ ์ ์๋ ๋ฐํ์ด๋ค.- Recoil: ์์๋ฅผ ๊ณ์นํ๋ ์ค์ ๋๋ค
Recoil์ด Redux์ ๊ตณ๊ฑดํ ์์ข๋ฅผ ์ํํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ทผ๊ฑฐ์ ๋ํด์ ์๊ธฐํ๊ณ ๋จ๊ณ๋ณ๋ก ์ค๋น๋ 4๊ฐ์ง ์์ ๋ฅผ ํตํด Recoil์ ๋จ์ํ์ง๋ง ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๊ฐ๋ตํ๊ฒ ๋ฐฐ์๊ฐ๋ ๋ฐํ์ด๋ค.
Chrome Dev Summit 2020 ์์ ๋ฐํ
Chrome Dev Summit 2020 ์ธ์
๋ฐํ ์์์ด ๊ณต๊ฐ๋์๋ค.
CSS ์์ง์ low-level api ์ธ Houdini์ ๋ฐํ๋ถํฐ PWA, Web Story, Performance๊น์ง ๊ตฌ๊ธ์นํ๋ซํผ์ ์ง๋ณด๋ ๊ฒฝํ์ ๋ณด์ค ์ ์๋ค.
์๋ก์ด ์นํ์ด์ง ์ฑ๋ฅ ์ธก์ ์งํ CLS(Cumulative Layout Shift)
chrome 86 ์
๋ฐ์ดํธ์์ ๊ฐ๋ฐ์๋๊ตฌ โ Performance ํจ๋ โ Experience ์น์
์ Cumulative Layout Shift (CLS) ๋ผ๋ ์๋ก์ด ์ฑ๋ฅ ์ธก์ ์งํ๊ฐ ์๊ฒผ๋ค.
Web Vital์ ์๋ก์ด ์งํ์ธ CLS์ ๋ํด ์ ๋ฆฌํ ๊ธ์ด๋ค.
์ ์ญ์ํ ๊ด๋ฆฌ์ ๋ํ ๋จ์ (stale-while-revalidate)
์ ์ญ ์ํ ๊ด๋ฆฌ๋ก Redux๋ฅผ ์ฆ๊ฒจ ์ฐ๋ ๊ฐ๋ฐ์๊ฐ ๋ ์ด์ Redux๋ฅผ ์ฌ์ฉํ์ง ์๊ฒ๋ ์ด์ ์ ํ๊ณ ๊ฐ ๋ด๊ธด ๊ธ์ด๋ค.
React Query, SWR, Apollo์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ถ๊ตฌํ๋ ๊ฒ๊ณผ ๊ฐ์ด API ์บ์ฑ์ ํตํด ์ปดํฌ๋ํธ์ ์์ง๋์ ํธ์์ฑ์ ๋์ด๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ณ ๋ฏผ์ ์ค๋ช
ํ๊ณ ์๋ค.
The React Hooks Announcement In Retrospect: 2 Years Later
React Hooks์ด ์๊ฐ๋ ์ดํ 2๋
์ด๋ผ๋ ์๊ฐ์ด ์ง๋ฌ๋ค. ์ด ๊ธ์ ๊ทธ ๊ธฐ๊ฐ๋์ ๊ฐ๋ฐ์์ ๊ฒฝํ์ ์๊ฐ ์์ผ๋ก ์์ ํ๊ณ ์๋ค.
2021๋
์๋ ๋๋์ง ์์ ๋
ผ์์ ๋ํ ์ฌ๋ฌ๋ถ๋ค ์๊ฒฌ์ ์ด๋ค๊ฐ์?
25 years of JavaScript History
IDE๋ก ์ ๋ช ํ JetBrains์์ JavaScript 25์ฃผ๋ ์ ๋ง์ดํ JavaScript ์ญ์ฌ์์ ์ฃผ๋ชฉํ ๋งํ ํ์๋ผ์ธ ํ์ด์ง๋ฅผ ๊ณต๊ฐํ์์ต๋๋ค.
ํํ ๋ฆฌ์ผ
React / GraphQL Course - Build a social media app (MERNG Stack)
MongoDB + Express + React + Node.js + GraphQL ์คํ์ผ๋ก ๋ง๋ค์ด ๋ณด๋ ์์ ๋ฏธ๋์ด ์ฑ ํํ ๋ฆฌ์ผ์ด๋ค.

Build your own CANDY CRUSH using JavaScript, HTML and CSS
JavaScript, HTML, CSS๋ฅผ ์ด์ฉํ์ฌ ๋๋๊ทธ ์ค ๋๋์ ๊ตฌํํ๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ ์ฐ๋ฆฌ์๊ฒ ์ ๋ช ํ CANDY CRUSH ๋ผ๋ ์น๊ฒ์์ ๋ง๋ค์ด ๋ณด๋ ์์์ด๋ค.

NodeJS ZOOM Clone
์๊ฒฉ ๊ทผ๋ฌด์๋ ๋น ์ง์ ์๋ ZOOM ์ดํ๋ฆฌ์ผ์ด์ ์ ํด๋ก ํด๋ณด๋ ์์์ด๋ค.

์ฝ๋์ ๋๊ตฌ
estimator.dev
ES2015์ ์ง์ํ๋ ๋ธ๋ผ์ฐ์ ๋น์จ์ด 90%๋ฅผ ๋๊ณ ์๋ค. ์ด ์ฌ์ดํธ๋ Modern JavaScript ์ต์ ํ
๋ฅผ ์งํํ๋ค๋ฉด ์ผ๋ง ๋งํผ์ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ํ ์ ์์์ง๋ฅผ ํ๊ฐ ํ ์ ์๋ ํด์ด๋ค.
Monaco Editor
VS Code์ ์น ๋ฒ์ . NPM์ผ๋ก ์ค์นํด ๋ธ๋ผ์ฐ์ ์์ VS Code๋ฅผ ์ด์ฉํ ์ ์๋ค. ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๋ ์ง์ํ์ง ์๋๋ค.
