728x90
๐ Dart ๊ฐ์
Dart๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํด ์ค๊ณ๋ ์ธ์ด๋ก, ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ๋์ ์์ฐ์ฑ์ ์ถ๊ตฌํฉ๋๋ค. ๊ตฌ๊ธ์์ ๊ฐ๋ฐํ์์ผ๋ฉฐ, ๋ชจ๋ฐ์ผ, ์น, ๋ฐ์คํฌํฑ ๋ฑ ๋ค์ํ ํ๋ซํผ์ ์ง์ํ๋ ๋ฉํฐ ํ๋ซํผ ์ธ์ด์ ๋๋ค.
๐ Dart์ ํน์ง
โ ๋น ๋ฅด๊ณ ์ ์ฐํ ๊ฐ๋ฐ ๊ฒฝํ
- Stateful hot reload๋ฅผ ์ง์ํ์ฌ UI ์์ ํ ์ฆ์ ๋ฐ์ ๊ฐ๋ฅ
- Flutter์ ํจ๊ป ์ฌ์ฉ ์, ๊ณ ์ฑ๋ฅ์ ๋ฉํฐ ํ๋ซํผ ์ฑ ๊ฐ๋ฐ ๊ฐ๋ฅ
โ ํ์ ์์ ์ฑ๊ณผ ์ ์ฐ์ฑ์ ์กฐํ
- ์ ์ ํ์ ์ธ์ด์ด์ง๋ง, ํ์ ์ถ๋ก ์ ์ง์ํ์ฌ ์ฝ๋๊ฐ ๊ฐ๊ฒฐ
- null ์์ ์ฑ(Sound null safety) ์ ๊ณต: null ๊ฐ๋ฅ์ฑ์ ๋ช ํํ ์ ์ธํด์ผ ํ๋ฉฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ ๋ฐ์
- dynamic ํ์ ๋ ์ง์ํ์ฌ ์ ์ฐํ ํ๋กํ ํ์ดํ ๊ฐ๋ฅ
โ ์ปดํ์ผ ๋ฐฉ์
๋์ ํ๋ซํผ | ์ง์ ๋ฐฉ์ | ์ค๋ช |
๋ชจ๋ฐ์ผ/๋ฐ์คํฌํฑ | JIT + AOT | ๊ฐ๋ฐ ์ค ๋น ๋ฅธ ์คํ (JIT), ๋ฐฐํฌ ์ ์ต์ ํ๋ ์ฑ๋ฅ ์ ๊ณต (AOT) |
์น | JS ๋ณํ | Dart๋ฅผ JavaScript๋ก ์ปดํ์ผํ์ฌ ๋ธ๋ผ์ฐ์ ์์ ์คํ |
๐ง Dart์ ์ด๋ ธํ ์ด์ (Annotation)
Dart์์๋ Java์ ์ ์ฌํ๊ฒ ์ด๋ ธํ ์ด์ (annotation)์ ํ์ฉํ ์ ์์ต๋๋ค. ์ฃผ์์ด ์ฌ๋์ ์ํ ์ค๋ช ์ด๋ผ๋ฉด, ์ด๋ ธํ ์ด์ ์ ํ๋ก๊ทธ๋จ์ด ์ธ์ํ ์ ์๋ ๋ฉํ ์ ๋ณด์ ๋๋ค.
๐ Dart ์ด๋ ธํ ์ด์ ํน์ง
- @override, @deprecated ๋ฑ ๊ธฐ๋ณธ ์ด๋ ธํ ์ด์ ์ ๊ณต
- ๋ฉํ๋ฐ์ดํฐ๋ก ์ฌ์ฉ๋๋ฉฐ, ์ฃผ๋ก ์ปดํ์ผ๋ฌ๋ ๋ฐํ์์์ ํน์ ๋์์ ์ ๋
- ์ง์ ์ฌ์ฉ์ ์ ์ ์ด๋ ธํ ์ด์ ์ ๋ง๋ค์ด ์ฌ์ฉํ ์๋ ์์
์์
class Person {
final String name;
const Person(this.name);
}
@Person('ํ๊ธธ๋')
class Hero {}
๐งฉ Dart ๋ฐํ์ & ํ๋ซํผ ๊ตฌ์ฑ
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ: ์๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๊ณต
- Isolate ๊ธฐ๋ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ: ๋ฉํฐ ์ค๋ ๋์ฒ๋ผ ๋์ํ๋ ๊ฒฝ๋ ๋จ์์ธ isolate๋ก ์ฝ๋ ๋ถ์ฐ ์คํ
- Dart VM: ๊ฐ๋ฐ ์ ์ฌ์ฉํ๋ ์คํ ํ๊ฒฝ
- ๋ฐํ์ ํ์ ์ฒดํฌ: ๋์ ์ํฉ์์๋ ํ์ ์์ ์ฑ ๋ณด์ฅ
๐ฆ Dart๋ Flutter์ ๊ธฐ๋ฐ ์ธ์ด
Flutter๋ Dart ํ๋ซํผ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, UI ๊ตฌ์ฑ ์์ ๋ฐ ํด๋ง์ ์ ๊ณตํฉ๋๋ค.
Dart๋ Flutter ์ฑ ์คํ๋ฟ๋ง ์๋๋ผ ๋ค์๊ณผ ๊ฐ์ ํต์ฌ ๊ฐ๋ฐ ๊ธฐ๋ฅ๋ ์ง์ํฉ๋๋ค.
- ์ฝ๋ ํฌ๋งทํ
- ์ ์ ๋ถ์
- ์ ๋ ํ ์คํธ
- ํจํค์ง ๊ด๋ฆฌ(pub.dev)
๐ ์ฐธ๊ณ ๋งํฌ
- ๐ Dart ๊ณต์ ๊ฐ์: https://dart-ko.dev/overview
- ๐งช Dart ์ธ์ด ํฌ์ด: https://dart-ko.dev/guides/language/language-tour
- ๐งฐ Dart ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํฌ์ด: https://dart-ko.dev/guides/libraries/library-tour
- ๐ฆ Dart ํจํค์ง ํ์: https://pub.dev
- โ ์ด๋ ธํ ์ด์ ๊ฐ๋ ์ ๋ฆฌ(์๋ฐ ์ค์ฌ): https://ittrue.tistory.com/156
- ๐ ๋คํธ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ : https://brunch.co.kr/@mystoryg/115
'Flutter + Dart > Flutter + Dart ๊ณต๋ถ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
day1 Flutter ์ค์ต: ๋ฒํผ์ผ๋ก ๋ฆฌ์คํธ๋ทฐ ์ ๋ ฌ ๋ฐ ์๋ก๊ณ ์นจ ๊ตฌํํ๊ธฐ (0) | 2025.05.07 |
---|---|
์ฑ UI ์์ - ์์ ฏ ์ถ์ถ, ์ปฌ๋ผ ์ค์ ๋ฐฐ์ด (0) | 2025.05.06 |
ํ๋ก์ ํธ ๋ง๋ค๊ธฐ (1) | 2025.05.06 |
Flutter ์์ ฏ ๊ธฐ๋ณธ ์ดํด (1) | 2025.05.05 |
Windows์์ Flutter ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ (0) | 2025.05.03 |