2024-03-20.md

๐Ÿก

DIL: ๋ชจ๋˜ ๋ฆฌ์•กํŠธ ๋”ฅ ๋‹ค์ด๋ธŒ, 3์ฃผ์ฐจ-3

์Šคํ„ฐ๋””: ์›”๊ฐ„ CS, https://github.com/monthly-cs/2024-03-modern-react-deep-dive
์˜ค๋Š˜ ์ง„ํ–‰: ๊ฐœ์ธ๊ณต๋ถ€


DIL-week3-3_2024-03-20

| DIL ์ฃผ์ฐจ | ๋ฒ”์œ„ | ๋‚ด์šฉ | ์˜ค๋Š˜์ฐจ ์ง„๋„ | | -------- | ------ | ------------------------------------------------------ | ----------- | | 3์ฃผ์ฐจ | 6, 7์žฅ | ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ๋„๊ตฌ ๋””๋ฒ„๊น…, ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•œ ๋ถ„์„ | 438p~455p |

์˜ค๋Š˜ ์ฝ์€ ๋‚ด์šฉ์„ markdown์œผ๋กœ ๊ฐ„๋‹จํžˆ ๋ฉ”๋ชจ
์ฝ์€ ์‹œ๊ฐ„: 10์‹œ~11์‹œ


ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ถ„์„

  • Source: breakpoints, call stack, global listeners, scope, watch
  • Network ์ฒดํฌ
    • ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ, ์ค‘๋ณต ์š”์ฒญ
    • ๋ฆฌ์†Œ์Šค ํฌ๊ธฐ
    • ๋ฆฌ์†Œ์Šค ๋ถˆ๋Ÿฌ์˜ค๋Š” ์†๋„
    • ๋ฆฌ์†Œ์Šค ๋‹ค์šด๋กœ๋“œ ์šฐ์„  ์ˆœ์œ„ (์Šคํฌ๋ฆฐ์ƒท)
  • Memory
    • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜, ์†๋„ ์ €ํ•˜, ํ”„๋ฆฌ์ง•
    • Heap snapshot Allocation instrumentation on timeline
    • Allocation sampling
  • JavaScript VM instance
    • ๋””๋ฒ„๊น…ํ•˜๊ณ  ์‹ถ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ VM ํ™˜๊ฒฝ์„ ์„ ํƒ (ํž™ ํฌ๊ธฐ/ํž™ ์ ์œ )
      • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์— ๋”ฐ๋ผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ”๋€œ
      • ํฌ๊ธฐ๋งŒํผ ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์— ๋ถ€๋‹ด
  • ํž™ ์Šค๋ƒ…์ƒท
    • (์ดฌ์˜ ๊ธฐ์ค€)ํ˜„์žฌ ํŽ˜์ด์ง€์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ
    • ์Šค๋ƒ…์ƒท ๊ฐ„์˜ ์ฐจ์ด ๋น„๊ต -> ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ฐจ์ด, ์–ด๋””์„œ ๋ฐ˜ํ™˜/์ƒ์„ฑ ๋˜์—ˆ๋ƒ, ์–ด๋–ค ๊ฐ’์ด๋ƒ(์ „์—ญ ๋ณ€์ˆ˜ ์ €์žฅํ•ด์„œ ์‹ค์ œ๊ฐ’ ํ™•์ธ)
  • ์–•์€ ํฌ๊ธฐ vs ์œ ์ง€๋œ ํฌ๊ธฐ
    • ์–•์€ ํฌ๊ธฐ: ๊ฐ์ฒด ์ž์ฒด๊ฐ€ ๋ณด์œ ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ฐ”์ดํŠธ ํฌ๊ธฐ
    • ์œ ์ง€๋œ ํฌ๊ธฐ: ๊ฐ์ฒด ์ž์ฒด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋ถ€๋ชจ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์ž์‹ ๊ฐ์ฒด ํฌ๊ธฐ๊นŒ์ง€ ๋”ํ•œ ๊ฐ’
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์ฐพ๊ธฐ
    • ์–•์€ ํฌ๊ธฐ๋Š” ์ž‘์œผ๋‚˜, ์œ ์ง€๋œ ํฌ๊ธฐ๊ฐ€ ํฐ ๊ฐ์ฒด๋ฅผ ์ฐพ๋Š”๋‹ค => ๋ฉ”๋ชจ๋ฆฌ ์ ์œ 
      • ๋ณต์žกํ•œ ์ฐธ์กฐ ๊ด€๊ณ„, ๋‹ค์ˆ˜์˜ ๋‹ค๋ฅธ ๊ฐ์ฒด ์ฐธ์กฐ
      • ๋‘ ํฌ๊ธฐ์˜ ์ฐจ์ด๊ฐ€ ํฐ ๊ฐ์ฒด ์ฐพ๊ธฐ

๋ฆฌ์†Œ์Šค ์••์ถ•

brotli vs gzip
ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ €์˜ JavaScript์—์„œ ์ง์ ‘ Brotli๋‚˜ Gzip์œผ๋กœ ์••์ถ•ํ•˜๊ฑฐ๋‚˜ ์••์ถ•์„ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ์‚ฌ๋ก€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋Œ€์‹ , ์ด๋Ÿฌํ•œ ์••์ถ• ๊ธฐ์ˆ ์€ ์ฃผ๋กœ ์›น ์„œ๋ฒ„ ์„ค์ •์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์›น ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ, ์ž๋™์œผ๋กœ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์••์ถ•ํ•˜์—ฌ ์ „์†กํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฐ›์€ ์••์ถ•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ œํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ฒ„ ์„ค์ •์„ ํ†ตํ•ด ์ด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.