๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Flutter + Dart/Flutter + Dart ๊ณต๋ถ€

Flutter & Dart DevTools ์‚ฌ์šฉํ•˜๊ธฐ

by GREEN๋‚˜๋ฌด 2025. 9. 9.
728x90

๐Ÿ“Š Flutter & Dart DevTools ์ •๋ฆฌ

Flutter์™€ Dart DevTools๋Š” ์•ฑ์˜ ๋™์ž‘์„ ๋ถ„์„·๋””๋ฒ„๊น…·์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ํŠนํ™”๋œ ์›น ๊ธฐ๋ฐ˜ ํˆด์ž…๋‹ˆ๋‹ค.
์•„๋ž˜๋Š” DevTools์—์„œ ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.


โ—† ์„ค์น˜ ๋ฐฉ๋ฒ•

1๋‹จ๊ณ„. DevTools ์ค€๋น„ํ•˜๊ธฐ

  1. Flutter SDK ์„ค์น˜
    • Flutter SDK๋ฅผ ์„ค์น˜ํ•˜๋ฉด Dart SDK๋„ ๊ฐ™์ด ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค.
    • SDK ์•ˆ์— DevTools๋„ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋”ฐ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  2. VS Code ๋˜๋Š” Android Studio ์„ค์น˜
    • ๋‘ IDE ๋ชจ๋‘ Flutter ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ๊ณตํ•˜๋ฉฐ, DevTools์™€ ์—ฐ๋™๋ฉ๋‹ˆ๋‹ค.
  3. ํ™˜๊ฒฝ ํ™•์ธ
    • ๋ชจ๋“  ์ฒดํฌ๊ฐ€ ์ดˆ๋ก โœ… ์ด ๋‚˜์˜ค๋ฉด ์ค€๋น„ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.
  4. flutter doctor

2๋‹จ๊ณ„. DevTools ์‹คํ–‰ํ•˜๊ธฐ

  1. ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰
    • ์‹คํ–‰ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ http://127.0.0.1:9100 ์ฃผ์†Œ๋กœ DevTools๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค.
  2. flutter pub global activate devtools devtools
  3. VS Code์—์„œ ์‹คํ–‰
    • Flutter ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ํ›„ → Run and Debug ํƒญ์—์„œ ์•ฑ ์‹คํ–‰
    • Debug Console์— "Dart DevTools" ๋ฒ„ํŠผ์ด ๋‚˜ํƒ€๋‚จ → ํด๋ฆญํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋กœ DevTools ์—ด๋ฆผ
  4. Android Studio์—์„œ ์‹คํ–‰
    • ์•ฑ ์‹คํ–‰ ํ›„ ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ View > Tool Windows > Flutter DevTools ์„ ํƒ

3๋‹จ๊ณ„. DevTools ์ฃผ์š” ํ™”๋ฉด

DevTools์—๋Š” ์—ฌ๋Ÿฌ ํƒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๊ฑด ์•„๋ž˜ 4๊ฐœ์˜ˆ์š”.

  1. Inspector
    • ์œ„์ ฏ ํŠธ๋ฆฌ ํ™•์ธ, ์œ„์ ฏ ์„ ํƒ ๋ฐ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ ํŒŒ์•…
    • "Select Widget Mode" ํ™œ์„ฑํ™” → ์•ฑ ํ™”๋ฉด์—์„œ ํŠน์ • ์œ„์ ฏ ํด๋ฆญํ•˜๋ฉด ์ฝ”๋“œ ์œ„์น˜๊นŒ์ง€ ๋ฐ”๋กœ ์—ฐ๊ฒฐ
  2. Performance
    • ์•ฑ ํ”„๋ ˆ์ž„ ๋“œ๋กญ ์—ฌ๋ถ€, ๋ Œ๋”๋ง ์†๋„ ํ™•์ธ
    • CPU ํ”„๋กœํŒŒ์ผ๋ง ๊ฐ€๋Šฅ
  3. Memory
    • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๋ชจ๋‹ˆํ„ฐ๋ง
    • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Leaking) ํ™•์ธ
  4. Logging / Debug Console
    • print() ๋กœ๊ทธ ํ™•์ธ
    • ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ Stack Trace ์ œ๊ณต

