iBetter Books
수정

학습 로드맵

이 책은 Dart 언어의 기초부터 고급 기능까지를 12개의 PART로 나누어 설명합니다. 각 PART는 이전 PART에서 배운 개념 위에 쌓아 올리는 구조이므로, 순서대로 읽는 것을 권장합니다.

PART 00~01. 출발 준비

지금 읽고 있는 PART 00에서는 Dart의 배경과 생태계를 이해합니다. PART 01에서는 개발 환경을 설치하고 첫 번째 프로그램을 실행합니다. 여기까지 마치면 Dart 코드를 직접 작성하고 실행할 준비가 완료됩니다.

PART 02~04. 언어의 기초

PART 02에서 변수와 타입을, PART 03에서 함수와 제어 흐름을, PART 04에서 컬렉션을 배웁니다. 이 세 개의 PART가 Dart 프로그래밍의 기초 체력입니다. 어떤 프로그래밍 언어든 "변수, 함수, 데이터 구조"를 이해하면 절반은 배운 셈입니다.

PART 05~06. 객체지향과 안전성

PART 05에서 클래스, 상속, 믹스인 등 객체지향 프로그래밍을 배웁니다. PART 06에서는 Dart의 가장 강력한 기능인 Null Safety를 깊이 있게 다룹니다. 이 두 PART를 마치면 견고한 코드를 작성할 수 있는 기반이 마련됩니다.

PART 07~08. 고급 기능

PART 07에서 제네릭과 확장 메서드를, PART 08에서 비동기 프로그래밍(Future, Stream, Isolate)을 배웁니다. 실무에서 가장 많이 사용되는 고급 기능들입니다. 특히 비동기 프로그래밍은 Flutter 개발에서 필수입니다.

PART 09. 최신 기능

Dart 3.0에서 도입된 레코드, 패턴 매칭, switch 표현식, sealed class를 배웁니다. 이 기능들은 코드를 더 간결하고 안전하게 만들어주는 현대적 프로그래밍 기법입니다.

PART 10. 미니 프로젝트

배운 모든 개념을 총동원하여 "할 일 관리 CLI 앱"을 만듭니다. 클래스 설계, 파일 입출력, 비동기 처리, 패턴 매칭까지 실제로 동작하는 프로그램을 완성합니다.

PART 11. 마무리

학습 내용을 정리하고, 다음 단계로 나아갈 방향을 안내합니다. 후속 교재인 "실전 Dart"에서 CLI 도구, 서버, 패키지 개발, Flutter 연동까지 확장할 수 있습니다.

난이도 곡선

이 책의 난이도는 점진적으로 올라갑니다.

쉬움 ←――――――――――――――――――――――――→ 어려움

PART 00~01  ███░░░░░░░░░░░  출발 준비
PART 02~04  ██████░░░░░░░░  언어 기초
PART 05~06  █████████░░░░░  객체지향/Null Safety
PART 07~08  ████████████░░  제네릭/비동기
PART 09     █████████████░  패턴과 레코드
PART 10     ██████████████  미니 프로젝트

PART 05부터 난이도가 올라가지만, 각 개념을 "왜 필요한가?"부터 설명하고 단계적으로 예제를 보여주므로 차근차근 따라오면 충분히 이해할 수 있습니다.

이 책을 읽기 전에 알아야 할 것

이 책은 프로그래밍을 완전히 처음 배우는 분을 위한 책은 아닙니다. 다음 정도의 경험이 있으면 충분합니다.

  • 어떤 언어든 변수, 조건문, 반복문을 작성해본 경험
  • 함수가 무엇인지 이해하고 있는 수준
  • 터미널(명령 프롬프트)에서 명령어를 실행해본 경험

Python, C, Java, JavaScript 등 어떤 언어든 한 학기 정도 배운 적이 있다면 이 책을 따라가는 데 어려움이 없을 것입니다.

이 책의 읽는 법

코드는 직접 타이핑하세요

예제 코드를 눈으로만 읽지 말고, 반드시 직접 타이핑해보세요. Dart의 타입 시스템과 자동완성을 직접 경험해야 언어의 장점을 체감할 수 있습니다.

에러를 두려워하지 마세요

Dart 컴파일러가 보여주는 에러 메시지는 매우 친절합니다. 에러가 발생하면 메시지를 읽고, 어떤 부분이 잘못되었는지 파악하는 연습을 하세요. 이 과정 자체가 학습입니다.

Flutter와의 연결고리를 의식하세요

이 책은 Dart 언어 자체에 집중하지만, 각 PART 도입부에서 "이 개념은 Flutter에서 이렇게 쓰입니다"라는 안내를 제공합니다. Flutter 개발이 최종 목표라면, 이 연결고리를 의식하며 읽으면 나중에 Flutter를 배울 때 훨씬 수월합니다.