Jieunny์ ๋ธ๋ก๊ทธ
S4) Unit 8. [์ต์ ํ]์บ์ & Tree Shaking & Lighthouse ๋ณธ๋ฌธ
S4) Unit 8. [์ต์ ํ]์บ์ & Tree Shaking & Lighthouse
Jieunny 2023. 3. 30. 15:18๐ฃ ์บ์ ์ฌ์ฉํ๊ธฐ
๐ญ. ์บ์
โ๏ธ ๋ค์ด๋ก๋ ๋ฐ์ ๋ฐ์ดํฐ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ณต์ฌํด ๋๋ ์์ ์ฅ์
โฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ ๊ฐ์ ๋ค์ ๊ณ์ฐํ๋ ์๊ฐ์ ์ ์ฝํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉ
๐ฎ. ์บ์๋ฅผ ์ด์ฉํ ์์ฒญ ๊ณผ์
1. ์ฒซ ๋ฒ์งธ ์์ฒญ์์ ์บ์๋ฅผ ์ฌ์ฉํ๋ค.
โฐ ์๋ฒ์์ ์๋ต์ ๋ณด๋ด์ค ๋ ์ด๋ฏธ์ง ํ์ผ๊ณผ ํจ๊ป ํค๋์ Cache๋ฅผ ์์ฑํด์ ๋ณด๋ธ๋ค.
=> ํด๋น ์ด๋ฏธ์ง ํ์ผ์ด 60์ด๋์ ์ ํจํ๋ค๋ ๊ฒ์ ์๋ฏธ
HTTP/1.1 200 OK
Content-Type: image/jpeg
Cache-Control: max-age=60
Content-Length: 34012
// ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์บ์์ ์ ์ฅ
2. ๋ ๋ฒ์งธ ์์ฒญ๋ถํฐ๋ ์บ์๋ฅผ ์ฐ์ ์กฐํํ๊ฒ ๋๋ค.
โฐ ์บ์์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ฉด์ ์์ง 60์ด๊ฐ ์ง๋์ง ์์ ์ ํจํ๋ค๋ฉด ์บ์์์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ค.
โฐ ์ ํจ ์๊ฐ์ด 60์ด๊ฐ ์ง๋ฌ๋ค๋ฉด ์๋ฒ์์ ๋ค์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ค๊ฒ ๋๋ค.
๐ฏ. ์บ์์ ํจ๊ณผ
1๏ธโฃ ์บ์๊ฐ ์ ํจํ ์๊ฐ ๋์ ๋คํธ์ํฌ ๋ฆฌ์์ค๋ฅผ ์๋ ์ ์๋ค.
2๏ธโฃ ํ์ผ์ ๋ค์ ๋ฐ์์ฌ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ธ๋ผ์ฐ์ ๋ก๋ฉ์ด ๋นจ๋ผ์ง๋ค.
3๏ธโฃ ๋ก๋ฉ์ด ๋นจ๋ผ์ง ๋งํผ ๋น ๋ฅธ ์ฌ์ฉ์ ๊ฒฝํ ์ ๊ณต์ด ๊ฐ๋ฅํ๋ค.
๐ฐ. ์บ์ ๊ฒ์ฆ ํค๋์ ์กฐ๊ฑด๋ถ ์์ฒญ
โ๏ธ ์บ์ ์ ํจ ์๊ฐ์ ์ง๋ฌ์ง๋ง, ์๋ฒ์์ ๋ค์ ๋ฐ์์์ผํ๋ ํ์ผ์ด ์บ์์ ์ ์ฅ๋์ด ์๋ ํ์ผ๊ณผ ์์ ํ ๋์ผํ ๊ฒฝ์ฐ
=> ๋๊ฐ์ ํ์ผ์ ๋ค์ ๋ฐ์์ฌ ํ์ ์์ด ์๋ฒ์ ํ์ผ๊ณผ ์บ์์ ํ์ผ์ด ๋์ผํ์ง ํ์ธํด์ ์ฌ์ฌ์ฉ
=> ์ด๋ฐ ์ํฉ์์ ์ฌ์ฉํ ์ ์๋ HTTP ํค๋(์บ์ ๊ฒ์ฆ ํค๋, ์กฐ๊ฑด๋ถ ์์ฒญ ํค๋)
1๏ธโฃ ์บ์ ๊ฒ์ฆ ํค๋
โ๏ธ ์บ์์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ๋์ผํ์ง ํ์ธํ๊ธฐ ์ํ ์ ๋ณด๋ฅผ ๋ด์ ์๋ต ํค๋
โฐ Last-Modified : ๋ฐ์ดํฐ๊ฐ ๋ง์ง๋ง์ผ๋ก ์์ ๋ ์์ ์ ์๋ฏธํ๋ ์๋ต ํค๋๋ก, ์กฐ๊ฑด๋ถ ์์ฒญ ํค๋์ธ If-Modified-Since ์ ๋ฌถ์ด์ ์ฌ์ฉ
โฐ Etag : ๋ฐ์ดํฐ์ ๋ฒ์ ์ ์๋ฏธํ๋ ์๋ต ํค๋๋ก, ์กฐ๊ฑด๋ถ ์์ฒญ ํค๋์ธ If-None-Match ์ ๋ฌถ์ด์ ์ฌ์ฉ
2๏ธโฃ ์กฐ๊ฑด๋ถ ์์ฒญ ํค๋
โ๏ธ ์บ์์ ๋ฐ์ดํฐ์ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ๋์ผํ๋ค๋ฉด ์ฌ์ฌ์ฉํ๊ฒ ํด๋ฌ๋ผ๋ ์๋ฏธ์ ์์ฒญ ํค๋
โฐ If-Modified-Since : ์บ์๋ ๋ฆฌ์์ค์ Last-Modified ๊ฐ ์ดํ์ ์๋ฒ ๋ฆฌ์์ค๊ฐ ์์ ๋์๋์ง ํ์ธํ๊ณ , ์์ ๋์ง ์์๋ค๋ฉด ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ค.
โฐ If-None-Match : ์บ์๋ ๋ฆฌ์์ค์ ETag ๊ฐ๊ณผ ํ์ฌ ์๋ฒ ๋ฆฌ์์ค์ ETag ๊ฐ์ด ๊ฐ์์ง ํ์ธํ๊ณ , ๊ฐ์ผ๋ฉด ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ค.
๐ฃ ํธ๋ฆฌ์์ดํน
๐ญ. ํธ๋ฆฌ์์ดํน์ด๋?
โ๏ธ ๋๋ฌด๋ฅผ ํ๋ค์ด ์๊ฐ์ง๋ฅผ ํธ์ด๋ด๋ฏ ๋ถํ์ํ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ์๋ฏธ
โฐ ๋ถํ์ํ ์ฝ๋๋ค์ ์ฐพ์๋ด์ด ์ ๊ฑฐํ๋ฉด ์น ์ฌ์ดํธ ์ฑ๋ฅ ์ต์ ํ์ ํฐ ๋์์ด ๋๋ค.
1๏ธโฃ JavaScript ํ์ผ์ ํฌ๊ธฐ
โ๏ธ ์น ์ฌ์ดํธ์ ์ธํฐ๋์ ์ด ๋ง์์ง ๋งํผ JS์ ๋น์ค์ด ๋์์ก๋ค๋ ๊ฒ์ ์๋ฏธ
โฐ ํฌ๊ธฐ๊ฐ ํจ์ฌ ์ปค์ง JavaScript ํ์ผ์ด ๋์ด๋ ์์ฒญ ํ์๋งํผ ๋ ์ค๊ฐ๋ ๊ฒ์ด๋, ๋คํธ์ํฌ ๋ฆฌ์์ค ์๋ชจ๋ ๊ทธ๋งํผ ์ปค์ง๋ค.
โฐ ํ์ผ์ด ์ค๊ณ ๊ฐ๋ ๋์ ํ๋ฉด ํ์๊ฐ ๋ฆ์ด์ง๋ค๋ ๊ฒ์ ๋ปํ๊ณ , ๋คํธ์ํฌ ์๋๊ฐ ๋๋ฆฐ ํ๊ฒฝ์์๋ ๋ ๋๋ ค์ง๋ค.
=> ํธ๋ฆฌ์์ดํน์ ํตํด ํ์ผ ํฌ๊ธฐ๋ฅผ ๊ฐ๋ฅํ ์ค์ด๋ ๊ฒ์ด ์ต์ ํ์ ๋์์ด ๋๋ค.
2๏ธโฃ JavaScript ํ์ผ์ ์คํ ์๊ฐ
โ๏ธ ์ฝ๋ ์คํ๊น์ง ๊ฑฐ์ณ์ผ ํ๋ ๊ณผ์ ์ด ๋ง๊ธฐ ๋๋ฌธ์ JavaScript๋ ๋ค๋ฅธ ๋ฆฌ์์ค์ ๋นํด์ ์คํ๊น์ง ์๋์ ์ผ๋ก ๋ง์ ์๊ฐ์ ์๋ชจํ๋ค.
โฐ JavaScript ํ์ผ์ ํฌ๊ธฐ๊ฐ ์ปค์ง ๋งํผ, ํ์ผ์ ์คํ ์๊ฐ ๋ํ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ช ๋ฐฐ์ ์๊ฐ์ ํ์ผ ์คํ์๋ง ์ฌ์ฉํ ์๋ ์๋ค.
=> ๊ทธ๋งํผ ์ดํ๋ฅ ์ ๊ทธ๋งํผ ์ปค์ง๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌ์์ดํน์ ํตํ ์ต์ ํ๊ฐ ํ์ํ๋ค.
๐ฎ. JavaScript ํธ๋ฆฌ์์ดํน์ด๋?
1๏ธโฃ ํ์ํ ๋ชจ๋๋ง import ํ๊ธฐ
โ๏ธ import ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์์ ์ฌ์ฉํ ๋, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ฒด๋ฅผ ๋ถ๋ฌ์ค๋ ๊ฒ์ด ์๋๋ผ ํ์ํ ๋ชจ๋๋ง ๋ถ๋ฌ์ค๋ฉด ๋ฒ๋ค๋ง ๊ณผ์ ์์ ์ฌ์ฉํ๋ ๋ถ๋ถ์ ์ฝ๋๋ง ํฌํจ์ํค๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌ์์ดํน์ด ๊ฐ๋ฅํ๋ค.
import { useState, useEffect } from 'react'
// import React from 'react' ๋ณด๋ค ์์ฒ๋ผ ํ์.
2๏ธโฃ Babelrc ํ์ผ ์ค์ ํ๊ธฐ
โ๏ธ Barbelrc ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ๋ฉด ES5๋ก ๋ณํํ๋ ๊ฒ์ ๋ง์ ์ ์๋ค.
โฐ Babel : ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ด ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์๋ ํธํ์ด ๊ฐ๋ฅํ๋๋ก ES5 ๋ฌธ๋ฒ์ผ๋ก ๋ณํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
โฐ ES5๋ฌธ๋ฒ์ import๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ commonJS ๋ฌธ๋ฒ์ require๋ก ๋ณ๊ฒฝ์ํค๋๋ฐ, ์ด ๊ณผ์ ์ ํธ๋ฆฌ์์ดํน์ ํฐ ๊ฑธ๋ฆผ๋์ด ๋๋ค.
{
“presets”: [
[
“@babel/preset-env”,
{
"modules": false
}
]
]
}
3๏ธโฃ SideEffects ์ค์ ํ๊ธฐ
โ๏ธ ์นํฉ์ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ๋์ ๊ฒฝ์ฐ, ์ฌ์ฉํ์ง ์๋ ์ฝ๋๋ผ๋ ํธ๋ฆฌ์์ดํน ๋์์์ ์ ์ธ์ํจ๋ค.
โฐ package.json ํ์ผ์์ sideEffects๋ฅผ ์ค์ ํ์ฌ ์ฌ์ด๋ ์ดํํธ๊ฐ ์๊ธฐ์ง ์์ ๊ฒ์ด๋ฏ๋ก ์ฝ๋๋ฅผ ์ ์ธ์์ผ๋ ๋จ์ ์นํฉ์๊ฒ ์๋ ค์ค๋ค.
{
"name": "tree-shaking",
"version": "1.0.0",
"sideEffects": false
}
// ์ ํ๋ฆฌ์ผ์ด์
์ ์ฒด์์ ์ฌ์ด๋ ์ดํํธ๊ฐ ๋ฐ์ํ์ง ์์ ๊ฒ์ ์๋ ค์ค.
{
"name": "tree-shaking",
"version": "1.0.0",
"sideEffects": ["./src/components/NoSideEffect.js"]
}
// ํน์ ํ์ผ์์๋ ๋ฐ์ํ์ง ์์ ๊ฒ์ ์๋ ค์ค.
4๏ธโฃ ES6 ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ
โ๏ธ ES5 ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๋ชจ๋์ ํต์งธ๋ก ์ฌ์ฉํ๋ ์ํฉ์ด๋ผ๋ฉด ์๊ด์์ง๋ง, ์ผ๋ถ๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ํด๋น ๋ชจ๋์ ๋์ฒดํ ์ ์์ผ๋ฉด์ ES6๋ฅผ ์ง์ํ๋ ๋ค๋ฅธ ๋ชจ๋์ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌ์์ดํน์ ์ ๋ฆฌํ๋ค.
โฐ ES6 ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ํด๋น ๋ชจ๋์์๋ ํ์ํ ๋ถ๋ถ๋ง import ํด์ ์ฌ์ฉํ์ง ์๋ ์ฝ๋๋ ๋น๋ํ ๋ ์ ์ธ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๐ฃ Lighthouse
๐ญ. Lighthouse๋?
โ๏ธ ์ฌ์ดํธ๋ฅผ ๊ฒ์ฌํ์ฌ ์ฑ๋ฅ ์ธก์ ์ ํ ์ ์๋ ๋๊ตฌ
โฐ ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ ์คํ์์ค๋ก์ ์น ํ์ด์ง์ ํ์ง์ ๊ฐ์ ํ ์ ์๋ ์๋ํ ํด
โฐ ์ฑ๋ฅ, ์ ๊ทผ์ฑ, PWA, SEO ๋ฑ์ ๊ฒ์ฌํ๋ฉฐ ์ด๋ฅผ ์ด์ฉํด ์ฌ์ฉ์๋ ์ด๋ค ์นํ์ด์ง๋ ํ์ง ๊ฒ์ฌ๋ฅผ ํ ์ ์๋ค.
๐ฎ. Lighthouse ์์ํ๊ธฐ
1๏ธโฃ Chrome ๊ฐ๋ฐ์ ๋๊ตฌ์์ ์คํํ๊ธฐ
1. ํฌ๋กฌ์์ ๊ฒ์ฌํ๊ณ ์ถ์ ํ์ด์ง์ url์ ํด๋ฆญํ๋ค.
2. ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฐ๋ค.
3. lighthouse ํญ์ ํด๋ฆญํ๋ค.
ใด (1) Generate report๋ฅผ ํด๋ฆญํ๊ฑฐ๋ Categories์์ ํน์ ํ ์งํ๋ง ์ ํํ์ฌ ๊ฒ์ฌํ ์๋ ์๋ค.
ใด (2) ๋๋ต 30-60์ด๊ฐ ๊ฒ์ฌ๊ฐ ์คํ๋๊ณ ๋ฆฌํฌํธ๊ฐ ํด๋น ํ์ด์ง์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ด์ ์์ฑ๋๋ค.
2๏ธโฃ Node CLI์์ ์คํํ๊ธฐ
1. -g ์ต์ ์ ์ฌ์ฉํ์ฌ Lighthouse๋ฅผ ์ ์ญ ๋ชจ๋๋ก ์ค์นํ๋ค.
npm install -g lighthouse
2. ๊ฒ์ฌ๋ฅผ ์คํํ๋ค.
lighthouse <url>
3. Lighthouse์ ๋ชจ๋ ์ต์ ์ ๋ณผ ์ ์๋ค.
lighthouse --help
๐ฏ. Lighthouse ๋ถ์ ๊ฒฐ๊ณผ ํญ๋ชฉ
1๏ธโฃ Performance
โ๏ธ ์น ์ฑ๋ฅ์ ์ธก์ ํ๋ค.
โฐ ํ๋ฉด์ ์ฝํ ์ธ ๊ฐ ํ์๋๋๋ฐ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง, ํ์๋ ํ ์ฌ์ฉ์์ ์ํธ์์ฉํ๊ธฐ ๊น์ง ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง, ํ๋ฉด์ ๋ถ์์ ํ ์์๋ ์๋์ง ๋ฑ์ ํ์ธํ๋ค.
2๏ธโฃ Accessibility
โ๏ธ ์น ํ์ด์ง๊ฐ ์น ์ ๊ทผ์ฑ์ ์ ๊ฐ์ถ๊ณ ์๋์ง ํ์ธํ๋ค.
โฐ ๋์ฒด ํ ์คํธ๋ฅผ ์ ์์ฑํ๋์ง, ๋ฐฐ๊ฒฝ์๊ณผ ์ฝํ ์ธ ์์์ ๋๋น๊ฐ ์ถฉ๋ถํ์ง, ์ ์ ํ WAI-ARIA ์์ฑ์ ์ฌ์ฉํ๋์ง ๋ฑ์ ํ์ธํ๋ค.
3๏ธโฃ Best Practices
โ๏ธ ์น ํ์ด์ง๊ฐ ์น ํ์ค ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ๋ฐ๋ฅด๊ณ ์๋์ง ํ์ธํ๋ค.
โฐ HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋์ง, ์ฌ์ฉ์๊ฐ ํ์ธํ ํ๋ฅ ์ ๋์ง ์์ง๋ง ์ฝ์ ์ฐฝ์ ์ค๋ฅ๊ฐ ํ์ ๋์ง๋ ์๋์ง ๋ฑ์ ํ์ธํ๋ค.
4๏ธโฃ SEO
โ๏ธ ์น ํ์ด์ง๊ฐ ๊ฒ์ ์์ง ์ต์ ํ๊ฐ ์ ๋์ด์๋์ง ํ์ธํ๋ค.
โฐ ์ ํ๋ฆฌ์ผ์ด์ ์ robots.txt๊ฐ ์ ํจํ์ง, <meta> ์์๋ ์ ์์ฑ๋์ด ์๋์ง, ํ ์คํธ ํฌ๊ธฐ๊ฐ ์ฝ๊ธฐ์ ๋ฌด๋ฆฌ๊ฐ ์๋์ง ๋ฑ์ ํ์ธํ๋ค.
5๏ธโฃ PWA(Progressive Web App)
โ๏ธ ์น ์ฌ์ดํธ๊ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก์๋ ์ ์๋ํ๋์ง ํ์ธํ๋ค.
โฐ ์ฑ ์์ด์ฝ์ ์ ๊ณตํ๋์ง, ์คํ๋์ ํ๋ฉด์ด ์๋์ง, ํ๋ฉด ํฌ๊ธฐ์ ๋ง๊ฒ ์ฝํ ์ธ ๋ฅผ ์ ์ ํ๊ฒ ๋ฐฐ์นํ๋์ง ๋ฑ์ ์ ์๊ฐ ์๋ ์ฒดํฌ๋ฆฌ์คํธ๋ก ํ์ธํ๋ค.
๐ฐ. Lighthouse ์ Performance ์ธก์ ๋ฉํธ๋ฆญ
1๏ธโฃ First Contentful Paint(FCP)
โ๏ธ ์ฑ๋ฅ ์งํ๋ฅผ ์ถ์ ํ๋ ๋ฉํธ๋ฆญ
โฐ ์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ ์ํ์ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ DOM ์ปจํ ์ธ ์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ ๋ ๋๋งํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํ๋ค.
โฐ ์ฌ์ฉ์๊ฐ ๊ฐ์งํ๋ ํ์ด์ง์ ๋ก๋ฉ์๋๋ฅผ ์ธก์ ํ ์ ์์ผ๋ฉฐ, ์ฐ์ํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ค๋ฉด FCP๊ฐ 1.8์ด ์ดํ์ฌ์ผ ํ๋ค.
โฐ ์ฒซ ๋ฒ์งธ ๋ ๋๋ง ์์ ์ ์ธก์ ํ๋ ๊ฒ์ด ์๋ ์ฃผ์ ์ฝํ ์ธ ๋ก๋ฉ์ด ์๋ฃ๋ ์์ ์ ์ธก์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค๋ฉด LCP ์งํ๋ก ํ์ธํ ์ ์๋ค.
2๏ธโฃ Largest Contentful Paint(LCP)
โ๏ธ ๋ทฐํฌํธ๋ฅผ ์ฐจ์งํ๋ ๊ฐ์ฅ ํฐ ์ฝํ ์ธ (์ด๋ฏธ์ง ๋๋ ํ ์คํธ ๋ธ๋ก)์ ๋ ๋ ์๊ฐ์ ์ธก์ ํ๋ค.
โฐ ์ฃผ์ ์ฝํ ์ธ ๊ฐ ์ ์ ์๊ฒ ๋ณด์ด๋ ์๊ฐ๊น์ง๋ฅผ ๊ฐ๋ ํ ์ ์๋ค.
3๏ธโฃ Speed Index
โ๏ธ ์ฑ๋ฅ ์งํ๋ฅผ ์ถ์ ํ๋ ๋ฉํธ๋ฆญ
โฐ ํ์ด์ง๋ฅผ ๋ก๋ํ๋ ๋์ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ปจํ ์ธ ๊ฐ ์๊ฐ์ ์ผ๋ก ํ์๋๋ ์ง๋ฅผ ์ธก์ ํ๋ค.
โฐ ๋ผ์ฐ์ ์ ํ์ด์ง ๋ก๋ฉ๊ณผ์ ์ ๊ฐ ํ๋ ์๋ง๋ค ์บก์ณํ๊ณ , ํ๋ ์ ๊ฐ ํ๋ฉด์ ๋ณด์ด๋ ์์๋ค์ ๊ณ์ฐํ๋ค.
โฐ ๊ทธ ํ Speedline Node.js module์ ์ด์ฉํด์ Speed Index ์ ์๋ฅผ ๊ทธ๋ํ์ ํํ๋ก ๋ํ๋ธ๋ค.
4๏ธโฃ Time to interactive(TTI)
โ๏ธ ํ์ด์ง๊ฐ ๋ก๋๋๋ ์์ ๋ถํฐ ์ฌ์ฉ์์์ ์ํธ์์ฉ์ด ๊ฐ๋ฅํ ์์ ๊น์ง์ ์๊ฐ์ ์ธก์ ํ๋ค.
โฐ ํ์ด์ง๊ฐ ์์ ํ ์ํธ ์์ฉ ๊ฐ๋ฅํ๊ธฐ๊น์ง์ ์๊ฐ์ ์ธก์ ํ๋ค.
โฐ ์ํธ ์์ฉ ๊ฐ๋ฅ์ ๊ธฐ์ค
ใด ํ์ด์ง์ FCP๋ก ์ธก์ ๋ ์ปจํ ์ธ ๊ฐ ํ์๋์ด์ผ ํ๋ค.
ใด ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๊ฐ์ฅ ์ ๋ณด์ด๋ ํ์ด์ง์ ์๋ฆฌ๋จผํธ์ ๋ฑ๋ก๋๋ค.
ใด ํ์ด์ง๊ฐ 0.05์ด์์ ์ฌ์ฉ์์ ์ํธ์์ฉ์ ์๋ตํ๋ค.
โฐ TTI ์ ์๋ ์์นด์ด๋ธ๋ HTTP ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐฑ๋ถ์ ๋จ์๋ก ์ ์๋ฅผ ์ธก์ ํ๋ค.
5๏ธโฃ Total Blocking Time(TBT)
โ๏ธ ํ์ด์ง๊ฐ ์ ์ ์ ์ํธ์์ฉํ๊ธฐ๊น์ง์ ๋งํ์๋ ์๊ฐ์ ์ธก์ ํ๋ค(0.05์ด๊ฐ ๋๋ ์์ )
โฐ FCP์ TTI ์ฌ์ด์ ๊ธด ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์์ ๋ค์ ๋ชจ๋ ๊ธฐ๋กํ์ฌ TBT๋ฅผ ์ธก์ ํ๋ค.
6๏ธโฃ Cumulative Layout Shift(CLS)
โ๏ธ ์ฌ์ฉ์์๊ฒ ์ปจํ ์ธ ๊ฐ ํ๋ฉด์์ ์ผ๋ง๋ ๋ง์ด ์์ง์ด๋์ง(๋ถ์์ ํ ์ง)๋ฅผ ์์นํํ ์งํ
โฐ ํ๋ฉด์์ ์ด๋ฆฌ์ ๋ฆฌ ์์ง์ด๋ ์์(๋ถ์์ ํ ์์)๊ฐ ์๋ ์ง๋ฅผ ์ธก์ ํ ์ ์๋ค.
๐ฑ. ๊ฐ์ ๋ฐฉํฅ ์ก๊ธฐ
โ๏ธ Opportunities ํญ๋ชฉ์ ํ์ธํ๋ฉด ๊ฐ ๋ฉํธ๋ฆญ๋ณ ๋ฌธ์ ๋ฅผ ํ์ธํ ์ ์๋ค.
โฐ ๊ฐ ํญ๋ชฉ์ ์ด์ด๋ณด๋ฉด ํด๋น ๋ฌธ์ ์ ๋ํ ์์ธ ์ค๋ช ๊ณผ ํจ๊ป ์ด๋ค ์ฝ๋, ์ด๋ค ํ๋ฉด์์ ๋ฌธ์ ์ํฉ์ ๋ฐ๊ฒฌํ๋์ง ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์ ์ต์ ํ์ ๋ฐฉํฅ์ ์ก๊ธฐ ์ข๋ค.
'CodeStates > learning contents' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
S4) Unit 10. [Deploy]๊ฐ๋ฐ ํ๋ก์ธ์ค (0) | 2023.04.03 |
---|---|
S4) Unit 9. [Deploy]Amazon Web Service (0) | 2023.03.31 |
S4) Unit 8. [์ต์ ํ]์ต์ ํ ๊ธฐ๋ฒ (0) | 2023.03.30 |
S4) Unit 7. [Testing] TDD (0) | 2023.03.29 |
S4) Unit 6. [API] GraphQL (0) | 2023.03.28 |