1. ์ฝ๋ ์์ฑ ๊ฐ์ํ – “dot shorthands”
- ์๋ก ๋์
๋ Dart ๊ธฐ๋ฅ ‘dot shorthands’๋ฅผ ํตํด ํ์
์ด๋ ํด๋์ค๋ช
์ ๋ฐ๋ณตํด์ ์ฐ๋ ๋ฒ๊ฑฐ๋ก์์ด ์ค์ด๋ญ๋๋ค.
์)์ด์ ์๋ MainAxisAlignment.start, CrossAxisAlignment.center์ฒ๋ผ ํ๋ค์์ ์จ์ผ ํ์ต๋๋ค. -
Column( mainAxisAlignment: .start, crossAxisAlignment: .center, children: [ … ], )
- ์ด ๊ธฐ๋ฅ์ Dart 3.10 + Flutter 3.38๋ถํฐ ๊ธฐ๋ณธ ํ์ฑํ๋์ด ์์ต๋๋ค.
2. ์น ๊ฐ๋ฐ ๊ฒฝํ ํฅ์
- flutter run ์ ์น ๊ฐ๋ฐ์ฉ ์ค์ ํ์ผ(web_dev_config.yaml)์ ํ๋ก์ ํธ ๋ฃจํธ์ ๋ ์ ์์ด, ํธ์คํธ·ํฌํธ·ํค๋ ๋ฑ ์ค์ ์ ํ ๋ด ํต์ผํด์ ์ฌ์ฉ ๊ฐ๋ฅํด์ก์ต๋๋ค.
- ํ๋ก์ ์ค์ ์ด ๊ฐํ๋์ด, ์น ํด๋ผ์ด์ธํธ๊ฐ ๋์ผ ํธ์คํธ์ ๋์ ์๋ํฌ์ธํธ์ ์ฐ๊ฒฐํ ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ด ์ข ๋ ์ ์ฐํด์ก์ต๋๋ค.
- ์น์ฉ ์ํ ์ ์งํ(hot reload) ๊ฐ๋ฐ ๊ฒฝํ์ด ๊ฐ์ ๋์ด์, -d web-server ์ต์ ์ผ๋ก ์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์์ ๋์์ ๊ฐ๋ฐ ์ค์๋ ์ํ ๋ณ๊ฒฝ์ด ์ฆ์ ๋ฐ์๋ฉ๋๋ค.
3. ํ๋ ์์ํฌ ๋ฐ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์
- OverlayPortal์ ํ์ฉํด ๋ถ๋ชจ ์์ ฏ์ ๋ ์ด์์ ์ ์ฝ์ ๋ฒ์ด๋ ์ฑ ์ ์ญ ์์ค์ UI(์: ์๋ฆผ ํ์ )๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ๊ฐ์ ๋จ.
- ์๋๋ก์ด๋ ๋ค๋น๊ฒ์ด์ ๊ฒฝํ ๊ฐ์ : MaterialApp์ ๋ค๋ก ๊ฐ๊ธฐ ์ ์ค์ฒ(back gesture)์ ๋ํด ํ ํ๋ฉด์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ธก ์ ํ(predictive back route transition)์ด ๊ธฐ๋ณธ ํ์ฑํ ๋จ.
- ๋ฐ์คํฌํ(Windows)์์ ์ฐ๊ฒฐ๋ ๋์คํ๋ ์ด์ ํด์๋, ์ฃผ์ฌ์จ, ๋ฌผ๋ฆฌ ํฌ๊ธฐ ๋ฑ์ ์กฐํํ ์ ์๊ฒ ๋์ด ๋ณต์กํ ์ฐฝ ๊ด๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ์ด ์์ํด์ก์ต๋๋ค.
- ์คํฌ๋กค/์ฌ๋ฆฌ๋ฒ(Sliver) ๊ด๋ จ ๋ฒ๊ทธ๋ค์ด ๋ํญ ์์ ๋์ด, ๋ณตํฉ ๋ ์ด์์(์: ๊ฐ๋ก + ์ธ๋ก ์คํฌ๋กค ๋ณํฉ)์์ ํฌ์ปค์ค ๋ฐ ํฐ์น ์ด๋ฒคํธ ๋์์ด ๋ณด๋ค ์์ธก ๊ฐ๋ฅํด์ก์ต๋๋ค.
- ์ ๊ทผ์ฑ(Accessibility) ๊ฐํ: iOS์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ทผ์ฑ ํ์ฑํ ๊ฐ๋ฅํด์ก๊ณ , SliverSemantics ์์ ฏ์ผ๋ก ๋ณต์กํ ์ฌ๋ฆฌ๋ฒ ๊ตฌ์กฐ์์๋ ์คํฌ๋ฆฐ๋ฆฌ๋ ๋ฑ์ ๋ํ ์ค๋ช ์ ์ถ๊ฐํ ์ ์๋๋ก ๊ฐ์ ๋จ.
4. iOS ๋ฐ Android ํ๋ซํผ ์ง์ ๊ฐํ
- iOS 26, Xcode 26, macOS 26์ ์๋ฒฝํ ์ง์ํฉ๋๋ค.
- iOS์์๋ ์ ํ์ด ์๊ตฌํ๋ UIScene ๋ผ์ดํ์ฌ์ดํด์ ์ง์ํ๋๋ก ์ ๋ฐ์ดํธ ๋์์ผ๋ฉฐ, ๊ธฐ์กด ์ฑ์ด๋ผ๋ฉด ์๋ ํน์ ์คํ ๊ธฐ๋ฅ์ ํตํด ๋ง์ด๊ทธ๋ ์ด์ ์ด ํ์ํฉ๋๋ค.
- Android์์๋ “16KB ํ์ด์ง์ฌ์ด์ฆ” ํธํ์ฑ ์๊ตฌ์ฌํญ์ด ๋์ ๋จ์ ๋ฐ๋ผ NDK ๋ฒ์ ์ r28 ์ด์์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ , ์ด๋ก ์ธํด ์ฑ ์ถ์ ์ค๋น์ ์ค์ํ ๋ณํ๋ฅผ ๋ด์์ต๋๋ค.
- Android ๋ฉ๋ชจ๋ฆฌ ๋์(memory leak) ์ด์๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ํนํ Activity ์ข ๋ฃ ์ ์์คํ ์ ์ํด ๊ฐ์ ์ข ๋ฃ๋ ๋ ๋ฐ์ํ๋ ๋์๊ฐ ์์ ๋จ.
- Android ๊ฐ๋ฐ ํ๊ฒฝ์์ ์๊ตฌํ๋ ์ต์ ๋ฒ์ ์ด ์ ๋ฆฌ๋จ: Java 17, Kotlin Gradle Plugin(KGP) 2.2.20, Android Gradle Plugin(AGP) 8.11.1, Gradle 8.14 ๋ฑ์ด ๊ถ์ฅ ๋ฒ์ ์ผ๋ก ๋ช ์๋จ.
5. ์์ง ๋ฐ ๋ ๋๋ง ๊ฐ์
- ์ฑ๋ฅ ์ค๋ฒ๋ ์ด(performance overlay)์ ๋ ๋๋ง ํจ์จ์ด ๋์์ ธ, ๊ทธ๋ํฝ ๋ฐฑ์๋(Skia, Impeller)์์ ์ค๋ฒํค๋๊ฐ ์ค๊ณ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ๋ ์ ํํ ๋ณผ ์ ์๊ฒ ๋จ.
- Vulkan ๋ฐ OpenGL ES ๋ฐฑ์๋์ ์์ ์ฑ ๋ฐ ์ฑ๋ฅ ๊ฐ์ : ํ์ดํ๋ผ์ธ ์บ์, ํ์ด์ค(waiters), ์ด๋ฏธ์ง ๋ ์ด์์ ์ ํ ๋ฑ ์ฌ๋ฌ ๋ถ๋ฌธ์์ ๊ฐ์ ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค.
- CanvasKit๊ณผ Skwasm ๋ ๋๋ฌ ๊ฐ์ ์ฝ๋ ๊ณต์ (refactoring) ์์ ์ด ์งํ๋์ด ์์ผ๋ก ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์๊ฐ ๋ ์์ํด์ง ์์ ์ ๋๋ค.
6. DevTools ๋ฐ IDE ํตํฉ ๊ฐํ
- “Widget Previews” ๊ธฐ๋ฅ์ด VS Code ๋ฐ IntelliJ/Android Studio ํ๋ฌ๊ทธ์ธ์ ํตํฉ๋์ด, IDE ๋ด์์ ์ค์ ์์ ฏ ๋ ๋๋ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ๊ฐ๋ฅํด์ก์ต๋๋ค.
- ํ๋ฆฌ๋ทฐ ํ๊ฒฝ์์ ๋ผ์ดํธ/๋คํฌ ๋ชจ๋ ๋์, IDE ํ ๋ง ์ฐ๋, ๊ณต๊ฐ ์ต์ ํ ๋ฑ ์ฌ์ฉ์ ๊ฒฝํ์ด ๊ฐ์ ๋จ.
- @Preview ์ด๋ ธํ ์ด์ ์ด ๋ ์ ์ฐํด์ก๊ณ (final์ด ์๋), ์ปค์คํ ํ๋ฆฌ๋ทฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํ์ฅ๋ ๊ฐ๋ฅํด์ก์ต๋๋ค.
- DevTools ๋คํธ์ํฌ ํจ๋, ์ธ์คํํฐ(Widget Inspector) ๋ฑ์์ ์ฌ์ฉ์๋ค์ด ์ง์ ํ ๋ฌธ์ ์ ๋ค์ด ๋ง์ด ํด๊ฒฐ๋จ.
7. ํ๊ธฐ ์์ (Deprecated) ๋ฐ ๊นจ์ง ์ ์๋(Breaking) ๋ณ๊ฒฝ์ฌํญ
- SDK ๋ฃจํธ์ ์๋ version ํ์ผ์ด ์ ๊ฑฐ๋๊ณ flutter.version.json์ผ๋ก ๋์ฒด๋จ.
- AssetManifest.json์ด ๊ธฐ๋ณธ ์์ฑ๋์ง ์๋๋ก ๋ณ๊ฒฝ๋จ.
- SnackBar์ ์ก์ ์ด ํฌํจ๋ ๊ฒฝ์ฐ ์๋์ผ๋ก dismiss(์ฌ๋ผ์ง๋) ๋์ง ์๋๋ก ๋์์ด ๋ณ๊ฒฝ๋จ.
- OverlayPortal.targetsRootOverlay ์์ฑ์๊ฐ ํ๊ธฐ(deprecated)๋์๊ณ , ๋์ OverlayPortal(overlayLocation: …) ํํ๋ก ์ฌ์ฉํด์ผ ํจ.
- CupertinoDynamicColor์ withAlpha, withOpacity ๋ฑ์ด ๋ ์ด์ ๊ถ์ฅ๋์ง ์๊ณ ๋์ ์ผ๋ฐ Color ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋๋ก ์ ๋๋จ.
- Android ํ๊ฒํ ์ Java 17 ์ด์์ด ๋ฐ๋์ ํ์ํ๋ฉฐ, ์ด๋ ๊ธฐ์กด ๊ฐ๋ฐํ๊ฒฝ์์๋ ๊น์ง ๋ณํ์ผ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์์๊ฒ ์ฃผ๋ ํ
- ์ด๋ฏธ Flutter 3.x ๋ฒ์ ์ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด ๊ฐ๋ฅํ๋ฉด ์ด๋ฒ 3.38 ๋ฒ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ ๊ทธ๋ ์ด๋ํด์ ์ ๊ธฐ๋ฅ(dot shorthands, ์น ์ค์ ๊ฐ์ , ์์ ฏ ํ๋ฆฌ๋ทฐ ๋ฑ)์ ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ํนํ ์น ๋ฐ ๋ฐ์คํฌํ ํ๊ฒ ํ๋ก์ ํธ๊ฐ ์๋ค๋ฉด, ์น ์ค์ ํ์ผ(web_dev_config.yaml) ๋์ ์ด๋ ์ฌ๋ฆฌ๋ฒ/์คํฌ๋กค ๊ด๋ จ ๋ฒ๊ทธ ์์ ์ด ์ ์๋ฏธํฉ๋๋ค.
- iOS ๋ฐ Android์ ํ๋ซํผ ์๊ตฌ์ฌํญ(์: UIScene, Java 17, 16KB ํ์ด์ง ๋ฑ)์ ๊ผญ ํ์ธํ์ธ์. ๋ฏธ๋ฆฌ ์ค๋นํ์ง ์์ผ๋ฉด ๋ฆด๋ฆฌ์ค ์ดํ ๋์์ด ๊ธํด์ง ์ ์์ต๋๋ค.
- ์ปค์คํ ํ๋ฌ๊ทธ์ธ์ด๋ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด breaking change ๋ชฉ๋ก(์: version ํ์ผ ๋ณ๊ฒฝ, AssetManifest.json ๋ณํ ๋ฑ)์ ๊ฒํ ํด ๋๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
- Widget Previews ๊ธฐ๋ฅ์ ์์ง ์คํ์ (experimental)์ ๋๋ค. ํ๋ก์ ํธ์ ๋์ ํ ๋๋ ๊ธฐ๋์น์ ์์ ์ฑ ์์ค์ ๊ณ ๋ คํ์ธ์.
์ถ์ฒ: https://blog.flutter.dev/whats-new-in-flutter-3-38-3f7b258f7228