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

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

    2022-09

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

    A JavaScript V8 engine walkthrough

    V8 JavaScript ์—”์ง„์˜ ๋™์ž‘์„ ์ƒํ™ฉ(๊ธฐ๋ณธ, ์˜ค๋ฅ˜, ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ, ๋น„๋™๊ธฐ)์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋‹จ๊ณ„๋ณ„๋กœ ๋™์ž‘ํ•˜๋Š”์ง€๋ฅผ ์‹œ๊ฐํ™”๋œ ์ž๋ฃŒ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    Oven

    ์ƒˆ๋กœ์šด ๋Ÿฐํƒ€์ž„์ธ Bun์ด ๊ณต๊ฐœ๋œ ํ›„, ์˜จ๋ผ์ธ์—์„œ ๋งŽ์€ ๊ด€์‹ฌ๊ณผ ์ฃผ๋ชฉ์„ ์ด๋Œ์–ด ๋‚ด๊ณ  ์žˆ๋‹ค. ํˆฌ์ž์‚ฌ์ธ Kleiner Perkins๊ฐ€ ์ฃผ๋„ํ•˜๊ณ , Vercel์˜ ์ฐฝ์—…์ž์ธ Guillermo Rauch ๊ทธ๋ฆฌ๊ณ  Y Combinator ๋“ฑ์ด ์ฐธ์—ฌํ•œ ํŽ€๋”ฉ์„ ํ†ตํ•ด 7๋ฐฑ๋งŒ ๋‹ฌ๋Ÿฌ์˜ ํˆฌ์ž๋ฅผ ์œ ์น˜ํ–ˆ๋‹ค.

    ์ด๋กœ ์ธํ•ด Bun์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐœ์ „์‹œ์ผœ๋‚˜๊ฐˆ ์ƒˆ๋กœ์šด Oven์ด๋ผ๋Š” ํšŒ์‚ฌ๊ฐ€ ์„ค๋ฆฝ๋˜์—ˆ๊ณ , ์ฑ„์šฉ์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค.

    What Are K, T, and V in TypeScript Generics?

    Mastering TypeScript์‹œ๋ฆฌ์ฆˆ์˜ ์ฒซ ๊ธ€๋กœ
    TypeScript์˜ ๊ฐœ๋…์„ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•œ ๊ธ€์ด๋‹ค.
    TypeScript์˜ ๋‹ค์–‘ํ•œ ํƒ€์ž…๋“ค์˜ ์‹คํ–‰ ํ๋ฆ„๋„ ํ•จ๊ป˜ ๋ณด์—ฌ์ฃผ์–ด ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์ข‹๋‹ค.
    ์œ„์˜ ์ฃผ์ œ ์™ธ์—๋„ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธ€๋“ค์ด ์žˆ๊ณ , ๊ณ„์† ์—…๋ฐ์ดํŠธ ๋˜๊ณ  ์žˆ๋‹ค.

    The James Webb Space Telescope runs JavaScript, apparently

    1989๋…„ ์‹œ์ž‘๋œ ์ œ์ž„์Šค ์›น ์šฐ์ฃผ ๋ง์›๊ฒฝ ํ”„๋กœ์ ํŠธ๋Š” ์˜ค๋žœ ์‹œ๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ๋“œ๋””์–ด ์ง€๋‚œ 21๋…„ 12์›” ๋ฐœ์‚ฌ๋˜์–ด ๋†€๋ผ์šด ์šฐ์ฃผ ์‚ฌ์ง„์„ ๋ณด๋‚ด์˜ค๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ํ•œ ๋ฒˆ์ฏค์€ ๋“ค์–ด๋ดค์„ ๊ฒƒ์ด๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ž‘์—…๋“ค์€ ๋Œ€๋ถ€๋ถ„ JavaScript๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ œ์–ด๊ฐ€ ๋˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด๋‹ค.

    WHY YOUR WEBSITE SHOULD BE UNDER 14KB IN SIZE

    ์›น์‚ฌ์ดํŠธ์˜ ํฌ๊ธฐ๊ฐ€ 14KB์ผ ๊ฒฝ์šฐ, 15KB์ธ ๊ฒฝ์šฐ๋ณด๋‹ค 621ms๊ฐ€ ๋” ๋น ๋ฅผ ์ˆ˜๋ฐ–์— ์—†๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ธ€์ด๋‹ค. ์ด์œ ๋Š” ๋ฐ”๋กœ TCP์˜ slow start ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋•Œ๋ฌธ์ธ๋ฐ, ์™œ ๊ทธ๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š”์ง€์™€ ๊ทธ์— ๋”ฐ๋ผ ๋ฌด์—‡์„ ์‹ ๊ฒฝ ์จ์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋‹ค๋ฃฌ๋‹ค.

    ์ด๋Š” HTTP/2์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜๋ฉฐ, UDP ๊ธฐ๋ฐ˜์˜ HTTP/3์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋œ๋‹ค.

    How we use Typescript with React

    Imerso๋ผ๋Š” ํšŒ์‚ฌ์—์„œ 87,000์ค„์˜ React ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ TypeScript๋กœ ์ „ํ™˜ํ•˜๋ฉด์„œ ์ •ํ•œ ๊ฐ€์ด๋“œ์˜ ์ผ๋ถ€๋ฅผ ๊ธ€๋กœ ์ž‘์„ฑํ•˜์˜€๋‹ค.
    ๊ฐ€์ด๋“œ๋Š” ์ผ๊ด€์„ฑ์„ ๋†’์ด๊ณ , ์ฝ”๋“œ์˜ ์˜๋„๋ฅผ ์‰ฝ๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋˜์—ˆ๋‹ค.

    Itโ€™s 2022, Donโ€™t Just Use React Anymore

    ๋‹ค์†Œ ์ž๊ทน์ ์œผ๋กœ ๋ณด์ผ ์ˆ˜ ์žˆ๋Š” ์ด ๊ธ€์˜ ํƒ€์ดํ‹€์€ ์นœ๊ตฌ๊ฐ€ Vue.js์— ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ์ธํ„ฐ๋ทฐ์— ์‹คํŒจํ•œ ๊ฒƒ์„ ๋™๊ธฐ๋กœ ์ด ๊ธ€์ด ์ž‘์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    ์ด ๊ธ€์€ Vue๋ฅผ ์ด์šฉํ•ด์„œ React์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•œ๋‹ค.
    React์—๋Š” ์ต์ˆ™ํ•˜์ง€๋งŒ Vue.js๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด ์งง์€ ์‹œ๊ฐ„์— ํŒŒ์•…ํ•˜๊ธฐ ์ข‹๋‹ค.

    JSON Creator Douglas Crockford Interview

    Douglas Clockford๊ฐ€ evrone์ด๋ผ๋Š” ์—…์ฒด์™€ ์ธํ„ฐ๋ทฐ ์ „๋ฌธ์ด๋‹ค.
    Douglas Clockford๋Š” JS์˜ ์–ด๋–ค ๋ณ€๊ฒฝ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ์ง€ ๋ฌป๋Š” ์งˆ๋ฌธ์—, ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์€ JavaScript๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋‹ตํ–ˆ๋‹ค.
    JavaScript๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ณต๋ฃก ์–ธ์–ด๊ฐ€ ๋˜์–ด ๋ฐœ์ „์„ ๋ง‰๋Š” ์–ธ์–ด๊ฐ€ ๋˜์—ˆ๊ณ , ๋‹ค์Œ ์–ธ์–ด์— ์ง‘์ค‘ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ง๋„ ๋ง๋ถ™์˜€๋‹ค.

    Top layer support in Chrome DevTools

    ๋ ˆ์ด์–ด๋ฅผ ๋ฌธ์„œ ๋‚ด์˜ ์ตœ์ƒ์œ„์— ์œ„์น˜ํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด z-index:1000๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ <dialog> ์š”์†Œ๋ฅผ "modal" ํ˜•ํƒœ๋กœ ์—ด๊ฒŒ ๋˜๋ฉด ๋ธŒ๋ผ์šฐ์ € ๋ทฐํฌํŠธ ๋‚ด์˜ document ์ƒ์œ„์— ์œ„์น˜ํ•˜๋Š” "top layer"์™€ ๊ฐ™์ด ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋” ์ด์ƒ ์ˆ˜๋™์ ์ธ z-index ๊ฐ’์˜ ์กฐ์ •์„ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋˜ํ•œ pseudo-element์ธ ::backdrop์„ ํ†ตํ•ด ๋ฐฐ๊ฒฝ์„ ์Šคํƒ€์ผ๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.

    <!-- <dialog> ์š”์†Œ๋ฅผ modal๋กœ ์—ฌ๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ -->
    <main>
      <button onclick="window.dialog.showModal();">Open Dialog</button>
    </main>
    <dialog id="dialog"></dialog>
    

    Chrome 105 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ top layer์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    DevTools Tips: How to speed up your workflow with Console shortcuts

    ํฌ๋กฌ devtools์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” console shortcut์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค.
    DOM์„ ์‰ฝ๊ฒŒ ์…€๋ ‰ํŒ…ํ•˜๊ณ  object๋ฅผ table๋กœ ๋ณด๊ธฐ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋“ฑ devtools๋ฅผ ์ข€ ๋” ์Šค๋งˆํŠธํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค์„ ์˜์ƒ์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์•„๋งˆ ํ‰์†Œ ๊ด€์‹ฌ์„ ๊ฐ–์ง€ ์•Š์•˜๋‹ค๋ฉด ์ ‘ํ•ด๋ณด์ง€ ๋ชปํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ๋งŽ์„ ๊ฒƒ์ด๋‹ค.

    ํŠœํ† ๋ฆฌ์–ผ

    CSS border animations

    CSS๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…Œ๋‘๋ฆฌ์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณธ๋‹ค.

    JavaScript Game Development Course for Beginners

    Vanilla JavaScript๋กœ ํšก์Šคํฌ๋กค ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด ๋ณธ๋‹ค.

    The Infinite Marquee

    ์ง€๊ธˆ์€ deprecate ๋œ <marquee> ํƒœ๊ทธ๋ฅผ HTML๊ณผ CSS๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ˜„๋Œ€์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค.

    ์ฝ”๋“œ์™€ ๋„๊ตฌ

    Docusaurus

    Docusaurus๋Š” Meta์˜ ์˜คํ”ˆ์†Œ์Šค๋กœ ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ ๋„๊ตฌ์ด๋‹ค.
    2๋ฒ„์ „์—์„œ๋Š” MDX๋ฅผ ์‚ฌ์šฉํ•ด React ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ๊ณ ,
    ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ทœ์น™์„ ์ด์šฉํ•ด ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ์ž๋™ ์ƒ์„ฑํ•ด ์ฃผ๊ฑฐ๋‚˜, ํ”Œ๋Ÿฌ๊ทธ์ธ, ํ…Œ๋งˆ ๊ธฐ๋Šฅ ๋“ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

    novu

    ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ค์–‘ํ•œ ์ฑ„๋„์„ ํ†ตํ•œ ์•Œ๋ฆผ ์ œ๊ณต์„ ์œ„ํ•œ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.

    Choose Your Framework

    ํฌ์ผ“๋ชฌ ์Šคํƒ€์ผ์˜ ๊ฒŒ์ž„ ์Šคํƒ€์ผ์„ ํ†ตํ•ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•˜๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ ๊ณต์‹ ์›น์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜๋Š” ์•„์ฃผ ๋‹จ์ˆœํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

    Testing Library Recorder

    Chrome ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ Testing Library๋ฅผ ์œ„ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘์„ ๋…นํ™”ํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‚ด๋ณด๋‚ด๊ธฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    React Hooks Lifecycle

    Dan Abramov์˜ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ ์ƒ๋ช…์ฃผ๊ธฐ ๋‹ค์ด์–ด๊ทธ๋žจ์— ์˜๊ฐ์„ ๋ฐ›์•„ ์ž‘์„ฑ๋œ React Hooks ์ƒ๋ช…์ฃผ๊ธฐ ๋‹ค์ด์–ด๊ทธ๋žจ์ด๋‹ค.

    Vanilla Breeze

    tailwind CSS ๋ฅผ vanilla CSS๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋„๊ตฌ.