4๋‹จ๊ณ„. ์ž์ฃผ ์“ฐ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ์œ„์ ฏ ๊ตฌ์กฐ ํ™•์ธ
    • ์•ฑ UI๊ฐ€ ์˜๋„๋Œ€๋กœ ์•ˆ ๋ณด์ผ ๋•Œ → DevTools์˜ Inspector๋กœ ์œ„์ ฏ ๊ณ„์ธต ๊ตฌ์กฐ ํ™•์ธ
  2. UI ์„ฑ๋Šฅ ํŠœ๋‹
    • ์Šคํฌ๋กคํ•  ๋•Œ ๋ฒ„๋ฒ…์ž„ → Performance ํƒญ์—์„œ ํ”„๋ ˆ์ž„ ๋“œ๋กญ ์›์ธ ํ™•์ธ
  3. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
    • ์žฅ์‹œ๊ฐ„ ์‹คํ–‰ ์‹œ ์•ฑ์ด ๋ฌด๊ฑฐ์›Œ์ง → Memory ํƒญ์—์„œ ๊ฐ์ฒด ๋ˆ„์  ํ˜„์ƒ ํ™•์ธ

โœ… ์ •๋ฆฌ

  • Flutter SDK์— DevTools๊ฐ€ ํฌํ•จ๋จ
  • VS Code/Android Studio์—์„œ ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ
  • Inspector, Performance, Memory๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
  • ๋””๋ฒ„๊น…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์•ฑ ์ตœ์ ํ™”์—๋„ ํฐ ๋„์›€

 

โ—† ์‚ฌ์šฉํ•˜๊ธฐ

1. Flutter Inspector (ํ”Œ๋Ÿฌํ„ฐ ๊ฒ€์‚ฌ๊ธฐ)

โœ… ๊ฐœ์š”

  • ์œ„์ ฏ ํŠธ๋ฆฌ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋„๊ตฌ
  • ์•ฑ UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์œ„์ ฏ ๊ตฌ์กฐ๋ฅผ ์‹ค์‹œ๊ฐ„ ํ™•์ธ

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. DevTools์—์„œ Inspector ํƒญ ์—ด๊ธฐ
  2. Select Widget Mode ๋ฒ„ํŠผ ํด๋ฆญ
  3. ์•ฑ ํ™”๋ฉด์—์„œ ์›ํ•˜๋Š” UI ์š”์†Œ ํด๋ฆญ → ํ•ด๋‹น ์œ„์ ฏ ์ฝ”๋“œ๋กœ ์ž๋™ ์—ฐ๊ฒฐ

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • UI๊ฐ€ ์–ด๊ธ‹๋‚  ๋•Œ ์ •ํ™•ํžˆ ์–ด๋А ์œ„์ ฏ์—์„œ ๋ฌธ์ œ์ธ์ง€ ํ™•์ธ
  • Padding, Margin, Constraints ๋””๋ฒ„๊น…

2. Debugger (๋””๋ฒ„๊ฑฐ)

โœ… ๊ฐœ์š”

  • ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„์„ ๋ฉˆ์ถ”๊ณ , ๋ณ€์ˆ˜ ๊ฐ’์ด๋‚˜ ๋กœ์ง ํ™•์ธ ๊ฐ€๋Šฅ

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ์ฝ”๋“œ์— breakpoint(์ค‘๋‹จ์ ) ์ถ”๊ฐ€
  2. ์•ฑ ์‹คํ–‰ ํ›„ ๋””๋ฒ„๊น… ์‹œ์ž‘
  3. ์‹คํ–‰์ด ์ค‘๋‹จ๋˜๋ฉด ๋ณ€์ˆ˜ ๊ฐ’, ํ˜ธ์ถœ ์Šคํƒ(Call Stack) ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • ํŠน์ • ์กฐ๊ฑด์—์„œ ํ•จ์ˆ˜๊ฐ€ ์ œ๋Œ€๋กœ ํ˜ธ์ถœ๋˜๋Š”์ง€ ํ™•์ธ
  • Null ๊ฐ’์ด๋‚˜ ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ ์ถ”์ 

