
โ . ์๋ก : ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ๋ฐฐ์ฐ๋ ์ด์
๐ 1. ๋ณ์๋ ๋ฌด์์ธ๊ฐ?
๐ 2. Dart์์ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ฉํ๋ ์ด์
โ ก. ๋ณธ๋ก : Dart์ ๋ณ์ ์ ์ธ๊ณผ ๋ฐ์ดํฐ ํ์ ์ดํดํ๊ธฐ
๐ Step 1: ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ (var, dynamic, ๋ช ์์ ํ์ ์ง์ )
๐ Step 2: ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ (int, double, String, bool, List, Map, Set)
๐ Step 3: null safety์ nullable ๋ณ์ ์ฌ์ฉ๋ฒ
๐ Step 4: ๋ฐ์ดํฐ ํ์ ๋ณํ (String → int, double → String ๋ฑ)
โ ข. ๊ฒฐ๋ก : ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ
๐ ๋ณ์ ์ฌ์ฉ ์ ์ฃผ์ํ ์
๐ Dart์ ํ์ ์ถ๋ก ๊ณผ ๋ช ์์ ํ์ ์ฌ์ฉ์ ๊ท ํ
Dart์์ ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ดํดํ๊ธฐ ๐ฏ๐
Dart์์ ๋ณ์(Variable)๋
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ์ด๋ฉฐ,
๊ฐ ๋ณ์๋
ํน์ ํ ๋ฐ์ดํฐ ํ์ (Type)์ ๊ฐ์ง๋๋ค.
Dart๋
Strongly Typed Language๋ก,
๋ณ์์ ํ์ ์
๋ช ํํ๊ฒ ์ง์ ํด์ผ ํฉ๋๋ค.
ํ์ง๋ง, ํ์
์ถ๋ก ๊ธฐ๋ฅ๋ ์ ๊ณตํ์ฌ
๊ฐ๋ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋
Dart์์ ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ๊ณผ
์ฃผ์ ๋ฐ์ดํฐ ํ์ ์ ์์ธํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๐
๋จผ์ ,
๋ ๋ง์ ์ ๋ณด, ํน์
์์๋๋ก ํฌ์คํ
์ ๋ณด๊ณ ์ถ๋ค๋ฉด
์๋ ๋
ธ์
์ ํ์ธํด์ฃผ์ธ์.


