실습 코드 저장소
이 책의 모든 실습 코드는 GitHub에 공개되어 있습니다.
https://github.com/sung2ne/textbook-dart
코드를 직접 타이핑하는 것을 권장하지만, 막히거나 결과를 확인하고 싶을 때 언제든지 저장소를 참조할 수 있습니다.
브랜치 구조
저장소는 프로젝트별로 브랜치를 나눠서 관리합니다.
| 브랜치 | 내용 |
|---|---|
main |
모든 프로젝트가 통합된 최종 코드 |
project-cli |
프로젝트 1: CLI 도구 |
project-server |
프로젝트 2: REST API 서버 |
project-package |
프로젝트 3: 패키지 개발 |
project-flutter |
프로젝트 4: Flutter 앱 + 백엔드 연동 |
각 브랜치는 해당 프로젝트의 완성된 코드를 담고 있습니다. 중간부터 시작하거나 특정 프로젝트만 확인하고 싶을 때 해당 브랜치를 체크아웃하면 됩니다.
저장소 클론
저장소를 로컬에 받으려면 아래 명령을 실행합니다.
git clone https://github.com/sung2ne/textbook-dart.gitcd textbook-dart
특정 프로젝트 브랜치만 클론하려면 -b 옵션을 사용합니다.
# 프로젝트 2 브랜치만 클론git clone -b project-server https://github.com/sung2ne/textbook-dart.git
프로젝트별 실행 방법
프로젝트 1: CLI 도구
git checkout project-clicd project_cli# 의존성 설치dart pub get# 실행dart run bin/main.dart --help# 실행 파일 빌드dart compile exe bin/main.dart -o dart_tool./dart_tool --help
프로젝트 2: REST API 서버
git checkout project-servercd project_server# 의존성 설치dart pub get# 개발 서버 시작 (hot reload 포함)dart_frog dev# 브라우저에서 확인# http://localhost:8080
Docker로 실행하려면 아래와 같이 합니다.
# Docker 이미지 빌드docker build -t dart-server .# 컨테이너 실행docker run -p 8080:8080 dart-server
프로젝트 3: 패키지
git checkout project-packagecd project_package# 의존성 설치dart pub get# 테스트 실행dart test# 패키지 검증 (pub.dev 배포 전 점검)dart pub publish --dry-run
프로젝트 4: Flutter 앱 + 백엔드
Flutter 앱과 Dart 백엔드를 함께 실행합니다.
git checkout project-flutter# 터미널 1: 백엔드 서버 시작cd backenddart_frog dev# 터미널 2: Flutter 앱 실행cd flutter_appflutter pub getflutter run
코드와 책의 관계
저장소의 코드는 각 챕터 마지막 완성 상태를 담고 있습니다.
책에서는 코드를 단계적으로 확장하면서 설명합니다. 새로 추가되거나 변경된 코드는 ...로 표시되어 있어서 이전 챕터에서 무엇이 달라졌는지 바로 확인할 수 있습니다.
import 'package:dart_frog/dart_frog.dart';
// 이전 챕터에서 작성한 코드
Response onRequest(RequestContext context) {
return Response(body: 'Hello, World!');
}
// 이번 챕터에서 추가한 코드
Response onRequest(RequestContext context) {
final name = context.request.uri.queryParameters['name'] ?? 'World';
return Response(body: 'Hello, $name!');
}
저장소에는 각 PART의 시작 코드를 part-XX-start 태그로, 완성 코드를 part-XX-end 태그로 표시해두었습니다. 특정 PART의 시작 상태로 이동하려면 아래와 같이 합니다.
# PART 06 시작 시점 코드로 이동git checkout part-06-start
이슈와 오탈자 제보
코드 오류나 책 내용의 오탈자를 발견하면 GitHub Issues에 등록해주세요.
https://github.com/sung2ne/textbook-dart/issues
이슈 등록 시 아래 정보를 포함해주시면 빠르게 확인할 수 있습니다.
- PART 번호와 챕터 제목
- 오류가 발생한 코드 또는 문장
- 사용 중인 Dart SDK 버전 (
dart --version) - 운영체제와 버전
Dart SDK 버전
이 책의 모든 코드는 Dart 3.11 이상을 기준으로 작성되었습니다.
# 현재 설치된 Dart 버전 확인$ dart --versionDart SDK version: 3.11.0 (stable) ...
Dart SDK가 3.11 미만이라면 PART 01의 환경 설정 챕터를 먼저 진행해주세요.