3. Logging View (๋กœ๊น… ๋ณด๊ธฐ)

โœ… ๊ฐœ์š”

  • print()๋‚˜ debugPrint()๋กœ ์ถœ๋ ฅํ•œ ๋กœ๊ทธ ํ™•์ธ
  • ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํ”„๋ ˆ์ž„์›Œํฌ ์ด๋ฒคํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ๋กœ๊ทธ ํ‘œ์‹œ

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  • DevTools์˜ Logging ํƒญ์—์„œ ๋กœ๊ทธ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๊ฒ€์ƒ‰์ฐฝ์—์„œ ํ‚ค์›Œ๋“œ๋กœ ํ•„ํ„ฐ๋ง ๊ฐ€๋Šฅ

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • API ํ˜ธ์ถœ ์‘๋‹ต๊ฐ’ ํ™•์ธ
  • ํŠน์ • ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ์  ์ถ”์ 

4. Performance View (์„ฑ๋Šฅ ๋ณด๊ธฐ)

โœ… ๊ฐœ์š”

  • ์•ฑ์ด 60fps/120fps๋ฅผ ์œ ์ง€ํ•˜๋Š”์ง€ ํ™•์ธ
  • ํ”„๋ ˆ์ž„ ๋นŒ๋“œ/๋ Œ๋”๋ง ์‹œ๊ฐ„ ๋ถ„์„

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. DevTools → Performance ํƒญ
  2. ์•ฑ ์‹คํ–‰ ํ›„ "Record" ๋ฒ„ํŠผ ํด๋ฆญ
  3. ์•ฑ์—์„œ ๋™์ž‘ ์ˆ˜ํ–‰ → ๊ธฐ๋ก๋œ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ถ„์„

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • ์Šคํฌ๋กคํ•  ๋•Œ ๋ฒ„๋ฒ…์ž„ ์›์ธ ์ฐพ๊ธฐ
  • ํ”„๋ ˆ์ž„ ๋“œ๋กญ ๋ฐœ์ƒ ๊ตฌ๊ฐ„ ๋ถ„์„

5. CPU Profiler (CPU ํ”„๋กœํŒŒ์ผ๋Ÿฌ)

โœ… ๊ฐœ์š”

  • CPU๊ฐ€ ์–ด๋–ค ํ•จ์ˆ˜ ์‹คํ–‰์— ์‹œ๊ฐ„์„ ๋งŽ์ด ์“ฐ๋Š”์ง€ ๋ถ„์„

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. Performance ํƒญ → CPU Profile Record ์‹œ์ž‘
  2. ์•ฑ ๋™์ž‘ ์ˆ˜ํ–‰ → ๊ธฐ๋ก ์ข…๋ฃŒ
  3. ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทธ๋ž˜ํ”„(Call Tree) ํ™•์ธ

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • ๋น„ํšจ์œจ์ ์ธ ์—ฐ์‚ฐ์ด ์–ด๋””์—์„œ ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธ
  • ๋ฃจํ”„, JSON ํŒŒ์‹ฑ, DB ์ฟผ๋ฆฌ ์ตœ์ ํ™”

6. Memory View (๋ฉ”๋ชจ๋ฆฌ ๋ณด๊ธฐ)

