2024-04-17.md
๐กDIL: ๋ชจ๋ ๋ฆฌ์กํธ ๋ฅ ๋ค์ด๋ธ, 7์ฃผ์ฐจ-3
์คํฐ๋: ์๊ฐ CS, https://github.com/monthly-cs/2024-03-modern-react-deep-dive
์ค๋ ์งํ: ๊ฐ์ธ๊ณต๋ถ
DIL-week7-3_2024-04-17
| DIL ์ฃผ์ฐจ | ๋ฒ์ | ๋ด์ฉ | ์ค๋์ฐจ ์ง๋ | | -------- | ---------- | --------------------------------------------------------------------------------------- | ----------- | | 7์ฃผ์ฐจ | 12์ฅ, 13์ฅ | ๋ชจ๋ ์น ๊ฐ๋ฐ์๊ฐ ๊ด์ฌ์ ๊ฐ์ ธ์ผ ํ ํต์ฌ ์น ์งํ, ์น ํ์ด์ง์ ์ฑ๋ฅ์ ์ธก์ ํ๋ ๋ค์ํ ๋ฐฉ๋ฒ | 790~799p |
์ค๋ ์ฝ์ ๋ด์ฉ์ markdown์ผ๋ก ๊ฐ๋จํ ๋ฉ๋ชจ
์ฝ์ ์๊ฐ: ์ด 1์๊ฐ
FID
์์
- ์ฌ์ฉ์๋ E2E ๋๊ตฌ์ ์
๋ ฅ์ด ํ์!
- ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์ => ์ค์ ํจ์ ํธ์ถ์ด ์๊ธฐ ๊น์ง
- ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ์๋ฃ๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ x
- ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์คํ ์๊ฐ ์ธก์ ์? Event Timming API๋ฅผ ์ฌ์ฉ
- ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ์๋ฃ๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ x
- ํด๋ฆญ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์ => ์ค์ ํจ์ ํธ์ถ์ด ์๊ธฐ ๊น์ง
๊ธฐ์ค ์ ์
| FID, ์ต์ด ์ ๋ ฅ ์ง์ฐ | ๊ธฐ์ค ๊ฒฐ๊ณผ | | ------------------- | --------- | | >100ms | ์ข์ | | >300ms | ๋ณดํต | | โค300ms | ๋์จ |
๊ฐ์ ๋ฐฉ์
- ๋ฉ์ธ ์ค๋ ๋์ ์ด๋ฒคํธ๋ฅผ ์คํํ ์ฌ์ ๋ฅผ ์ค์ผ ํ๋ค
long task
- ๋ธ๋ผ์ฐ์ ์์ ์์
ํด์ผ ํ๋๊ฐ?
- ์๋๋ผ๋ฉด ์๋ฒ๋ก
- ๋ง๋ค๋ฉด ๊ธด ์์
๋๋๊ธฐ
- ๋น์ฅ ๋ก๋ฉ์ ํ์ํ์ง ์์ ์์?
- ๋ฆฌ์กํธ์ Suspence๋ lazy, Next.js์ dynamic
- ๋น์ฅ ๋ก๋ฉ์ ํ์ํ์ง ์์ ์์?
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์ต์ํ
- ์ ์ฐ๋ js ๋ฆฌ์์ค => ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ปค๋ฒ๋ฆฌ์ง์์ ํ์ธํ ์ ์๋ค
- polyfill์ ๊ฒฝ์ฐ! ๋ค์ ๋ด์ฉ ๊ณ ๋ คํ๊ธฐ
- ํ์ํ ํ๊ฒฝ์ธ๊ฐ? ๊ตฌํ ๋ธ๋ผ์ฐ์ ์ง์ ์ํ๋ค๋ฉด? ๊ตณ์ด?
- ๊ผญ ํ์ํ ํด๋ฆฌํ์ธ๊ฐ? ์ฌ๋ฌ ๊ตฐ๋ฐ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ฝ๋์ธ์ง ํ์ธ
- ๋ช ๊ตฐ๋ฐ ๋์ง ์๋๋ค๋ฉด? ์ ์์ค์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ง์ ๊ตฌํ -> ์ฝ๋ ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์๋ค.
@babel/preset-env
๋ฅผ ์ฌ์ฉํด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์์ ์ฌ์ฉํ๊ณ ์๋ ๋ด์ฉ๋ง ํด๋ฆฌํ์ ๋ด์ ์ ์๋ค.- Next.js์ SWC ๋ด๋ถ์ ๊ตฌํ๋์ด ์์ด ๋ณ๋ ์ฒ๋ฆฌx
ํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์คํ ์ง์ฐ
- ex) Google Analytics, Firebase ๋ฑ์ ๋๊ตฌ
- ์น ํ์ด์ง ๋ก๋์ ์ค์ํ ์์ ์๋
| script ์์ฑ | ๋ค์ด๋ก๋ | ์คํ | | ----------- | ----------------------------------- | --------------------------------------------------------- | | defer | ๋ค๋ฅธ ๋ฆฌ์์ค์ ํจ๊ป ๋ณ๋ ฌ ๋ค์ด | ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋๋ฉด ๋ฐ๋ก ์คํ, ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋ ์์๋๋ก | | async | ๋ค๋ฅธ ๋ฆฌ์์ค์ ํจ๊ป ๋ณ๋ ฌ ๋ค์ด | ํ์ด์ง๊ฐ ์์ ํ ๋ก๋ฉ๋ ์ดํ์ ์คํ | | - | script๋ฅผ ๋ง๋๋ฉด ๋๊ธฐ์ ์ผ๋ก ๋ค์ด๋ก๋ | ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋๋ฉด ๋ฐ๋ก ์คํ, ๋ธ๋ฝํน |
CLS, Cumulative Layout Shift
์ ์
- ๋ทฐํฌํธ ๋ด๋ถ์ Layout Shift๋ง ์ธก์
- ์ต์ด ๋ ๋๋ง์ด ์์๋ ์์น์์ ๋ ์ด์์์ ์ด๋์ด ๋ฐ์ํ๋ค๋ฉด, ๋ ์ด์์ ์ด๋ ์ ์๋ก ๊ธฐ๋กํ๊ฒ ๋๋ค.
The layout shift score is a product of two measures
Layout shift score
https://web.dev/articles/cls#layout-shift-score
-
์ํฅ๋ถ๋ฅ ๊ณผ ๊ฑฐ๋ฆฌ๋ถ๋ฅ ์ ๊ณฑํจ
-
impact fraction
-
distance fraction
- Initially, the layout shift score was calculated based only on impact fraction. The distance fraction was introduced to avoid overly penalizing cases where large elements shift by a small amount.