"매 client-optimized language — JIT(dev) + AOT(prod) dual compile, sound null safety, isolate concurrency". 매 Google 의 Flutter 전용으로 설계 (2011→2018 pivot). 매 Dart 3.3+ (2024-2026) 의 records, patterns, sealed class 의 modern type system 도입.
매 핵심
매 dual compilation
JIT (development): 매 hot reload < 1s — Flutter dev 의 핵심.
(double,double)toPolar(doublex,doubley)=>(sqrt(x*x+y*y),atan2(y,x));final(r,theta)=toPolar(3,4);print('r=$r, θ=$theta');// Named record
({Stringname,intage})profile=(name:'Yuna',age:28);print(profile.name);
Future<User>fetchUser(intid)async{finalres=awaithttp.get(Uri.parse('https://api/u/$id'));if(res.statusCode!=200)throwException('fail');returnUser.fromJson(jsonDecode(res.body));}// Stream — 매 multiple async value
Stream<int>count(intn)async*{for(vari=0;i<n;i++){awaitFuture.delayed(constDuration(seconds:1));yieldi;}}
Isolate (compute)
import'dart:isolate';Future<int>heavyCompute(List<int>data)=>Isolate.run(()=>data.fold(0,(a,b)=>a+b*b));// 매 main isolate 의 block 없이 background work
finalsum=awaitheavyCompute(List.generate(1_000_000,(i)=>i));
언제: 매 Flutter widget tree 작성, 매 isolate 기반 background work, 매 records/patterns 활용 의 modern Dart.
언제 X: 매 Flutter 외부 — 매 다른 ecosystem 에서 Dart 의 사용 의 의미 X.
❌ 안티패턴
매 dynamic 의 남용: 매 type system 의 우회 — 매 sound null safety 의 무력화.
매 sync await chain: 매 Future.wait 의 미사용 — 매 serialized 대기.
매 isolate 와 closure: 매 capture-by-reference 의 함정 (sendable 만 가능).
매 print debug: 매 debugPrint / logger 의 권장.
🧪 검증 / 중복
Verified (dart.dev language tour, Dart 3.3 release 2024, Flutter 3.27).