naver/fe-news ๋‰ด์Šค๋ ˆํ„ฐ ๋ทฐ์–ด (๋น„๊ณต์‹)

๋ชฉ์ฐจ
๋ชฉ์ฐจ

    2021-01

    ๋งํฌ & ์ฝ์„๊ฑฐ๋ฆฌ

    2020๋…„๊ณผ ์ดํ›„ JavaScript์˜ ๋™ํ–ฅ - ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ

    1ํŽธ, 2ํŽธ

    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

    GraphQL์ด ๊ฐ€์ ธ์˜จ ์—์–ด๋น„์•ค๋น„ ํ”„๋ก ํŠธ์•ค๋“œ ๊ธฐ์ˆ ์˜ ๋ณ€์ฒœ์‚ฌ(๋ถ€์ œ: RESTํ™˜๊ฒฝ์—์„œ GraphQL ๊ธฐ๋ฐ˜ UI ์„ค๊ณ„ํ•˜๊ธฐ)

    • ์—์–ด๋น„์—”๋น„์— GrahphQL์„ ๋„์ž…ํ•˜๋ฉด์„œ BFF ์•„ํ‚คํ…์ณ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ„ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•œ ๋ฐœํ‘œ์ด๋‹ค.
    • GraphQL ์šด์˜ ๊ฒฝํ—˜์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ๊ฒฝํ—˜์ด ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด GraphQL API ๊นŒ์ง“๊ฑฐ ์šด์˜ํ•ด๋ณด์ง€ ๋ญ ๋ฐœํ‘œ๋ฅผ ๋ณด์‹œ๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

    Server-Side Rendering

    ์–ด์„œ์™€, SSR์€ ์ฒ˜์Œ์ด์ง€? (๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ Node.js ๊ธฐ๋ฐ˜์˜ Server-Side Rendering ์ ์šฉ๊ธฐ)

    • ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ์— SSR์„ ๋„์ž…ํ•˜๋ฉด์„œ BFF ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ„ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•œ ๋ฐœํ‘œ์ด๋‹ค.
    • SSR์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์ฒด์ ์ธ ๊ฒฝํ—˜์ด ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ์ด ์ด๋ ‡๊ฒŒ ์‰ฌ์› ๋‚˜? (feat. Next.js) ๋ฐœํ‘œ๋ฅผ ๋ณด์‹œ๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

    ์ด ์™ธ์—๋„ Deview 2020์—์„œ FrontEnd ๊ฒฝํ—˜์„ ๋‹ค๋ฃฌ ๋‹ค์–‘ํ•œ ์„ธ์…˜์ด ์žˆ์œผ๋‹ˆ ์‚ดํŽด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค.

    [์ฐธ๊ณ ] Deview 2020 FrontEnd ์„ธ์…˜

    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๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋ฐ”์ผ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.