โœ… ๊ฐœ์š”

  • ์•ฑ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ
  • ๊ฐ์ฒด๊ฐ€ ๊ณ„์† ์Œ“์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Leak) ํŒŒ์•…

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. DevTools → Memory ํƒญ
  2. ํž™ ์Šค๋ƒ…์ƒท(Heap Snapshot) ์ฐ๊ธฐ
  3. ๊ฐ์ฒด ์ฆ๊ฐ€/๊ฐ์†Œ ์ถ”์ 

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • ํ™”๋ฉด ์ด๋™ ์‹œ ๊ฐ์ฒด๊ฐ€ ํ•ด์ œ๋˜์ง€ ์•Š๊ณ  ์Œ“์ด๋Š” ๋ฌธ์ œ ํ™•์ธ
  • ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” ํ•„์š” ๊ตฌ๊ฐ„ ์ฐพ๊ธฐ

7. Network View (๋„คํŠธ์›Œํฌ ๋ณด๊ธฐ)

โœ… ๊ฐœ์š”

  • HTTP ์š”์ฒญ/์‘๋‹ต ๋ชจ๋‹ˆํ„ฐ๋ง
  • API ํ˜ธ์ถœ, ์‘๋‹ต ์ฝ”๋“œ, ์‘๋‹ต ์†๋„ ํ™•์ธ

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. DevTools → Network ํƒญ
  2. ์•ฑ์—์„œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ ๋ฐœ์ƒ
  3. ์š”์ฒญ URL, Method(GET/POST), ์‘๋‹ต ์‹œ๊ฐ„, Body ํ™•์ธ

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • API ์š”์ฒญ์ด ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์กŒ๋Š”์ง€ ํ™•์ธ
  • ๋А๋ฆฐ ๋„คํŠธ์›Œํฌ ์‘๋‹ต ์›์ธ ํŒŒ์•…

8. App Size Tool (์•ฑ ํฌ๊ธฐ ๋„๊ตฌ)

โœ… ๊ฐœ์š”

  • ์•ฑ ๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ์˜ ํฌ๊ธฐ๋ฅผ ๋ถ„์„
  • ์–ด๋А ํŒจํ‚ค์ง€๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๋Š”์ง€ ํ™•์ธ

โš™๏ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ์•ฑ ๋นŒ๋“œ ํ›„ flutter build apk --analyze-size ์‹คํ–‰
  2. DevTools์—์„œ App Size ํƒญ ์—ด๊ธฐ
  3. ํŒจํ‚ค์ง€๋ณ„ ํฌ๊ธฐ, ์••์ถ• ์ „/ํ›„ ์šฉ๋Ÿ‰ ํ™•์ธ

๐Ÿ’ก ํ™œ์šฉ ์˜ˆ์‹œ

  • ์•ฑ ํฌ๊ธฐ ์ตœ์ ํ™” (๋ถˆํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์ œ๊ฑฐ)
  • ๋ฆด๋ฆฌ์ฆˆ ๋นŒ๋“œ ์‚ฌ์ด์ฆˆ ์ค„์ด๊ธฐ

โœจ ๋งˆ๋ฌด๋ฆฌ

์ •๋ฆฌํ•˜๋ฉด DevTools๋Š” ๋‹จ์ˆœ ๋””๋ฒ„๊น…์„ ๋„˜์–ด์„œ
๐Ÿ‘‰ UI ํ™•์ธ(Inspector),
๐Ÿ‘‰ ์‹คํ–‰ ํ๋ฆ„ ์ถ”์ (Debugger, Logging),
๐Ÿ‘‰ ์„ฑ๋Šฅ·CPU·๋ฉ”๋ชจ๋ฆฌ ๋ถ„์„(Performance, Profiler, Memory),
๐Ÿ‘‰ ๋„คํŠธ์›Œํฌ ๋ชจ๋‹ˆํ„ฐ๋ง(Network),
๐Ÿ‘‰ ๋นŒ๋“œ ์‚ฌ์ด์ฆˆ ๊ด€๋ฆฌ(App Size)

๊นŒ์ง€ ์•ฑ ํ’ˆ์งˆ ๊ฐœ์„ ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.