LANGUAGE
Dart
선언형 UI 문법으로 하나의 코드가 iOS·Android·웹 등 여러 플랫폼에 동시에 반영되는 흐름을 설계하는 언어입니다. Widget 트리와 상태 관리를 통해 화면이 데이터에 따라 어떻게 다시 그려지는지 훈련하며, 크로스플랫폼 개발의 기초 체력을 기릅니다.
전체 12건
1. 출력(Output)
Dart의 print()로 시작해, Flutter에서 긴 로그가 잘리지 않게 하는 debugPrint()까지 구분해 씁니다
print()가 어디로 출력되는지(터미널·IDE 디버그 콘솔) 확인하고, dart:io의 stdout.write·stdout.writeln으로 줄바꿈을 직접 제어하는 방법과 비교합니다. Flutter에서는 로그가 길면 안드로이드 로그캣이 잘라버리기 때문에 debugPrint()를 쓴다는 점, 그리고 디버그용 출력이 릴리스 빌드에 그대로 남지 않도록 관리하는 습관까지 첫 주에 잡습니다.
2. 변수·자료형과 null 안정성
Dart의 sound null safety가 컴파일 타임에 null 참조 오류를 어떻게 방지하는지 직접 확인합니다
nullable(?)과 non-nullable 타입을 구분해 선언하고, late·! 연산자를 상황에 맞게 사용하는 법을 실습하며 런타임 null 오류를 원천 차단하는 감각을 익힙니다.
3. 함수와 화살표 문법
일반 함수 선언과 화살표(=>) 문법의 차이, 명명된 매개변수 같은 Dart 특유의 함수 문법을 다룹니다
짧은 함수를 화살표 문법으로 간결하게 표현하는 법과, {}로 감싼 명명된 매개변수·기본값 지정 등 Dart 함수 시그니처의 유연함을 실습합니다.
4. 클래스와 믹스인
클래스 기본 문법과, 다중 상속 없이 여러 클래스의 기능을 조합하는 믹스인(mixin)을 이해합니다
with 키워드로 믹스인을 클래스에 결합해 코드를 재사용하는 패턴을 실습하고, 상속과 믹스인을 각각 언제 선택해야 하는지 기준을 세웁니다.
5. 컬렉션과 컬렉션 연산자
List/Map/Set 컬렉션과 스프레드(...)·컬렉션 if/for 같은 Dart 특유의 컬렉션 연산자를 다룹니다
위젯 리스트를 조건부로 구성할 때 유용한 컬렉션 if/for 문법을 실습하며, Flutter UI 코드에서 이 연산자들이 왜 자주 쓰이는지 체감합니다.
6. 선언형 UI
모든 것이 Widget인 Flutter의 선언형 UI 철학과, 위젯이 중첩되어 트리를 구성하는 원리를 다룹니다
StatelessWidget을 직접 조합해 화면을 구성하며, build() 메서드가 호출될 때마다 위젯 트리가 어떻게 재구성되는지 이해합니다.
7. State 관리 기초 (StatefulWidget)
StatefulWidget과 setState()로 화면 상태를 관리하고 리렌더링을 트리거하는 기본 패턴을 익힙니다
State 객체의 생명주기(initState, dispose 등)를 이해하고, setState() 호출이 언제 어떤 위젯을 다시 그리는지 실습으로 확인합니다.
8. 비동기 처리
단발성 비동기 값을 다루는 Future와, 연속된 값의 흐름을 다루는 Stream의 차이와 사용법을 다룹니다
async/await로 Future를 다루는 법과 StreamBuilder로 Stream 데이터를 UI에 실시간 반영하는 패턴을 실습하며 두 개념의 사용 시점을 구분합니다.
9. 레이아웃과 반응형 UI 구성
Row/Column/Stack 같은 레이아웃 위젯과 MediaQuery로 다양한 화면 크기에 대응하는 UI를 구성합니다
Flexible/Expanded로 공간을 배분하는 원리와, 화면 크기에 따라 레이아웃을 다르게 구성하는 반응형 UI 패턴을 실전 예제로 다룹니다.
10. 상태 관리 라이브러리 (Provider) 기초
위젯 트리 깊은 곳까지 상태를 전달하는 문제를 Provider로 해결하는 원리를 다룹니다
setState만으로는 한계가 있는 전역 상태 공유 문제를 ChangeNotifier와 Provider로 해결하는 패턴을 실습하며, 상태 관리 라이브러리가 필요한 이유를 체감합니다.
11. 크로스플랫폼 배포 파이프라인 설계
하나의 코드베이스로 iOS/Android/Web에 배포하는 Flutter의 빌드·배포 파이프라인을 다룹니다
플랫폼별 빌드 설정 차이, 앱 아이콘·스플래시 화면 같은 플랫폼 리소스 관리, 스토어 배포까지 이어지는 실전 배포 흐름을 개념적으로 살펴봅니다.
12. 미니 프로젝트
지금까지 배운 위젯·상태 관리·비동기 처리를 총동원해 하나의 코드로 여러 플랫폼에서 동작하는 할 일 앱을 직접 구현합니다
할 일 추가·수정·삭제 기능을 Provider로 상태 관리하며 구현하고, 로컬 저장까지 연동하는 미니 프로젝트를 진행합니다. 코드 리뷰를 통해 실무 Flutter 설계 관점의 피드백을 받습니다.