이 책의 구성
이 책은 10개의 PART로 구성되어 있습니다.
PART 00~02는 시작 전 준비 단계입니다. PART 03부터 실습이 시작됩니다. PART 04, 06, 07, 08이 각각 하나의 프로젝트를 완성하는 핵심 PART입니다.
PART별 로드맵
PART 00. 들어가기 이 책의 목표와 구성, 선수 지식, 실습 코드 저장소를 안내합니다. 지금 읽고 있는 부분입니다.
PART 01. 개발 환경 준비하기 Dart SDK, dart_frog CLI, Docker, VS Code 확장 설치와 설정을 다룹니다. 이 책의 모든 실습은 이 환경에서 진행됩니다. 이미 환경이 갖춰져 있다면 빠르게 넘어가도 됩니다.
PART 02. Dart 핵심 문법 빠른 복습 프로젝트를 시작하기 전에 자주 쓰는 Dart 문법을 빠르게 되짚습니다. 새로운 내용을 배우는 것이 아니라, 이미 아는 것을 실전 맥락에서 정리하는 파트입니다.
PART 03. 프로젝트 구조와 패키지 관리
pubspec.yaml, dart pub, 의존성 관리, 모노레포 구조를 다룹니다. 네 개의 프로젝트 모두에 공통으로 적용되는 기반 지식입니다.
PART 04. 프로젝트 1 — CLI 도구 개발 첫 번째 프로젝트입니다. 명령행 인수 파싱, 파일 I/O, HTTP 요청, 실행 파일 빌드를 거쳐 배포 가능한 CLI 도구를 완성합니다.
PART 05. 테스트 전략 단위 테스트, 통합 테스트, Mock 사용법을 다룹니다. 프로젝트 1을 완성한 직후에 배치한 이유는, 실제 코드가 있어야 테스트가 의미 있기 때문입니다. PART 06 이후 프로젝트들에도 동일한 테스트 전략이 적용됩니다.
PART 06. 프로젝트 2 — REST API 서버
두 번째 프로젝트입니다. dart_frog로 할 일 관리 API를 만듭니다. 라우팅, 미들웨어, 데이터베이스 연동, JWT 인증, Docker 배포까지 다룹니다.
PART 07. 프로젝트 3 — 패키지 개발과 배포
세 번째 프로젝트입니다. 재사용 가능한 Dart 패키지를 설계하고, pub.dev에 공개 배포합니다. API 설계, 문서화, 버전 관리를 포함합니다.
PART 08. 프로젝트 4 — Flutter 앱과 Dart 백엔드 연동 네 번째 프로젝트입니다. 프로젝트 2에서 만든 API 서버와 Flutter 앱을 연결합니다. Riverpod 상태 관리, 공유 모델 패키지 활용, 실기기 테스트를 포함합니다.
PART 09. 배포와 DevOps GitHub Actions를 이용한 CI/CD 파이프라인 구성, Docker Compose, 클라우드 배포(Railway, Fly.io)를 다룹니다.
PART 10. 마무리 4개의 프로젝트를 돌아보고, 다음 단계로 나아가기 위한 방향을 제시합니다.
프로젝트 간 연결 구조
4개의 프로젝트는 독립적으로 완성되지만 서로 연결됩니다.
[PART 04] CLI 도구
↓ 구조 설계 경험
[PART 06] REST API 서버 (dart_frog)
↓ 공통 모델 분리
[PART 07] 패키지 개발
↓ 패키지 + API 활용
[PART 08] Flutter 앱 + 백엔드 연동
프로젝트 1에서 배운 파일 구조와 패키지 관리 방식이 프로젝트 2에 그대로 적용됩니다. 프로젝트 2에서 만든 API 서버가 프로젝트 4의 백엔드가 됩니다. 프로젝트 3에서 만든 패키지가 프로젝트 4의 Flutter 앱에서 사용됩니다.
각 프로젝트를 완료할 때마다 이전 프로젝트의 코드가 살아있는 컴포넌트로 연결됩니다.
난이도 곡선
이 책은 완만하게 올라가는 난이도 구성을 따릅니다.
난이도
높음 │ ●─────●
│ ●──●
│ ●────●──●
│ ●──●
낮음 │●────●──●
└──────────────────────────────────────
00 01 02 03 04 05 06 07 08 09 PART
PART 00~02는 낮습니다. 환경 설정과 복습이 주 내용입니다. PART 03~05는 중간입니다. 프로젝트 1과 테스트를 다룹니다. PART 06부터 실질적인 서버 개발이 시작되며 난이도가 올라갑니다. PART 08~09는 여러 기술이 결합되기 때문에 가장 복잡합니다.
중간에 막히더라도 각 PART는 독립적으로 실습할 수 있습니다. 프로젝트 2가 어렵다면 프로젝트 1부터 다시 돌아봐도 됩니다.
읽는 방법
이 책은 순서대로 읽는 것을 기준으로 설계되었습니다.
개발 환경이 이미 갖춰져 있다면 PART 01을 건너뛰어도 됩니다. Dart 문법에 자신이 있다면 PART 02를 빠르게 훑고 지나가도 됩니다. 특정 프로젝트에만 관심이 있다면 해당 PART부터 시작해도 됩니다. 다만, 각 PART의 실습 코드는 이전 PART의 결과물을 기반으로 확장되는 경우가 많습니다. 중간부터 시작할 때는 GitHub 저장소에서 해당 브랜치의 코드를 체크아웃해서 시작점으로 사용하면 됩니다. 저장소 사용법은 Ch 05에서 안내합니다.