Dart 생태계의 전체 그림
프로그래밍 언어를 배울 때는 언어 자체뿐 아니라 그 주변 도구와 생태계를 이해하는 것이 중요합니다. 아무리 좋은 언어라도 라이브러리가 부족하거나 개발 도구가 불편하면 실전에서 쓰기 어렵습니다. Dart의 생태계는 Google의 지원 아래 꾸준히 성장해왔고, 2026년 현재 실무에서 충분히 활용할 수 있는 수준에 도달했습니다.
Flutter — Dart의 가장 큰 무대
Flutter는 Dart로 작성하는 UI 프레임워크입니다. 하나의 코드베이스로 다음 플랫폼의 앱을 모두 만들 수 있습니다.
- 모바일: iOS, Android
- 웹: 브라우저에서 실행되는 웹 앱
- 데스크톱: Windows, macOS, Linux
Flutter가 Dart를 선택한 이유는 명확합니다. Dart는 JIT 컴파일로 개발 중 핫 리로드를 지원하고, AOT 컴파일로 배포 시 네이티브 성능을 제공합니다. 이 두 가지 컴파일 방식을 모두 지원하는 언어가 많지 않기 때문에, Dart는 Flutter에 최적의 선택이었습니다.
이 책에서는 Flutter를 직접 다루지 않지만, Dart의 모든 개념이 Flutter 개발의 기초가 됩니다. 클래스, 비동기 프로그래밍, Null Safety 같은 핵심 기능은 Flutter 코드에서 매일 사용하게 됩니다.
pub.dev — Dart의 패키지 저장소
pub.dev(https://pub.dev)는 Dart와 Flutter 패키지를 공유하는 공식 저장소입니다. Python의 PyPI, JavaScript의 npm과 같은 역할을 합니다.
2026년 현재 50,000개 이상의 패키지가 등록되어 있으며, 다음과 같은 인기 패키지들이 있습니다.
| 패키지 | 용도 |
|---|---|
http |
HTTP 요청 (API 통신) |
json_annotation |
JSON 직렬화/역직렬화 |
provider |
Flutter 상태 관리 |
shelf |
서버 개발 |
args |
CLI 인자 파싱 |
test |
테스트 프레임워크 |
path |
파일 경로 처리 |
패키지를 사용하려면 pubspec.yaml 파일에 의존성을 추가하고 dart pub get 명령을 실행하면 됩니다. 이 과정은 PART 01에서 직접 해보겠습니다.
DartPad — 브라우저에서 바로 실습
DartPad(https://dartpad.dev)는 브라우저에서 Dart 코드를 작성하고 실행할 수 있는 온라인 에디터입니다. 설치 없이 바로 Dart를 체험해볼 수 있어서, 이 책의 초반 실습에서 유용하게 활용할 수 있습니다.
DartPad는 다음 기능을 제공합니다.
- Dart 코드 작성과 즉시 실행
- 코드 공유 (URL로 다른 사람에게 전달)
- Flutter 위젯 미리보기
- 자동완성과 에러 표시
다만 파일 입출력(dart:io)이나 외부 패키지 사용에는 제한이 있으므로, PART 01에서 로컬 개발 환경도 함께 구성합니다.
서버사이드 Dart
Dart는 서버 개발에도 사용할 수 있습니다. 아직 Node.js나 Python만큼 생태계가 크지는 않지만, 꾸준히 성장하고 있습니다.
shelf
Dart 공식 팀이 관리하는 서버 미들웨어 라이브러리입니다. Express.js(Node.js)와 비슷한 개념으로, 요청과 응답을 처리하는 미들웨어를 조합하여 서버를 구성합니다.
dart_frog
Very Good Ventures가 만든 서버 프레임워크입니다. Next.js처럼 파일 기반 라우팅을 지원하여 직관적으로 API 서버를 만들 수 있습니다. 핫 리로드도 지원합니다.
Full-Stack Dart
프론트엔드(Flutter)와 백엔드(shelf/dart_frog)를 모두 Dart로 개발하면, DTO(Data Transfer Object) 같은 코드를 공유할 수 있습니다. 이런 "Full-Stack Dart" 접근 방식이 점점 주목받고 있습니다.
Dart의 개발 도구
Dart SDK
Dart SDK에는 다음 도구들이 포함되어 있습니다.
| 도구 | 용도 |
|---|---|
dart run |
Dart 프로그램 실행 |
dart compile |
네이티브 실행 파일 또는 JS로 컴파일 |
dart analyze |
정적 분석 (잠재적 버그 탐지) |
dart format |
코드 자동 포맷팅 |
dart fix |
자동 코드 수정 |
dart test |
테스트 실행 |
dart pub |
패키지 관리 |
dart doc |
API 문서 생성 |
VS Code + Dart 확장
VS Code에 Dart 확장을 설치하면 자동완성, 타입 추론 표시, 에러 하이라이팅, 디버깅, 리팩터링 등의 기능을 사용할 수 있습니다. IntelliJ IDEA에도 Dart 플러그인이 있습니다.
Dart DevTools
브라우저 기반 디버깅 도구로, 성능 프로파일링, 메모리 분석, 네트워크 모니터링 등을 제공합니다. Flutter 개발에서 특히 많이 사용되지만, 순수 Dart 프로그램에도 활용할 수 있습니다.
Dart의 버전과 발전
Dart는 꾸준히 발전해오고 있습니다.
| 버전 | 시기 | 주요 변화 |
|---|---|---|
| Dart 1.0 | 2013년 | 첫 안정 버전 |
| Dart 2.0 | 2018년 | 강력한 타입 시스템, Flutter와 결합 |
| Dart 2.12 | 2021년 | Sound Null Safety 도입 |
| Dart 3.0 | 2023년 | 레코드, 패턴 매칭, sealed class |
| Dart 3.11 | 2026년 | 현재 안정 버전 |
이 책은 Dart 3.11 기준으로 작성되었으며, Dart 3.0 이상에서 도입된 최신 기능(레코드, 패턴 매칭, sealed class 등)을 모두 다룹니다.
다음 챕터에서는 이 책의 전체 구성과 학습 로드맵을 안내하겠습니다.