Flutter (์•ฑ ๊ฐœ๋ฐœ)/Dart ์ฝ”๋“œ ์ฒจ๋ถ€ ํŒŒ์ผ

[Dart ์–ธ์–ด ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] Dart๋ž€? ๊ฐœ๋…๊ณผ ํŠน์ง• ํ•œ๋ˆˆ์— ๋ณด๊ธฐ (๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)

๋ชฝ๋ฌผ๊ณ ๊ธฐ๐“†œ 2025. 2. 20. 22:45
728x90
728x90

 

 

๋” ๋งŽ์€ ์ •๋ณด, ํ˜น์€


์ˆœ์„œ๋Œ€๋กœ ํฌ์ŠคํŒ…์„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด


์•„๋ž˜ ๋…ธ์…˜์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”. 

 

 

https://mongmung-i.notion.site/19f9b1e2cdaa80a984ade6141a87fd29?pvs=4

 

์ฐฝ์—… ํŠธ๋ž™ ์‚ฌ์ „ ์บ ํ”„ ๐“†ฒ | Notion

Copyright © Ryussi Studio All rights reserved

mongmung-i.notion.site

 


โ… . ์„œ๋ก : Dart๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๐Ÿค”

 

 

Flutter ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด 

๋จผ์ € Dart ์–ธ์–ด์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•์„ 

์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

 


Dart๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ์–ธ์–ด๋กœ, 

Flutter์˜ ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 


์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š”

 Dart๊ฐ€ ์–ด๋–ค ์–ธ์–ด์ธ์ง€, 

ํŠน์ง•๊ณผ ์žฅ์ ์„ ์ค‘์‹ฌ์œผ๋กœ 

์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 


 

Dart์˜ ๊ฐœ์š” ๋ฐ ๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ

 

 

โœ… Dart๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
โœ… ์›น, ๋ชจ๋ฐ”์ผ, ์„œ๋ฒ„, ๋ฐ์Šคํฌํ†ฑ ๋“ฑ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ
โœ… 2011๋…„ ๋ฐœํ‘œ ์ดํ›„, 2017๋…„๋ถ€ํ„ฐ Flutter์˜ ๊ธฐ๋ณธ ์–ธ์–ด๋กœ ์ฑ„ํƒ๋จ

โžก ์ฆ‰, Dart๋Š” ๋‹จ์ˆœํ•œ ์›น ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ฐ•๋ ฅํ•œ ํฌ๋กœ์Šคํ”Œ๋žซํผ ๊ฐœ๋ฐœ ์–ธ์–ด์ด๋‹ค ! ๐Ÿš€

 


์™œ Flutter์—์„œ Dart๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

 

 

 

โœ… Flutter์™€ ์™„๋ฒฝํ•œ ํ˜ธํ™˜์„ฑDart๋Š” Flutter ์ „์šฉ ์–ธ์–ด์ฒ˜๋Ÿผ ์ตœ์ ํ™”๋จ
โœ… ๋น ๋ฅธ ์‹คํ–‰ ์†๋„AOT ์ปดํŒŒ์ผ์„ ์ง€์›ํ•˜์—ฌ ๋„ค์ดํ‹ฐ๋ธŒ๊ธ‰ ์„ฑ๋Šฅ
โœ… Hot Reload ์ง€์›Flutter ๊ฐœ๋ฐœ์—์„œ ๋น ๋ฅธ ์ฝ”๋“œ ๋ฐ˜์˜ ๊ฐ€๋Šฅ

โžก Flutter๊ฐ€ ๊ฐ•๋ ฅํ•œ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ Dart ๋•๋ถ„! ๐ŸŽฏ


โ…ก. ๋ณธ๋ก : Dart์˜ ์ฃผ์š” ํŠน์ง•๊ณผ ์žฅ์  ๐Ÿ› ๏ธ

 

  Step 1: ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ์ง€์›

 

