์์ฆ ๊ฐ๋ฐ์ผ์ ์ด ํฝ์ค๋์ด ์๋ ์ํฉ์ด ๋ง๋ค ๋ณด๋ ์ด์๊ฐ ๋ฐ์ํ์ ๋ ์ด์๋ฅผ ํ์ ํ๋ ๊ณผ์ ์ ์์ด์ ์ด๋ป๊ฒ ํ๋ฉด ํจ์จ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ด์๋ฅผ ํด๊ฒฐํ ์ ์์ ์ง์ ๋ํด ๊ณ ๋ฏผํ๊ฒ ๋์๋๋ฐ.. ๋ฌธ๋ ๋ด๊ฐ ๋๋ฒ๊น ์ ์ํ๋ ํธ์ด ์๋๋ผ๋ ์๊ฐ์ด ๋ค์๊ณ ..(์ฝ์๋ก๊ทธ๋ง ๋ ๋ค ๋ง์ด ์ฐ๋ ์ฌ๋ + debugger๊ฐ ํธํ์ง ์๋ ์ฌ๋ = ๋) React Dev Tools์ ์ ํ์ฉํด ๋ณด๊ธฐ ์ํด ๊ด๋ จ ๋ด์ฉ๋ค์ ์ฐพ์์ ์ฝ๊ณ ๊ฐ๋จํ ์ ๋ฆฌํด ๋ณด์๋ค!
๐ฅ React Dev Tools ์ ํฌ๊ฒ Components ํญ๊ณผ Profiler ํญ์ผ๋ก ๋๋์ด์ง๋๋ฐ, Components ํญ ์์๋ ํ์ฌ React ๊ตฌ์ฑ ์์ ํธ๋ฆฌ์ ๋ชจ๋ props, state ๋๋ context๋ฅผ ํ์ํ๊ณ , Profiler ํญ์์๋ ์ฌ์ฉํ๋ฉด ์ํธ ์์ฉ์ ๊ธฐ๋กํ๊ณ ๊ตฌ์ฑ ์์ ๋ ๋๋ง์ ์ธก์ ํ ์ ์๋ค.
โ๏ธ Settings
Profiler ํญ๊ณผ Components ํญ์์ ์ง์
ํ๋ ์ค์ ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ Highlight!
์ปดํฌ๋ํธ๊ฐ re-rendering ๋ ๋๋ง๋ค ์ปดํฌ๋ํธ์ ๊ฒฝ๊ณ ๋ถ๋ถ์ ๊ฐ์กฐ ํ์ํด ์ฃผ๊ณ , ์ด๋ ํ๋์ < ์ด๋ก์ < ๋
ธ๋์ < ๋นจ๊ฐ์์ผ๋ก ๋ฆฌ๋ ๋๋ง ๋น๋๊ฐ ๋์ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ๋ณํด์ ํ์ํด์ค๋ค๊ณ ํ๋ค.
1๏ธโฃ Components Tab
๐ฅ ์ปดํฌ๋ํธ์ ๊ณ์ธต ๊ตฌ์กฐ ํ์ธํ ์ ์๋ค!
์ปดํฌ๋ํธ์ ๊ณ์ธต ๊ตฌ์กฐ ํ์ธ ๋ฐ ๊ฒ์์ด ๊ฐ๋ฅํ๋ฐ, ๋ํดํธ๋ก ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค ๋ host components (e.g. <div>) ๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ์จ๊ฒจ์ ธ ์๋ค. ๋ง์ฝ ํ์ธํ๊ณ ์ถ๋ค๋ฉด ์ค์ ๋ฉ๋ด์์ "host" ์ ํ ํํฐ์ ์ผ์ชฝ์ ์๋ ํ ๊ธ์ ๋นํ์ฑํํ๋ฉด host components๊น์ง ๋ชจ๋ ํ์ธ ๊ฐ๋ฅํ๋ค.
๋ rendered by๋ฅผ ํตํด์ ์ ํํ ์ปดํฌ๋ํธ์ ์์ ์ปดํฌ๋ํธ๋ค๋ ๋ฐ๋ก ํ์ธ ๊ฐ๋ฅํ๋ค.
๐ฅ ์ฝ์๋ก๊ทธ ํ์์์ด ์ปดํฌ๋ํธ์ ์๋ State, Props, hooks ํ์ธ ๋ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค!
๊ถ๊ธํ ์ปดํฌ๋ํธ์ State, Props, hooks๋ค์ด ๋ญ๊ฐ ์๋์ง ํ์ธํ๊ณ , ๋ณ๊ฒฝ๋ ํด๋ณผ ์ ์๋ค.
๋ฌผ๋ก State, Props, hooks์ ๋ณ๊ฒฝํ๋ฉด ์ปดํฌ๋ํธ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ค์๊ฐ์ผ๋ก ๋ฐ์๋๊ธฐ ๋๋ฌธ์ ์๋ก๊ณ ์นจ ํ ํ์ ์์ด ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ์ปดํฌ๋ํธ ๋ณํ๋ฅผ ํ
์คํธํ ์ ์๋ค.๐ฅน
๐ฅ Suspense๋ก ์ปดํฌ๋ํธ ๋ก๋ฉ ์ํ๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์๋ค!
suspense ํ ๊ธ์ ์ฌ์ฉํ๋ฉด ํด๋น ์ปดํฌ๋ํธ์ ๋ก๋ฉ ์ํ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ํ์ธํ ์ ์์ด์ ๋ก๋ฉ ์ํ์ ๋น๋๊ธฐ ์์ ์งํ ์ํฉ์ ๋น ๋ฅด๊ฒ ํ์ธํด ๋ณผ ์ ์๋ค.
2๏ธโฃ Profiler Tab
Profiler ํญ์ ์ฌ์ฉํ๋ฉด ๊ฐ ์ปดํฌ๋ํธ ๋ณํ์ ๊ฐ ํญ๋ชฉ์ด ๋ ๋๋ง ๋ ์๊ฐ์ ๋ณด์ฌ์ฃผ๋ ์ฐจํธ๋ค์ ํ์ธํ ์ ์๋ค.
์ฑ๋ฅ ๋ถ์์ ๋ ๊ฐ์ง ๋จ๊ณ๋ก ๊ตฌ๋ถ๋๋ค๊ณ ํ๋ค.
- Render ๋จ๊ณ: React๊ฐ ์ด๋ค ๋ณ๊ฒฝ์ด ํ์ํ์ง ๊ฒฐ์ ํ๋ ๋จ๊ณ. ์ปดํฌ๋ํธ์ render ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ด์ ๋ ๋๋ง๊ณผ ๋น๊ตํ๋ค.
- Commit ๋จ๊ณ: ๋ณ๊ฒฝ ์ฌํญ์ ์ค์ ๋ก ์ ์ฉํ๋ ๋จ๊ณ. React๋ DOM ๋ ธ๋๋ฅผ ์ฝ์ , ์ ๋ฐ์ดํธ ๋๋ ์ ๊ฑฐํ๊ณ , componentDidMount ๋ฐ componentDidUpdate์ ๊ฐ์ ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
1. Commit Chart
Profiler๋ ์ปค๋ฐ(Commit) ๋จ์๋ก ์ฑ๋ฅ ์ ๋ณด๋ฅผ ๊ทธ๋ฃน ํ๋๋ฐ, ์๋จ์ ์ปค๋ฐ ์ฐจํธ์๋ ๊ฐ ์ปค๋ฐ์ ์ ๋ณด๊ฐ ํ์๋๋ฉฐ, ์ ํํ ์ปค๋ฐ์ ํ๋์์ผ๋ก ๊ฐ์กฐ๋๋ค. ๋ง๋์ ์์๊ณผ ๋์ด๋ ํด๋น ์ปค๋ฐ์ ๋ ๋๋ง ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ ธ๋์ง๋ฅผ ๋ํ๋ธ๋ค!
2. Flame Chart
์ ํํ ์ปค๋ฐ์ ์ํ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ฉฐ, ๊ฐ ๋ง๋๋ ์ปดํฌ๋ํธ์ ๋ ๋๋ง ์๊ฐ์ ๋ํ๋ธ๋ค.
๋ง๋์ ๋๋น๋ ๋ ๋๋ง์ ๊ฑธ๋ฆฐ ์๊ฐ์ด๊ณ , ์์์ ํด๋น ์ปค๋ฐ์์์ ๋ ๋๋ง ์๊ฐ์ธ๋ฐ, ๋ ธ๋์์ด ๋ ๊ธด ์๊ฐ, ์ด๋ก์์ด ์๋์ ์ผ๋ก ์๊ฐ์ ์๋ฏธํ๋ฉฐ, ํ์์ ํด๋น ์ปค๋ฐ์์๋ ๋ ๋๋ง ๋์ง ์์ ์ปดํฌ๋ํธ๋ค.
๊ทธ๋ฆฌ๊ณ ํน์ ์ปดํฌ๋ํธ ์ฐจํธ ๋ง๋๋ฅผ ์ ํํ๋ฉด ๋ช ๋ฒ์ด๋ ์
๋ฐ์ดํธ ๋์๋์ง ์ ์ ์๋ค.
์๋ฅผ ๋ค์ด ์๋์ Bubble ๋ฉ๋ด์ ์ฒซ ๋ฒ์งธ "0.3s for 9.1ms" ๋ 'ํ๋กํ์ผ๋ง ์ธ์
์ 0.3์ด ์์ ์ ๋ ๋๋ง ๋์๊ณ , 9.1ms๊ฐ ์์๋์์'์ ์๋ฏธํ๋ค.
3. Ranked Chart
ํน์ ์ปค๋ฐ์์ ๋ ๋๋ง ์๊ฐ์ด ๊ธด ์์๋๋ก ์ปดํฌ๋ํธ๋ฅผ ์ ๋ ฌํ์ฌ ๋ณด์ฌ์ฃผ๋๋ฐ, ๋ ๋๋ง ์๊ฐ์ด ๊ธด ์ปดํฌ๋ํธ๋ ์ผ๋ฐ์ ์ผ๋ก ํธ๋ฆฌ์ ์์์ ์์นํ๋ค. Flame Chart ์ฐจํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ํน์ ์ปดํฌ๋ํธ ์ฐจํธ ๋ง๋๋ฅผ ์ ํํ๋ฉด ๋ช ๋ฒ์ด๋ ์ ๋ฐ์ดํธ ๋์๋์ง ์ ์ ์๋ค.
#####
๊ฒฐ๋ก ์ ์ผ๋ก, React DevTools์ Components์ Profiler ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ๊ธฐ์กด์ console.log๋ฅผ ์ฌ์ฉํด ์๋ก ๊ณ ์นจ ํ๋ฉฐ ๋๋ฒ๊น ํ๋ ๋ฐฉ์๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ผ ๊ฒ ๊ฐ๋ค. (ํนํ, ์ปดํฌ๋ํธ์ ์ํ์ ๋ ๋๋ง ์๊ฐ์ ๋ฐ๋ก ํ์ธํ ์ ์์ด ๋ถํ์ํ ๊ณผ์ ์ ์ค์ด๊ณ , ์ค์๊ฐ์ผ๋ก ๋ณ๊ฒฝ์ฌํญ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํ ์ ์๋ค๋ ์ ์ด ๊ฐ์ฅ ์ข์ ๋ฏ..) ๋, Profiler๋ฅผ ํตํด ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ ํ๊ณ , ๊ฐ๋ memo / callback์ ์ฌ์ฉํ ์ง ๊ณ ๋ฏผ์ค๋ฌ์ธ ๋๊ฐ ๋ง์๋ฐ ์ด๋ด ๋ ์ต์ ํ๊ฐ ํ์ํ ์ปดํฌ๋ํธ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ ํ๋ค๋ ์ ๋ ์ ์ฉํ ๊ฒ ๊ฐ๋ค.
โฌ๏ธ ํํ ๋ฆฌ์ผ
https://react-devtools-tutorial.vercel.app/
How To Debug React Components Using React Developer Tools | DigitalOcean
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
www.digitalocean.com
'๐ WIL > ๐ React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ๋ฆฌ๋ ๋๋ง ์ด์ ํด๊ฒฐํ๊ธฐ (0) | 2025.03.23 |
---|---|
๋์ผํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉํ๋ฉด์ ๋ ๋ฆฝ์ ์ธ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ (1) | 2024.11.17 |
useTransition & useDeferredValue (0) | 2024.10.13 |
์ถ์ํ๋.. (1) | 2023.12.05 |
ํด๋ก์ ์ useState (0) | 2022.10.02 |