끄적이는 개발노트

260729_강의 정리 (Dart와 Flutter) 본문

Flutter

260729_강의 정리 (Dart와 Flutter)

크런키스틱 2026. 7. 30. 09:22
728x90

 

flutter · dart
Dart 언어와 Flutter, Fuchsia 정리
  • Dart 언어의 핵심 특징과 문법 요소
  • Dart와 Flutter의 관계
  • 구글의 실험적 프로젝트, Fuchsia 개요
🎯
1. Dart는 어떤 언어인가

Flutter를 구동하는 구글의 크로스 플랫폼 언어

  • 크로스 플랫폼 지원 — Web, Mobile, Desktop, Server 모두 대응
  • 객체 지향 프로그래밍 기반 — Java·C#처럼 모든 것이 객체
  • C처럼 main() 함수로 실행 시작
  • 클래스 기반 + 함수 기반 프로그래밍 모두 가능 (함수도 일급객체)
💡 새 개념
일급객체 First-class function
  • 함수를 변수에 담거나 다른 함수의 인자로 전달할 수 있는 성질
var add = (int a, int b) => a + b;
Dart는 정적 언어의 안정성과 동적 언어의 유연성을 함께 노리는 하이브리드 언어임
🔤
2. 타입 시스템 — var, final, dynamic

정적 타입과 동적 타입을 함께 지원하는 하이브리드 구조

  • var — 타입을 추론한 뒤 이후 타입이 고정됨
  • final — 런타임에 한 번만 값이 할당되는 불변 변수
  • dynamic — 타입 검사를 생략하는 완전 동적 타입
💡 새 개념
Null Safety Null 안정성
  • ? — nullable 타입임을 표시
  • ! — 값이 null이 아님을 단언
  • late — 나중에 초기화될 값임을 선언
String? name; // null 허용 → String name2 = name!;
🧩
3. 기능 재사용 — extension, mixin, interface

코드를 상속 없이도 확장하고 재사용하는 세 가지 방법

💡 새 개념
extension 기존 클래스 확장
  • 이미 만들어진 클래스에 새 기능을 나중에 추가하는 문법
extension StringExt on String { bool get isEmail => contains('@'); }
mixin 다중 상속 대체
  • 여러 클래스가 동일한 코드를 공유할 수 있게 해주는 문법
class Bird with Flying { }
interface 암묵적 인터페이스
  • Dart는 별도 키워드 없이 모든 클래스가 인터페이스 역할을 겸함
class Duck implements Flyable { }
Dart에는 interface 키워드가 따로 없고, 모든 클래스가 암묵적으로 인터페이스가 됨 — implements로 구현함
📦
4. 자료구조 & 비동기 처리

다양한 컬렉션 타입과 비동기 처리 문법을 지원함

  • 자료구조 — List, Set, Map, Queue, LinkedList, HashSet, HashMap
  • 비동기 처리 — Future, Stream, async / await
💡 새 개념
Future vs Stream 비동기 반환 방식
  • Future — 한 번의 비동기 결과값을 반환
  • Stream — 여러 번에 걸쳐 연속적으로 값을 반환
Future<String>은 결과 1개, Stream<int>는 연속된 값의 흐름
⚙️
5. 컴파일 방식 — JIT + AOT

개발 중엔 빠르게, 배포할 땐 최적화되게

개발 단계
JIT 컴파일
핫 리로드로 즉시 확인
배포 단계
AOT 컴파일
네이티브 코드로 최적화
💡 새 개념
JIT Just-In-Time
  • 실행 중에 컴파일하여 코드 변경 사항을 빠르게 반영 (핫 리로드)
AOT Ahead-Of-Time
  • 실행 전에 미리 컴파일하여 실행 속도를 최적화
이 두 방식을 함께 지원하기 때문에 Flutter는 빠른 개발 속도와 빠른 실행 속도를 동시에 챙길 수 있음
🚀
6. Dart → Flutter, 그리고 Fuchsia

Dart 위에 세워진 두 개의 그림 — Flutter와 Fuchsia

Dart
Flutter (크로스 플랫폼 UI 프레임워크)
C
Window Programming (전통적 네이티브 개발 방식)
  • Flutter 특징 — GUI 프로그래밍 / 컴파일 기반 / 객체 지향 / 이벤트 기반 / 컴포넌트 기반 / 크로스 플랫폼
  • pub.dev — Dart의 패키지 생태계, npm과 유사한 역할
Fuchsia는 구글이 실험 중인 프로젝트로, 원래는 Dart 기반 차세대 범용 OS를 목표로 했으나 현재는 Nest Hub 등 일부 기기에 한정 적용된 상태임
728x90

'Flutter' 카테고리의 다른 글

260730_강의 정리 (Dart와 Flutter 2)  (0) 2026.07.30