โœ… Dart๋Š” **๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)**์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ
โœ… ํด๋ž˜์Šค(Class), ์ƒ์†(Inheritance), ์ถ”์ƒ ํด๋ž˜์Šค(Abstract class) ๋“ฑ์„ ์ œ๊ณต
โœ… Mixins(๋ฏน์Šค์ธ) ๊ธฐ๋Šฅ์œผ๋กœ ๋‹ค์ค‘ ์ƒ์†๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ฐ€๋Šฅ

 

๐Ÿ”น Dart์˜ ๊ฐ„๋‹จํ•œ OOP ์˜ˆ์ œ

class Car {
  String brand;
  int speed;

  Car(this.brand, this.speed);

  void drive() {
    print('$brand๊ฐ€ ์‹œ์† $speed km๋กœ ๋‹ฌ๋ฆฝ๋‹ˆ๋‹ค.');
  }
}

void main() {
  var myCar = Car('Tesla', 120);
  myCar.drive();
}

 

class Car {.txt
0.00MB

 

 

๐Ÿ”น DartPad์—์„œ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. 

 

DartPad

 

DartPad

 

dartpad.dev

โžก Dart๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ, ํด๋ž˜์Šค๋ฅผ ์‰ฝ๊ฒŒ ํ™œ์šฉ ๊ฐ€๋Šฅ! ๐Ÿš€

 


  Step 2: Just-In-Time (JIT) & Ahead-Of-Time (AOT) ์ปดํŒŒ์ผ

 

 

 

โœ… JIT(Just-In-Time) ์ปดํŒŒ์ผ → ๊ฐœ๋ฐœ ์ค‘ ๋น ๋ฅธ ์‹คํ–‰ (Hot Reload ์ง€์›)
โœ… AOT(Ahead-Of-Time) ์ปดํŒŒ์ผ → ์•ฑ ๋ฐฐํฌ ์‹œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ

โžก Flutter ๊ฐœ๋ฐœ ์ค‘์—๋Š” JIT ์ปดํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ , ์‹ค์ œ ์•ฑ ๋ฐฐํฌ ์‹œ AOT๋กœ ์ตœ์ ํ™”๋จ! ๐Ÿ”ฅ


Step 3: Null Safety(๋„ ์•ˆ์ „์„ฑ) ์ง€์›

 

โœ… Dart๋Š” Null Safety๋ฅผ ์ œ๊ณตํ•˜์—ฌ Null ๊ด€๋ จ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•จ
โœ… null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜์™€ ๊ฐ€์งˆ ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„

 

๐Ÿ”น Dart์˜ Null Safety ์˜ˆ์ œ

String? nullableText; // null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
String nonNullableText = 'Hello'; // null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

void main() {
  print(nullableText); // ์ถœ๋ ฅ: null
  print(nonNullableText); // ์ถœ๋ ฅ: Hello
}

 

String.txt
0.00MB

 

 

๐Ÿ”น DartPad์—์„œ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. 

 

๐Ÿšจ Null Safety๋ฅผ ์ง€์›ํ•˜๋ฉด ์•ฑ ์‹คํ–‰ ์ค‘ Null ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์ค„์–ด๋“ฆ! ๐ŸŽฏ

 


Step 4: ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์ธ ๋ฌธ๋ฒ•

 

โœ… Dart์˜ ๋ฌธ๋ฒ•์€ Java, JavaScript, C#๊ณผ ์œ ์‚ฌํ•˜์—ฌ ์ตํžˆ๊ธฐ ์‰ฌ์›€
โœ… ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„์‹(Arrow Function, Cascade Operator ๋“ฑ) ์ œ๊ณต

 

๐Ÿ”น Dart์˜ ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ• ์˜ˆ์ œ

void main() {
  var list = [1, 2, 3];
  list.forEach((item) => print('๊ฐ’: $item')); // Arrow Function ํ™œ์šฉ
}

 

void main.txt
0.00MB

 

 

๐Ÿ”น DartPad์—์„œ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. 

 

โžก Dart๋Š” ์ฝ”๋“œ๊ฐ€ ์ง๊ด€์ ์ด๋ฉฐ ๊ฐ€๋…์„ฑ์ด ๋†’์Œ! ๐ŸŽฏ


