Dart DevTools: 디버깅·성능 도구 모음

Dart DevTools: 디버깅·성능 도구 모음

Dart DevTools는 Dart와 Flutter를 위한 디버깅 및 성능 도구 모음이에요. 이 도구들은 dart 도구의 일부로 배포되며, IDE나 dart run, webdev 같은 도구들과 함께 동작해요.

출처: Dart DevTools

본문

다음 표는 흔한 Dart 앱 유형에서 사용할 수 있는 도구를 보여줘요.

도구 Flutter 모바일/데스크톱 Flutter 웹 기타 웹 명령줄
Debugger 지원 지원 지원 지원
Logging view 지원 지원 지원 지원
App size tool 지원 지원
CPU profiler 지원 지원
Memory view 지원 지원
Network view 지원 지원
Performance view 지원 지원
Flutter inspector 지원 지원

앱 유형별(예: 명령줄 앱) Dart DevTools 사용법은 맨 위 줄의 앱 유형을 클릭하면 돼요. 개별 도구(예: 디버거)에 대한 자세한 내용은 왼쪽 열의 도구 이름을 클릭하면 봐요.

표에서 보듯, Dart DevTools에서 디버거와 로깅 뷰만 모든 앱 유형에서 사용할 수 있어요. 웹 앱은 타임라인, 메모리, 성능 뷰를 사용할 수 없고, 대신 Chrome DevTools 같은 브라우저 도구를 사용할 수 있어요.

Flutter inspector는 Flutter 앱에서만 동작해요. 다른 웹 앱은 Chrome DevTools 같은 브라우저 도구를 사용해야 해요.

명령줄 앱

DevTools로 실행 중인 명령줄 앱의 소스 레벨 디버깅을 하거나, 일반적인 로그와 진단 정보를 볼 수 있어요.

1. 대상 앱 시작하기

디버그하거나 관찰하려는 Dart 명령줄 앱의 메인 파일을 실행하려면 dart run --observe 명령어를 사용해요. 선택적으로 --pause-isolates-on-start를 추가하면 스크립트 시작 시 실행이 자동으로 멈춰요.

$ cd path/to/dart/app
$ dart run --pause-isolates-on-start --observe main.dart

The Dart VM service is listening on http://127.0.0.1:8181/afZySiNbDPg=/
The Dart DevTools debugger and profiler is available at: http://127.0.0.1:8181/afZySiNbDPg=/devtools/#/?uri=ws%3A%2F%2F127.0.0.1%3A8181%2FafZySiNbDPg%3D%2Fws

Dart DevTools 디버거·프로파일러 URL을 기록해 두세요. 다음 단계에서 필요해요.

2. DevTools를 열고 대상 앱에 연결하기

Dart DevTools 디버거·프로파일러 URL을 복사해서 Chrome 브라우저 창의 주소 표시줄에 붙여 넣으세요.

Chrome에서 그 URL을 방문하면 Dart DevTools UI가 나타나고 대상 앱에 대한 정보를 보여줘요. Debugger를 클릭하면 앱 디버깅을 시작할 수 있어요.

VS Code 디버그 설정

Timeline 뷰 같은 기능에 접근하려면 DevTools가 활성화된 상태로 Dart 명령줄 앱을 실행하도록 VS Code를 설정해요.

VS Code의 디버그 설정

Dart 앱의 VS Code 디버그 설정 예시는 다음 표와 같아요.

설정 vmAdditionalArgs 설명
기본 VS Code 디버그 [] 표준 디버깅. 디버거와 로깅을 포함하고 타임라인 데이터는 제외해요.
타임라인 스트림 포함 ["--timeline_streams=VM,Isolate,GC"] 타임라인, 메모리, 성능 프로파일링을 위한 타임라인 스트림을 활성화해요.

예시 launch.json

타임라인 이벤트를 활성화하려면 .vscode/launch.json에 다음 설정을 추가하세요.

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Dart with DevTools Timeline",
      "type": "dart",
      "request": "launch",
      "vmAdditionalArgs": [
        "--timeline_streams=VM,Isolate,GC"
      ],
      "program": "main.dart"
    }
  ]
}

"main.dart"를 앱의 메인 파일 경로로 바꾸세요.

DevTools 연결하기

  1. 설정한 launch 설정으로 VS Code에서 디버깅을 시작해요.
  2. VS Code 디버그 콘솔이나 터미널 출력에서 다음 같은 줄을 찾아요.
The Dart DevTools debugger and profiler is available at: http://127.0.0.1:8181/aBcDeFg123=/devtools/#/?uri=...
  1. DevTools URL을 복사해 Chrome 브라우저 창에 붙여 넣어요.
  2. DevTools에서 실행 중인 앱의 타임라인, 메모리, 성능을 확인해요.

Flutter 앱

어떤 플랫폼(웹 포함)의 Flutter 앱에서도 DevTools를 사용하는 방법에 대한 자세한 내용은 flutter.dev의 DevTools 문서를 참고하세요.

기타 웹 앱

Dart DevTools를 사용할 수 있도록 웹 앱을 실행하려면 webdev serve 명령어를 --debug 또는 --debug-extension 플래그와 함께 사용해요.

$ webdev serve --debug

자세한 내용은 Dart 웹 앱 디버깅을 참고하세요.

더 알아보기