https://mongmung-i.notion.site/Flutter-1a39b1e2cdaa80319a0fc2a89281dc71?pvs=4
Flutter ์ดํ ๊ฐ๋ฐ ์ผ์ง | Notion
Made with Notion, the all-in-one connected workspace with publishing capabilities.
mongmung-i.notion.site
https://mongmung-i.notion.site/19f9b1e2cdaa80a984ade6141a87fd29?pvs=4
์ฐฝ์ ํธ๋ ์ฌ์ ์บ ํ ๐ฒ | Notion
์ด ๊ณณ์ ์ฐฝ์ ํธ๋ ์ฌ์ ์บ ํ ์งํ ์ฌํญ์ ์ ๋ฆฌํ๋ ๊ณณ์ ๋๋ค.
mongmung-i.notion.site
โ . ์๋ก : ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ๋ฐฐ์ฐ๋ ์ด์ ๐ค
๋ณ์๋ ๋ฌด์์ธ๊ฐ?
๋ณ์(Variable)๋
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ ๋๋ค.
Dart์์๋ ๋ณ์๋ฅผ ํตํด
์ซ์, ๋ฌธ์์ด, ๋ฆฌ์คํธ ๋ฑ์
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ
ํ์ฉํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด,
๋ค์๊ณผ ๊ฐ์ ๋ณ์๋ฅผ
์ ์ธํ ์ ์์ต๋๋ค.
void main() {
int age = 25; // ๋์ด ์ ์ฅ
String name = 'Flutter'; // ์ด๋ฆ ์ ์ฅ
bool isDeveloper = true; // ๊ฐ๋ฐ์์ธ์ง ์ฌ๋ถ
print('๋์ด: $age');
print('์ด๋ฆ: $name');
print('๊ฐ๋ฐ์์ธ๊ฐ์? $isDeveloper');
}
๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด
๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ,
ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์
ํ์ํ ๊ฐ์ ์ ์ฅํ๊ณ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.
โ
๋ณ์(Variable)๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณต๊ฐ
โ
Dart์์๋ ๋ณ์์ ๋ค์ํ ๋ฐ์ดํฐ ํ์
์ ์ ์ฅ ๊ฐ๋ฅ
โก๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด
๋ฐ์ดํฐ๋ฅผ
ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ,
ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์
ํ์ํ ๊ฐ์ ์ ์ฅํ๊ณ
๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.๐
Dart์์ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ฉํ๋ ์ด์
Dart์์๋
๋ชจ๋ ๋ณ์๊ฐ
๋ฐ์ดํฐ ํ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด๋ฌํ ๋ฐ์ดํฐ ํ์
์
๋ช ํํ๊ฒ ์ง์ ํ๋ฉด
์ฝ๋์ ์ค๋ฅ๋ฅผ ์ค์ด๊ณ
๊ฐ๋ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
โ
๋ฐ์ดํฐ ํ์
์ ์ง์ ํ๋ฉด ์ฝ๋๊ฐ ๋ช
ํํด์ง๊ณ , ์ค๋ฅ๋ฅผ ์ค์ผ ์ ์์
โ
Dart๋ ์ ์ ํ์
์ธ์ด์ด๋ฉด์ ๋์ ํ์
์ง์ ๋ ๊ฐ๋ฅํจ
โ
Flutter ๊ฐ๋ฐ ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ํ์์ ์ผ๋ก ์ดํดํด์ผ ํ๋ ๊ฐ๋
โก ์ด์ Dart์ ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ๊ณผ ๋ฐ์ดํฐ ํ์ ์ ํ๋์ฉ ์ดํด๋ณด๊ฒ ์ต๋๋ค! ๐ฏ
โ ก. ๋ณธ๋ก : Dart์ ๋ณ์ ์ ์ธ๊ณผ ๋ฐ์ดํฐ ํ์ ์ดํดํ๊ธฐ ๐๏ธ
Step 1: ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ (var, dynamic, ๋ช ์์ ํ์ ์ง์ )
UI์ UX๋ ๋ฐ์ ํ ๊ด๋ จ์ด ์์ง๋ง, **๊ฐ๊ฐ ๋ค๋ฅธ ์ญํ ์ ์ํํ๋ ๊ฐ๋ **์ ๋๋ค.
โ Dart์์ ๋ณ์๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ 3๊ฐ์ง
1๏ธโฃ ๋ช
์์ ํ์
์ง์
int age = 30;
String name = 'Flutter';
bool isDeveloper = true;
โก ๋ณ์ ํ์ ์ ๋ช ํํ๊ฒ ์ง์ ํ๋ฉด ์ฝ๋ ๊ฐ๋ ์ฑ์ด ํฅ์๋จ!
2๏ธโฃ ํ์ ์ถ๋ก (var) ์ฌ์ฉ
var city = 'Seoul'; // ์๋์ผ๋ก String ํ์
์ง์
var temperature = 25.5; // ์๋์ผ๋ก double ํ์
์ง์
โก var์ ์ฌ์ฉํ๋ฉด ํ์ ์ ์๋ตํ ์ ์์ง๋ง, ํ ๋ฒ ์ ํด์ง ํ์ ์ ๋ณ๊ฒฝ ๋ถ๊ฐ!
3๏ธโฃ ๋์ ํ์ (dynamic) ์ฌ์ฉ
dynamic value = 'Hello';
value = 42; // ๊ฐ๋ฅ
โก dynamic์ ์ด๋ค ํ์ ์ด๋ ์ ์ฅ ๊ฐ๋ฅํ์ง๋ง, ํ์ ์์ ์ฑ์ด ๋จ์ด์ง! ๐จ
โ ๋ณ์ ์ ์ธ ์์
void main() {
var name = 'Dart';
int year = 2024;
double pi = 3.14;
bool isAwesome = true;
print('์ธ์ด: $name, ์ฐ๋: $year, PI ๊ฐ: $pi, ๋ฉ์ง๊ฐ์? $isAwesome');
}
โก ์ถ๋ ฅ ๊ฒฐ๊ณผ:
์ธ์ด: Dart, ์ฐ๋: 2024, PI ๊ฐ: 3.14, ๋ฉ์ง๊ฐ์? true
๐ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด ํ๋ก๊ทธ๋จ์์ ์ฝ๊ฒ ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค!
Step 2: ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ (int, double, String, bool, List, Map, Set)
Dart์์
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋
๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์
์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.
๋ฐ์ดํฐ ํ์ | ์ค๋ช | ์์ |
int | ์ ์ ๊ฐ์ ์ ์ฅ | int age = 25; |
double | ์์์ ์ ํฌํจํ ์ซ์ | double pi = 3.14; |
String | ๋ฌธ์์ด ๋ฐ์ดํฐ | String name = 'Dart'; |
bool | ์ฐธ/๊ฑฐ์ง ๊ฐ | bool isFlutter = true; |
List | ์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด | List<int> numbers = [1, 2, 3]; |
Map | ํค-๊ฐ ํํ์ ๋ฐ์ดํฐ ์ ์ฅ | Map<String, int> scores = {'John': 90, 'Jane': 95}; |
Set | ์ค๋ณต์ ํ์ฉํ์ง ์๋ ๋ฆฌ์คํธ | Set<String> uniqueNames = {'Alice', 'Bob'}; |
โ List(๋ฐฐ์ด) ์์
List<String> fruits = ['Apple', 'Banana', 'Cherry'];
print(fruits[0]); // Apple
โ Map(๋์ ๋๋ฆฌ) ์์
Map<String, int> scores = {'Alice': 85, 'Bob': 92};
print(scores['Bob']); // 92
โ Set (์ค๋ณต ํ์ฉ X) ์์
Set<String> uniqueNames = {'Alice', 'Bob', 'Alice'}; // 'Alice'๋ ์ค๋ณต ์ ๊ฑฐ๋จ
print('์ ์ผํ ์ด๋ฆ ๋ชฉ๋ก: ${uniqueNames.toList()}');
๐ ์ด๋ฌํ ๋ฐ์ดํฐ ํ์ ์ ํ์ฉํ๋ฉด
Flutter UI์์๋
๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ค๋ฃฐ ์ ์์ต๋๋ค.
Step 3: null safety์ nullable ๋ณ์ ์ฌ์ฉ๋ฒ
Dart๋
null safety๋ฅผ ์ง์ํ์ฌ
null ๊ฐ์ ํ์ฉํ์ง ์๋
์์ ํ ํ๋ก๊ทธ๋๋ฐ์ ์ ๊ณตํฉ๋๋ค.
null ํจ์๋ฅผ ์์๋ณผ๊น์?

