์ด๋ฒคํธ ๋ถํ ์ธก์ ๋ถํฐ ๋ถ์๊น์ง, Performance ํญ ์ ๋ณต ๊ฐ์ด๋
"๋ด๊ฐ ๋ง๋ ์น ์ฌ์ดํธ, ์ ํด๋ฆญ๋ง ํ๋ฉด ๋ฒ๋ฒ
๊ฑฐ๋ฆด๊น?"
์น ๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ๋๊ตฌ๋ ํ ๋ฒ์ฏค ๋ง์ฃผํ๋ ๋ฌธ์ ์
๋๋ค.
๋จ์ํ ์ฝ๋๊ฐ ๊ธธ์ด์์ผ๊น์, ์๋๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํ๊ฒจ์ํ๋ ๊ฑธ๊น์?
์ ๋ต์ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ(Chrome DevTools)์
Performance ํญ์ ์จ์ด ์์ต๋๋ค.
์ค๋์ ๋์ ๋ณด์ด์ง ์๋ ์ด๋ฒคํธ ๋ถํ๋ฅผ ์๊ฐ์ ์ผ๋ก
ํ์ธํ๊ณ ๋ถ์ํ๋ ๋ฐฉ๋ฒ์ ๋๊ตฌ๋ ๋ฐ๋ผ ํ ์ ์๊ฒ ์ ๋ฆฌํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๐ ️ 1. Performance ํญ ์ค๋น ๋ฐ ์ค์ ํ๊ธฐ
์ฑ๋ฅ ๋ถ์์ ์ํด์๋ ๊ฐ์ฅ ๋จผ์ ์ ํํ ์ธก์ ํ๊ฒฝ์ ๋ง๋๋ ๊ฒ์ด
์ค์ํฉ๋๋ค.
ํ์ฅ ํ๋ก๊ทธ๋จ์ด๋ ์บ์ ๋ฐ์ดํฐ๊ฐ ์ธก์ ๊ฒฐ๊ณผ์ ์ํฅ์ ์ฃผ์ง ์๋๋ก
์ํฌ๋ฆฟ ๋ชจ๋(Incognito Mode)์์ ์งํํ๋ ๊ฒ์
๊ถ์ฅํฉ๋๋ค.
๐ ๊ธฐ๋ณธ ์ค์ ์ฒดํฌ๋ฆฌ์คํธ
-
✅ Screenshots ์ฒดํฌ: ๋
นํ ๋์ค ํ๋ฉด ๋ณํ๋ฅผ
์คํฌ๋ฆฐ์ท์ผ๋ก ๋จ๊ฒจ ์๊ฐ์ ๋ฒ๋ฒ
์(Jank)์ ํ์ธํฉ๋๋ค.
-
✅ Memory ์ฒดํฌ: ์๋ฐ์คํฌ๋ฆฝํธ ํ(Heap) ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ
์๋์ง ํจ๊ป ํ์
ํ ์ ์์ต๋๋ค.
-
✅ CPU Throttling: ๊ณ ์ฌ์ PC์์๋ ์ฑ๋ฅ ์ ํ๊ฐ ์ ์
๋ณด์ผ ์ ์์ผ๋ฏ๋ก, 4x ๋๋ 6x slowdown์ผ๋ก ์ค์ ํ์ฌ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์
์๋ฎฌ๋ ์ด์
ํฉ๋๋ค.
์ค์ ์ด ์๋ฃ๋์๋ค๋ฉด, ์ด์ ์ค์ ์ฌ์ฉ์๊ฐ ๊ฒช๋ ์ํฉ์ ์ฌ์ฐํ ์ค๋น๊ฐ
๋์์ต๋๋ค.
๐ด 2. ์ด๋ฒคํธ ๋ถํ ๊ธฐ๋ก(Recording) ์ค์
๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
ํ์ด์ง ๋ก๋ฉ ์ฑ๋ฅ์ ๋ณผ ๋์ ํน์ ์ธํฐ๋์
(ํด๋ฆญ, ์คํฌ๋กค ๋ฑ) ๋ฐ์์ ๋ณผ
๋์
๋๋ค.
์ด๋ฒ ๊ฐ์ด๋์์๋ ์ฌ์ฉ์ ์ด๋ฒคํธ ๋ฐ์ ์๋์
์ง์คํด๋ณด๊ฒ ์ต๋๋ค.
๋ นํ ๋ฒํผ์ ๋๋ฅด๊ธฐ ์ , ์ธก์ ํ๊ณ ์ ํ๋ ๊ธฐ๋ฅ์ ๋ฏธ๋ฆฌ ์ค๋นํด๋์ธ์.
๋ถํ์ํ ๋ง์ฐ์ค ์์ง์์ด๋ ๋๊ธฐ ์๊ฐ์ ๊ทธ๋ํ ๋ถ์์ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
๐ฃ ๋จ๊ณ๋ณ ์ธก์ ๊ฐ์ด๋
-
์ข์ธก ์๋จ์ 'Record' (๋๊ทธ๋ผ๋ฏธ ๋ฒํผ)์ ํด๋ฆญํฉ๋๋ค.
-
์ธก์ ํ๋ ค๋ ๋์(์: ๋ฒํผ ํด๋ฆญ, ๋ฆฌ์คํธ ์คํฌ๋กค ๋ฑ)์ 2~3ํ ๋ฐ๋ณต
์ํํฉ๋๋ค.
-
๋ค์ 'Stop' ๋ฒํผ์ ๋๋ฌ ๋
นํ๋ฅผ ์ข
๋ฃํฉ๋๋ค.
-
๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ(Processing)ํ๋ ๋์ ์ ์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
๐ 3. ๋ถ๊ฝ ์ฐจํธ(Flame Chart) ๋ถ์ํ๊ธฐ
๋
นํ๊ฐ ๋๋๋ฉด ์๋ก๋ฌ๋กํ ๋ง๋๊ทธ๋ํ๋ค์ด ๋ํ๋ฉ๋๋ค.
์ฒ์ ๋ณด๋ฉด ๋ณต์กํด ๋ณด์ด์ง๋ง, ์ฐ๋ฆฌ๊ฐ ๋ด์ผ ํ ๊ณณ์
'Main' ์น์
์
๋๋ค.
๐ ์ฃผ์ ์์๋ณ ์๋ฏธ
| ์์ | ์๋ฏธ | ํด๊ฒฐ ๋ฐฉํฅ |
|---|---|---|
| ๐จ ๋ ธ๋์ | Scripting (์๋ฐ์คํฌ๋ฆฝํธ ์คํ) | ์ฝ๋ ์ต์ ํ, ๋ถํ์ํ ์ฐ์ฐ ์ ๊ฑฐ |
| ๐ช ๋ณด๋ผ์ | Rendering (์คํ์ผ ๊ณ์ฐ, ๋ ์ด์์) | DOM ๋ณ๊ฒฝ ์ต์ํ, Reflow ๋ฐฉ์ง |
| ๐ฉ ์ด๋ก์ | Painting (ํ๋ฉด ๊ทธ๋ฆฌ๊ธฐ) | ํ์ธํธ ์์ญ ์ต์ ํ, ๋ ์ด์ด ๋ถ๋ฆฌ |
์ด๋ฒคํธ ๋ถํ๊ฐ ์ฌํ ๊ตฌ๊ฐ์ ๊ทธ๋ํ์ ๋ง๋๊ฐ ๊น๊ณ (Call Stack์ด ๊น์)
๋๊ฒ(์คํ ์๊ฐ์ด ๊ธบ) ํ์๋ฉ๋๋ค.
ํนํ ๋ง๋ ์์ ๋นจ๊ฐ์ ์ผ๊ฐํ์ด ํ์๋๋ค๋ฉด, ํด๋น ์์
์ด
ํ๋ ์ ๋๋กญ(Frame Drop)์ ์ ๋ฐํ๊ณ ์๋ค๋ ๊ฐ๋ ฅํ ๊ฒฝ๊ณ ์
๋๋ค.
๐ฐ 4. Summary ํญ์ผ๋ก ๋ฒ์ธ ์์ถํ๊ธฐ
๊ทธ๋ํ์์ ํน์ ๊ตฌ๊ฐ์ ๋๋๊ทธํ์ฌ ์ ํํ๋ฉด, ํ๋จ
Summary ํญ์์ ์์
์๊ฐ์ ์ดํฉ์ ๋ณผ ์ ์์ต๋๋ค.
์ด๊ณณ์์ ์ด๋ค ์์
์ด CPU๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ ์ ํ๋์ง ํ๋์ ํ์
๊ฐ๋ฅํฉ๋๋ค.
๐ฉ ๋กฑ ํ์คํฌ(Long Task) ์ฃผ์๋ณด
๋ง์ฝ 50ms๋ฅผ ์ด๊ณผํ๋ ์์
(Long Task)์ด ๋ฐ๊ฒฌ๋๋ค๋ฉด
์ฌ์ฉ์๋ ํ๋ฉด์ด ๋ฉ์ถ ๋ฏํ ๋๋์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด๋ถ์์ ๋ฌด๊ฑฐ์ด ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๊ฑฐ๋, ๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ
์ฒ๋ฆฌํ๊ณ ์์ง ์์์ง ์ฝ๋๋ฅผ ์ ๊ฒํด์ผ ํฉ๋๋ค.
๐ ์ต์ ํ๋ ์ธก์ ์์ ์์๋ฉ๋๋ค
์ง๊ธ๊น์ง Chrome DevTools์ Performance ํญ์ ํ์ฉํด ์ด๋ฒคํธ ๋ถํ๋ฅผ ์ธก์ ํ๋
๊ธฐ๋ณธ์ ์ธ ํ๋ฆ์ ์ดํด๋ณด์์ต๋๋ค.
"์ธก์ ํ ์ ์์ผ๋ฉด ๊ฐ์ ํ ์ ์๋ค"๋ผ๋ ๋ง์ฒ๋ผ, ๋ง์ฐํ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ๋ณด๋ค
์ ํํ ๋ฐ์ดํฐ๋ฅผ ๊ทผ๊ฑฐ๋ก ์์ง์ฌ์ผ ํฉ๋๋ค.
-
์ํฌ๋ฆฟ ๋ชจ๋์์ ํ์ฅ ํ๋ก๊ทธ๋จ ์ํฅ ์์ด
์ธก์ ํ์ธ์.
-
CPU Throttling์ ์ฌ์ฉํ์ฌ ์ ์ฌ์ ํ๊ฒฝ์
๋๋นํ์ธ์.
-
Main Thread์ ๋ถ์์ ๊ฒฝ๊ณ ํ์๋ฅผ ๋์น์ง ๋ง์ธ์.
- Summary ํญ์ ํตํด Scripting, Rendering ์ค ์ด๋๊ฐ ๋ฌธ์ ์ธ์ง ํ์ ํ์ธ์.

๋๊ธ ์ฐ๊ธฐ