 Step 5: ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์› (async, await, Future, Stream)

 

โœ… ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํŒŒ์ผ ์ฝ๊ธฐ ๋“ฑ์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
โœ… Future, async/await, Stream ๋“ฑ ๋‹ค์–‘ํ•œ ๋น„๋™๊ธฐ ๋ฐฉ์‹ ์ œ๊ณต

 

๐Ÿ”น Dart์˜ ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ• ์˜ˆ์ œ

Future<void> fetchData() async {
  await Future.delayed(Duration(seconds: 2));
  print('๋ฐ์ดํ„ฐ ๋กœ๋“œ ์™„๋ฃŒ!');
}

void main() {
  fetchData();
  print('๋ฐ์ดํ„ฐ ์š”์ฒญ ์ค‘...');
}

 

Future.txt
0.00MB

 

 

๐Ÿ”น DartPad์—์„œ ์ ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. 

 

โžก ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅ! ๐Ÿš€


โ…ข. ๊ฒฐ๋ก : Dart์˜ ๊ฐ•์ ๊ณผ ํ™œ์šฉ ๋ฒ”์œ„ โœ…

 

Dart๋ฅผ ๋ฐฐ์šฐ๋ฉด ์ข‹์€ ์ด์œ 

 

โœ… Flutter์˜ ํ•„์ˆ˜ ์–ธ์–ด → ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์— ์ ํ•ฉ
โœ… ๊ฐ์ฒด์ง€ํ–ฅ, ํ•จ์ˆ˜ํ˜•, ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต
โœ… JIT & AOT ์ปดํŒŒ์ผ๋กœ ๋น ๋ฅธ ์‹คํ–‰ ๋ฐ ์ตœ์ ํ™” ๊ฐ€๋Šฅ


Flutter ๊ฐœ๋ฐœ์„ ์œ„ํ•œ Dart ํ•™์Šต ๋ฐฉ๋ฒ•

 

โœ… ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ตํžˆ๊ธฐ (๋ณ€์ˆ˜, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ์ปฌ๋ ‰์…˜ ๋“ฑ)
โœ… ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…(OOP)๊ณผ ํด๋ž˜์Šค ํ™œ์šฉ๋ฒ• ์ตํžˆ๊ธฐ
โœ… ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Future, async/await) ์—ฐ์Šตํ•˜๊ธฐ


 

๐ŸŽฏ Dart์˜ ๊ฐœ๋…๊ณผ ํŠน์ง• ์ •๋ฆฌ! ๐ŸŽ‰

 

โœ… Dart๋Š” Google์—์„œ ๊ฐœ๋ฐœํ•œ ํฌ๋กœ์Šคํ”Œ๋žซํผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
โœ… Flutter ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ตœ์ ํ™”๋œ ์–ธ์–ด๋กœ ๋น ๋ฅธ ์„ฑ๋Šฅ ์ œ๊ณต
โœ… ๊ฐ์ฒด์ง€ํ–ฅ(OOP), JIT & AOT ์ปดํŒŒ์ผ, Null Safety, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์ง€์›

728x90
728x90

'Flutter (์•ฑ ๊ฐœ๋ฐœ) > Dart ์ฝ”๋“œ ์ฒจ๋ถ€ ํŒŒ์ผ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] var, dynamic, const, final ์ฐจ์ด์  ์ •๋ฆฌ(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (1) 2025.02.23
[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] Dart์˜ ์ฃผ์š” ๋ฐ์ดํ„ฐ ํƒ€์ž… (int, double, String, bool)(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (0) 2025.02.23
[Dart ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž…] Dart์—์„œ ๋ณ€์ˆ˜์™€ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ดํ•ดํ•˜๊ธฐ(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (1) 2025.02.23
[Dart ์–ธ์–ด ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] Dart ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ ๋ฐ main() ํ•จ์ˆ˜ (๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (1) 2025.02.23
[Dart ์–ธ์–ด ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] Dart ๊ณต์‹ ํŽ˜์ด์ง€์—์„œ ๊ฐœ๋ณ„ ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋ฐ›๊ธฐ /Dart ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ• (๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ ์ œ๊ณต)  (1) 2025.02.23