Memory Leak
์น ํ์ด์ง ๋ด์์ ๋ฌด๊ฑฐ์ด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์ฌ์ฉ์ฌ์ ํ์ด์ง ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ฅผ ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
๋ฉ๋ชจ๋ฆฌ ๋์, ๋ฉ๋ชจ๋ฆฌ ํฝ์ฐฝ, ์ฆ์ ๊ฐ๋น์ง ์์ง ๋ฑ์ด ๋ํ์ ์ธ ์์ธ์ผ๋ก ๊ผฝํ๋ค.
๋ฉ๋ชจ๋ฆฌ ํฝ์ฐฝ๊ณผ ๋์์ ํ๋ณ
๋จ์ํ ์ฌ์ดํธ์ ์ ์ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ๋์๊ฐ ๋ฐ์๋๋ค๊ณ ๋ณผ ์ ์๋ค.
์ฌ๊ธฐ์ ๋ง์ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ์ค์ RAIL ๋ชจ๋ธ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์ฃผ์์ ์ ๋๋๊ฒ์ด๋ค.
RAIL ๋ชจ๋ธ
์ฌ์ฉ์ ์ค์ฌ์ ์ฑ๋ฅ ๋ชจ๋ธ๋ก ๋ค์ ๋ค๊ฐ์ง์ ์ธก๋ฉด์ ๋ฐ์ํ๋ค.
- Response
- ์ฌ์ฉ์์ ์ ๋ ฅ์ 100ms ๋ด์ ์ธ์งํด์ผ ํจ
- Animation
- ์ ๋๋ฉ์ด์ ์ ์คํฌ๋กค ์๊ฐ์ 10ms ์ด๋ด์ ํ๋ ์์ ์์ฑํด์ผ ํจ
- Idle
- ๋ฉ์ธ ์ค๋ ๋์ ์ ํด์๊ฐ์ ๊ทน๋ํ ํด์ผ ํจ
- Load
- ๋ํํ ์ฝํ ์ธ ์ ๊ฒฝ์ฐ 1000ms ์ด๋ด์ ์ ๋ฌํด์ผ ํจ
๋ฉ๋ชจ๋ฆฌ ๋์ ์๋ฐฉ ๋ฐ ๋ถ์
- ํฌ๋กฌ (Chrome) ์ ์์
๊ด๋ฆฌ์๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง
- ํ์๋ผ์ธ (Timeline) ๊ธฐ๋ก์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๋์์ ์๊ฐํ
- ํ ์ค๋ ์ท์ผ๋ก ๋ถ๋ฆฌ๋ DOM ํธ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๋์์ ๋ฐ๊ฒฌ
- Javascript ํ (Heap) ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ (Allocation Timeline)
- ํจ์๋ณ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๊ด์ธก
- ์ฆ์ ๊ฐ๋น์ง ์์ง ๊ด์ธก
ํด๊ฒฐ๋ฐฉ๋ฒ
- ํฌ๋กฌ ์์ ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธ ๊ฐ๋ฅ
- ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์๋ผ์ธ์ผ๋ก ๊ธฐ๋กํ์ฌ ์๊ฐํํ๋ค.
- ๋ถ๋ฆฌ๋ DOM ํธ๋ฆฌ (์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋์ ์์ธ) ์ ํ ์ค๋ ์ท์ผ๋ก ์๋ณํ ์ ์๋ค.
- JS ํ์ ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋ ๋ ํ ๋น ํ์๋ผ์ธ ๊ธฐ๋ก์ ํ์ธํ์ฌ ์์๋ผ ์ ์๋ค.
Chrome Heap Snapshot
Google Chrome Browser ์์ ์ ๊ณต๋๋ ๊ฐ๋ฐ์ ๋๊ตฌ์์ Heap Snapshot ์ ์ฐ์ผ๋ฉฐ ์๋์ ๊ฐ์ ๋ทฐ ์ ํ๊ธฐ๋ฅผ ํตํ ๋ถ์ ํ๊ฒฝ์ด ์ ๊ณต๋๋ค.
- Summary View
- ์์ฑ์ ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ๋ ๊ฐ์ฒด๋ฅผ ๋ณด์ฌ์ค๋ค.
- ์์ฑ์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ผ๋ก ๊ฐ์ฒด ์ถ์ ์ด ๊ฐ๋ฅํ๋ค.
- DOM ๋์ ์ถ์ ์ ์ ์ฉํ๋ค.
- Comparison View
- ๋ ์ค๋ ์ท๊ฐ์ ์ฐจ์ด์ ์ ํ์ํ๋ค.
- ๋๊ฐ ํน์ ์์ ์ด์ ๊ณผ ์ดํ์ ์ค๋ ์ท ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋น์์ง ๋ฉ๋ชจ๋ฆฌ ๋ธํ์ ์ฐธ์กฐ ์นด์ดํธ๋ฅผ ๊ฒ์ฌํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์ ์กด์ฌ ์์ธ๊ณผ ์ด์ ๋ฅผ ํ์ธ ๊ฐ๋ฅํ๋ค.
- Containment View
- Heap Content ํ์์ด ๊ฐ๋ฅํ๋ค.
- ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ์ข๋ ์์ธํ ๋ณผ ์ ์์ผ๋ฉฐ ์ ์ญ ๋ค์์คํ์ด์ค ๋ถํฐ ์ฐธ์กฐ๋ ๊ฐ์ฒด๋ฅผ ๋ถ์ํ์ฌ ๋ฌด์์ธ์ง ์์๋ผ ์ ์๋ค.
- ํด๋ก์ ธ ๋ถ์์ด ๊ฐ๋ฅํ๊ณ ๊ฐ์ฒด๋ฅผ ์ฌ์ธต์ ์ผ๋ก ํ์ ๋ฐ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
- Dominators View
- ๋๋ฏธ๋ค์ดํฐ ํธ๋ฆฌ๋ฅผ ํ์ํ์ฌ ๋์ ์ง์ ์ ์ฐพ๋๋ฐ ์ ์ฉํ๋ค.
- ์คํ๋๊ณ ์๋ ์์์น ์๋ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๊ฐ ์๋์ง ํน์ ์ญ์ /๊ฐ๋น์ง ์์ง์ด ๋๊ณ ์๋์ง ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
โ Event Loop Scope โ