이 책의 목표
이 책은 Dart로 실제 동작하는 소프트웨어를 만드는 책입니다.
Dart 문법을 배우는 것이 목적이 아닙니다. Dart로 쓸 만한 것들을 만들어보는 것이 목적입니다. CLI 도구, REST API 서버, 공개 패키지, Flutter 앱과 백엔드 연동까지. 각각의 결과물이 독립적인 포트폴리오가 됩니다.
이 책을 모두 따라가면 4개의 프로젝트가 손에 남습니다.
프로젝트 1. CLI 도구 개발
첫 번째 프로젝트는 커맨드라인 도구입니다.
터미널에서 명령어를 입력하면 뭔가를 해주는 프로그램입니다. git, dart, flutter 같은 것들이 모두 CLI 도구입니다. 이 책에서는 파일 관리, 텍스트 처리, 외부 API 호출 기능을 갖춘 CLI 도구를 처음부터 만들어봅니다.
$ dart_tool --help
A CLI tool built with Dart.
Usage: dart_tool <command> [options]
Commands:
greet 사용자에게 인사합니다
fetch URL에서 데이터를 가져옵니다
convert 파일 형식을 변환합니다
CLI 도구를 만들면서 Dart의 패키지 시스템, args 라이브러리, 파일 I/O, HTTP 클라이언트 사용법을 실제로 익히게 됩니다.
프로젝트 2. REST API 서버 개발
두 번째 프로젝트는 REST API 서버입니다.
dart_frog 프레임워크를 사용합니다. dart_frog는 Very Good Ventures가 만든 Dart 전용 서버 프레임워크로, 파일 시스템 기반 라우팅을 지원합니다. 라우트 파일을 만들면 URL이 생기는 구조입니다.
// routes/users/[id].dart
import 'package:dart_frog/dart_frog.dart';
Response onRequest(RequestContext context, String id) {
return Response.json(body: {'id': id, 'name': 'Alice'});
}
할 일 관리 API를 만들면서 CRUD 엔드포인트 설계, 미들웨어, 인증 처리, Docker 배포까지 경험합니다.
프로젝트 3. 패키지 개발과 pub.dev 배포
세 번째 프로젝트는 Dart 패키지를 만들어서 공개하는 것입니다.
pub.dev는 Dart와 Flutter의 패키지 저장소입니다. http, dio, freezed 같은 패키지들이 올라와 있는 곳입니다. 여기에 직접 패키지를 올려볼 것입니다.
패키지 개발에서는 잘 설계된 공개 API가 무엇인지, 문서 주석은 어떻게 쓰는지, 버전 관리는 어떻게 하는지를 배우게 됩니다. 배포 후에는 pub.dev에서 자신의 패키지 페이지를 확인할 수 있습니다.
# pubspec.yamlname: my_dart_utilsdescription: A collection of Dart utility functions.version: 1.0.0homepage: https://github.com/sung2ne/my_dart_utils
프로젝트 4. Flutter 앱과 Dart 백엔드 연동
네 번째 프로젝트는 Flutter 앱과 Dart 백엔드를 함께 동작시키는 것입니다.
프로젝트 2에서 만든 REST API 서버를 백엔드로 사용하고, Flutter 앱에서 해당 API를 호출합니다. 프론트엔드와 백엔드를 모두 Dart로 구성하는 Full-Stack Dart 구조입니다.
[Flutter App] ←→ [dart_frog Server] ←→ [Database]
Dart Dart PostgreSQL
앱에서 버튼을 누르면 서버에 요청이 가고, 서버가 처리한 결과가 앱 화면에 표시되는 흐름을 직접 구현합니다. 같은 언어로 양쪽 코드를 읽을 수 있다는 것이 어떤 의미인지 실감하게 될 것입니다.
포트폴리오로서의 가치
4개의 프로젝트는 GitHub에 각각 올라갑니다.
채용 담당자나 협업 상대방에게 보여줄 수 있는 실제 동작하는 코드입니다. "Dart를 배웠습니다"가 아니라 "Dart로 이것들을 만들었습니다"라고 말할 수 있는 근거가 됩니다.
2026년 기준 국내 Flutter 채용 공고는 165건이 넘습니다. Dart 서버 개발 경험을 함께 갖춘 개발자는 더 드뭅니다. 이 책이 그 자리를 채우는 출발점이 되기를 바랍니다.
이 책이 다루지 않는 것
이 책은 Dart 문법 자체를 처음부터 설명하지 않습니다.
변수, 함수, 클래스, Null Safety, 비동기처럼 Dart의 기본기는 선행 교재인 "소설처럼 읽는 Dart"에서 다루었습니다. 이 책에서는 그 지식을 바탕으로 실제 프로그램을 만드는 데 집중합니다.
Dart 기초가 부족하다면 걱정하지 않아도 됩니다. PART 02에서 이 책을 따라가는 데 필요한 문법을 빠르게 복습합니다.