โ nullable ๋ณ์ ์ ์ธ
String? nullableText = null; // null ๊ฐ๋ฅ
nullableText = 'Hello'; // ๊ฐ๋ฅ
โ null ์ฒดํฌ (?? ์ฐ์ฐ์ ์ฌ์ฉ)
String? message;
print(message ?? '๊ธฐ๋ณธ ๋ฉ์์ง'); // message๊ฐ null์ด๋ฉด '๊ธฐ๋ณธ ๋ฉ์์ง' ์ถ๋ ฅ
๐ null safety๋ฅผ ํ์ฉํ๋ฉด
null ๊ด๋ จ ์ค๋ฅ๋ฅผ
๋ฐฉ์งํ ์ ์์ต๋๋ค! ๐ฏ
Step 4: ๋ฐ์ดํฐ ํ์ ๋ณํ (String → int, double → String ๋ฑ)
โ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ (int.parse, double.parse)
String numText = '42';
int num = int.parse(numText);
print(num + 10); // 52
โ ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ (toString())
double pi = 3.14;
String piText = pi.toString();
print('PI ๊ฐ: ' + piText);
โ ์ ์์ ์ค์ ๋ณํ (toInt(), toDouble())
void main() {
double value = 10.99;
int rounded = value.toInt(); // toInt() ์ ์ฉ ํ ์ ์๋ก ๋ณํ
print('์๋ ๊ฐ: $value');
print('๋ฐ์ฌ๋ฆผ๋ ๊ฐ (toInt() ์ ์ฉ): $rounded');
}
๐ Dart์์๋
๋ฐ์ดํฐ ๋ณํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ
๋ค์ํ ๋ฐ์ดํฐ๋ฅผ
์ฒ๋ฆฌํ ์ ์์ต๋๋ค! ๐ฏ
โ ข. ๋ณ์์ ๋ฐ์ดํฐ ํ์ ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ โ
๋ณ์ ์ฌ์ฉ ์ ์ฃผ์ํ ์
โ
๋ช
์์ ํ์
์ง์ vs ํ์
์ถ๋ก (var) ์ฌ์ฉ์ ์ ์ ํ ์กฐ์
โ
๋ถํ์ํ dynamic ์ฌ์ฉ์ ์ง์ํ๊ณ ํ์
์์ ์ฑ์ ์ ์ง
โ
null safety๋ฅผ ํ์ฉํ์ฌ null ์ค๋ฅ ๋ฐฉ์ง
Dart์ ํ์ ์ถ๋ก ๊ณผ ๋ช ์์ ํ์ ์ฌ์ฉ์ ๊ท ํ
โ
๊ฐ๋จํ ์ฝ๋์์๋ var ์ฌ์ฉํ์ฌ ๊ฐ๋
์ฑ ํฅ์
โ
๋ช
ํํ ํ์
์ง์ ์ด ํ์ํ ๊ฒฝ์ฐ int, String, List ๋ฑ์ ์ฌ์ฉ
โ
null safety๋ฅผ ์ ์ฉํ์ฌ ์์ ์ ์ธ ์ฝ๋ ์์ฑ