iBetter Books
수정

실습 코드 저장소

이 책의 모든 실습 코드는 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의 환경 설정 챕터를 먼저 진행해주세요.