๐ Flutter & Dart DevTools ์ ๋ฆฌ
Flutter์ Dart DevTools๋ ์ฑ์ ๋์์ ๋ถ์·๋๋ฒ๊น
·์ต์ ํํ๋ ๋ฐ ํนํ๋ ์น ๊ธฐ๋ฐ ํด์
๋๋ค.
์๋๋ DevTools์์ ์ ๊ณตํ๋ ์ฃผ์ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ ๋ฐฉ๋ฒ์
๋๋ค.
โ ์ค์น ๋ฐฉ๋ฒ
1๋จ๊ณ. DevTools ์ค๋นํ๊ธฐ
- Flutter SDK ์ค์น
- Flutter SDK๋ฅผ ์ค์นํ๋ฉด Dart SDK๋ ๊ฐ์ด ๋ค์ด์์ต๋๋ค.
- SDK ์์ DevTools๋ ํฌํจ๋์ด ์์ผ๋ฏ๋ก ๋ฐ๋ก ๋ค์ด๋ก๋ํ ํ์๋ ์์ต๋๋ค.
- VS Code ๋๋ Android Studio ์ค์น
- ๋ IDE ๋ชจ๋ Flutter ํ๋ฌ๊ทธ์ธ์ ์ ๊ณตํ๋ฉฐ, DevTools์ ์ฐ๋๋ฉ๋๋ค.
- ํ๊ฒฝ ํ์ธ
- ๋ชจ๋ ์ฒดํฌ๊ฐ ์ด๋ก โ ์ด ๋์ค๋ฉด ์ค๋น ์๋ฃ์ ๋๋ค.
- flutter doctor
2๋จ๊ณ. DevTools ์คํํ๊ธฐ
- ํฐ๋ฏธ๋์์ ์คํ
- ์คํํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ http://127.0.0.1:9100 ์ฃผ์๋ก DevTools๊ฐ ์ด๋ฆฝ๋๋ค.
- flutter pub global activate devtools devtools
- VS Code์์ ์คํ
- Flutter ํ๋ก์ ํธ ์คํ ํ → Run and Debug ํญ์์ ์ฑ ์คํ
- Debug Console์ "Dart DevTools" ๋ฒํผ์ด ๋ํ๋จ → ํด๋ฆญํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ก DevTools ์ด๋ฆผ
- Android Studio์์ ์คํ
- ์ฑ ์คํ ํ ์๋จ ๋ฉ๋ด์์ View > Tool Windows > Flutter DevTools ์ ํ
3๋จ๊ณ. DevTools ์ฃผ์ ํ๋ฉด
DevTools์๋ ์ฌ๋ฌ ํญ์ด ์์ต๋๋ค. ์ด๋ณด์๊ฐ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ๊ฑด ์๋ 4๊ฐ์์.
- Inspector
- ์์ ฏ ํธ๋ฆฌ ํ์ธ, ์์ ฏ ์ ํ ๋ฐ ๋ ์ด์์ ๊ตฌ์กฐ ํ์
- "Select Widget Mode" ํ์ฑํ → ์ฑ ํ๋ฉด์์ ํน์ ์์ ฏ ํด๋ฆญํ๋ฉด ์ฝ๋ ์์น๊น์ง ๋ฐ๋ก ์ฐ๊ฒฐ
- Performance
- ์ฑ ํ๋ ์ ๋๋กญ ์ฌ๋ถ, ๋ ๋๋ง ์๋ ํ์ธ
- CPU ํ๋กํ์ผ๋ง ๊ฐ๋ฅ
- Memory
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง
- ๋ฉ๋ชจ๋ฆฌ ๋์(Leaking) ํ์ธ
- Logging / Debug Console
- print() ๋ก๊ทธ ํ์ธ
- ์ค๋ฅ ๋ฉ์์ง์ ํจ๊ป Stack Trace ์ ๊ณต
4๋จ๊ณ. ์์ฃผ ์ฐ๋ ์๋๋ฆฌ์ค
- ์์ ฏ ๊ตฌ์กฐ ํ์ธ
- ์ฑ UI๊ฐ ์๋๋๋ก ์ ๋ณด์ผ ๋ → DevTools์ Inspector๋ก ์์ ฏ ๊ณ์ธต ๊ตฌ์กฐ ํ์ธ
- UI ์ฑ๋ฅ ํ๋
- ์คํฌ๋กคํ ๋ ๋ฒ๋ฒ ์ → Performance ํญ์์ ํ๋ ์ ๋๋กญ ์์ธ ํ์ธ
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
- ์ฅ์๊ฐ ์คํ ์ ์ฑ์ด ๋ฌด๊ฑฐ์์ง → Memory ํญ์์ ๊ฐ์ฒด ๋์ ํ์ ํ์ธ
โ ์ ๋ฆฌ
- Flutter SDK์ DevTools๊ฐ ํฌํจ๋จ
- VS Code/Android Studio์์ ๋ฐ๋ก ์คํ ๊ฐ๋ฅ
- Inspector, Performance, Memory๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ
- ๋๋ฒ๊น ๋ฟ๋ง ์๋๋ผ ์ฑ ์ต์ ํ์๋ ํฐ ๋์
โ ์ฌ์ฉํ๊ธฐ
1. Flutter Inspector (ํ๋ฌํฐ ๊ฒ์ฌ๊ธฐ)
โ ๊ฐ์
- ์์ ฏ ํธ๋ฆฌ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ
- ์ฑ UI๋ฅผ ๊ตฌ์ฑํ๋ ์์ ฏ ๊ตฌ์กฐ๋ฅผ ์ค์๊ฐ ํ์ธ
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- DevTools์์ Inspector ํญ ์ด๊ธฐ
- Select Widget Mode ๋ฒํผ ํด๋ฆญ
- ์ฑ ํ๋ฉด์์ ์ํ๋ UI ์์ ํด๋ฆญ → ํด๋น ์์ ฏ ์ฝ๋๋ก ์๋ ์ฐ๊ฒฐ
๐ก ํ์ฉ ์์
- UI๊ฐ ์ด๊ธ๋ ๋ ์ ํํ ์ด๋ ์์ ฏ์์ ๋ฌธ์ ์ธ์ง ํ์ธ
- Padding, Margin, Constraints ๋๋ฒ๊น
2. Debugger (๋๋ฒ๊ฑฐ)
โ ๊ฐ์
- ์ฝ๋ ์คํ ํ๋ฆ์ ๋ฉ์ถ๊ณ , ๋ณ์ ๊ฐ์ด๋ ๋ก์ง ํ์ธ ๊ฐ๋ฅ
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- ์ฝ๋์ breakpoint(์ค๋จ์ ) ์ถ๊ฐ
- ์ฑ ์คํ ํ ๋๋ฒ๊น ์์
- ์คํ์ด ์ค๋จ๋๋ฉด ๋ณ์ ๊ฐ, ํธ์ถ ์คํ(Call Stack) ํ์ธ ๊ฐ๋ฅ
๐ก ํ์ฉ ์์
- ํน์ ์กฐ๊ฑด์์ ํจ์๊ฐ ์ ๋๋ก ํธ์ถ๋๋์ง ํ์ธ
- Null ๊ฐ์ด๋ ์๋ชป๋ ๋ฐ์ดํฐ ์ถ์
3. Logging View (๋ก๊น ๋ณด๊ธฐ)
โ ๊ฐ์
- print()๋ debugPrint()๋ก ์ถ๋ ฅํ ๋ก๊ทธ ํ์ธ
- ๋คํธ์ํฌ ์์ฒญ, ํ๋ ์์ํฌ ์ด๋ฒคํธ ๋ฑ ๋ค์ํ ๋ก๊ทธ ํ์
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- DevTools์ Logging ํญ์์ ๋ก๊ทธ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง
- ๊ฒ์์ฐฝ์์ ํค์๋๋ก ํํฐ๋ง ๊ฐ๋ฅ
๐ก ํ์ฉ ์์
- API ํธ์ถ ์๋ต๊ฐ ํ์ธ
- ํน์ ์ด๋ฒคํธ ๋ฐ์ ์์ ์ถ์
4. Performance View (์ฑ๋ฅ ๋ณด๊ธฐ)
โ ๊ฐ์
- ์ฑ์ด 60fps/120fps๋ฅผ ์ ์งํ๋์ง ํ์ธ
- ํ๋ ์ ๋น๋/๋ ๋๋ง ์๊ฐ ๋ถ์
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- DevTools → Performance ํญ
- ์ฑ ์คํ ํ "Record" ๋ฒํผ ํด๋ฆญ
- ์ฑ์์ ๋์ ์ํ → ๊ธฐ๋ก๋ ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ถ์
๐ก ํ์ฉ ์์
- ์คํฌ๋กคํ ๋ ๋ฒ๋ฒ ์ ์์ธ ์ฐพ๊ธฐ
- ํ๋ ์ ๋๋กญ ๋ฐ์ ๊ตฌ๊ฐ ๋ถ์
5. CPU Profiler (CPU ํ๋กํ์ผ๋ฌ)
โ ๊ฐ์
- CPU๊ฐ ์ด๋ค ํจ์ ์คํ์ ์๊ฐ์ ๋ง์ด ์ฐ๋์ง ๋ถ์
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- Performance ํญ → CPU Profile Record ์์
- ์ฑ ๋์ ์ํ → ๊ธฐ๋ก ์ข ๋ฃ
- ํจ์ ํธ์ถ ๊ทธ๋ํ(Call Tree) ํ์ธ
๐ก ํ์ฉ ์์
- ๋นํจ์จ์ ์ธ ์ฐ์ฐ์ด ์ด๋์์ ๋ฐ์ํ๋์ง ํ์ธ
- ๋ฃจํ, JSON ํ์ฑ, DB ์ฟผ๋ฆฌ ์ต์ ํ
6. Memory View (๋ฉ๋ชจ๋ฆฌ ๋ณด๊ธฐ)
โ ๊ฐ์
- ์ฑ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ํ์ธ
- ๊ฐ์ฒด๊ฐ ๊ณ์ ์์ด๋ ๋ฉ๋ชจ๋ฆฌ ๋์(Leak) ํ์
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- DevTools → Memory ํญ
- ํ ์ค๋ ์ท(Heap Snapshot) ์ฐ๊ธฐ
- ๊ฐ์ฒด ์ฆ๊ฐ/๊ฐ์ ์ถ์
๐ก ํ์ฉ ์์
- ํ๋ฉด ์ด๋ ์ ๊ฐ์ฒด๊ฐ ํด์ ๋์ง ์๊ณ ์์ด๋ ๋ฌธ์ ํ์ธ
- ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ํ์ ๊ตฌ๊ฐ ์ฐพ๊ธฐ
7. Network View (๋คํธ์ํฌ ๋ณด๊ธฐ)
โ ๊ฐ์
- HTTP ์์ฒญ/์๋ต ๋ชจ๋ํฐ๋ง
- API ํธ์ถ, ์๋ต ์ฝ๋, ์๋ต ์๋ ํ์ธ
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- DevTools → Network ํญ
- ์ฑ์์ ๋คํธ์ํฌ ์์ฒญ ๋ฐ์
- ์์ฒญ URL, Method(GET/POST), ์๋ต ์๊ฐ, Body ํ์ธ
๐ก ํ์ฉ ์์
- API ์์ฒญ์ด ์ ์์ ์ผ๋ก ์ด๋ฃจ์ด์ก๋์ง ํ์ธ
- ๋๋ฆฐ ๋คํธ์ํฌ ์๋ต ์์ธ ํ์
8. App Size Tool (์ฑ ํฌ๊ธฐ ๋๊ตฌ)
โ ๊ฐ์
- ์ฑ ๋น๋ ๊ฒฐ๊ณผ๋ฌผ์ ํฌ๊ธฐ๋ฅผ ๋ถ์
- ์ด๋ ํจํค์ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฉ๋์ ์ฐจ์งํ๋์ง ํ์ธ
โ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ
- ์ฑ ๋น๋ ํ flutter build apk --analyze-size ์คํ
- DevTools์์ App Size ํญ ์ด๊ธฐ
- ํจํค์ง๋ณ ํฌ๊ธฐ, ์์ถ ์ /ํ ์ฉ๋ ํ์ธ
๐ก ํ์ฉ ์์
- ์ฑ ํฌ๊ธฐ ์ต์ ํ (๋ถํ์ํ ํจํค์ง ์ ๊ฑฐ)
- ๋ฆด๋ฆฌ์ฆ ๋น๋ ์ฌ์ด์ฆ ์ค์ด๊ธฐ
โจ ๋ง๋ฌด๋ฆฌ
์ ๋ฆฌํ๋ฉด DevTools๋ ๋จ์ ๋๋ฒ๊น
์ ๋์ด์
๐ UI ํ์ธ(Inspector),
๐ ์คํ ํ๋ฆ ์ถ์ (Debugger, Logging),
๐ ์ฑ๋ฅ·CPU·๋ฉ๋ชจ๋ฆฌ ๋ถ์(Performance, Profiler, Memory),
๐ ๋คํธ์ํฌ ๋ชจ๋ํฐ๋ง(Network),
๐ ๋น๋ ์ฌ์ด์ฆ ๊ด๋ฆฌ(App Size)
๊น์ง ์ฑ ํ์ง ๊ฐ์ ์ ํ์ํ ๋ชจ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
'Flutter + Dart > Flutter + Dart ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| json ํ์ผ์ .dart์ ๋ณ์๋ก ๊ฐ์ ธ์ค๊ธฐ (0) | 2025.05.19 |
|---|---|
| ์์ ฏ ์ ๋ ฌ - ์ ์ฒด ์ฑ์ฐ๊ธฐ, ์ข์ธก ์๋จ ์ ๋ ฌ (0) | 2025.05.19 |
| ์ ๋๋ฉ์ด์ ๊ธฐ์ด ํ์ต ๋ฐ ํ๋ซํผ๋ณ UI ์ดํด (0) | 2025.05.16 |
| ํ ๋ง ๋ฐ ์คํ์ผ ์ ์ฉ, ์ปค์คํ ์์ ฏ ์ ์ ๊ธฐ์ด (0) | 2025.05.16 |
| flutter ๋ฌ๋ ฅ ์ถ๊ฐํ๊ธฐ (1) | 2025.05.15 |