{"id":1705,"date":"2026-06-04T15:02:48","date_gmt":"2026-06-04T15:02:48","guid":{"rendered":"https:\/\/wayhope.kro.kr\/?p=1705"},"modified":"2026-08-31T07:32:46","modified_gmt":"2026-08-31T07:32:46","slug":"dart-%ec%96%b8%ec%96%b4-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac","status":"publish","type":"post","link":"https:\/\/wayhope.kro.kr\/?p=1705","title":{"rendered":"Dart \uc5b8\uc5b4 \ud575\uc2ec \uc815\ub9ac"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Dart\ub294 Google\uc5d0\uc11c \uac1c\ubc1c\ud55c \ubc94\uc6a9 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub2e4. \ud604\uc7ac\ub294 Flutter \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc5d0\uc11c \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ub418\uba70, \ubaa8\ubc14\uc77c\ubfd0\ub9cc \uc544\ub2c8\ub77c \uc6f9\uacfc \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uae4c\uc9c0 \ud558\ub098\uc758 \ucf54\ub4dc\ubca0\uc774\uc2a4\ub85c \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ubb38\ubc95\uc740 Java, C#, JavaScript, Kotlin \ub4f1\uc758 \uc601\ud5a5\uc744 \ubc1b\uc740 \ud615\ud0dc\ub77c \uac1d\uccb4\uc9c0\ud5a5 \uac1c\ubc1c\uc790\uc5d0\uac8c \ube44\uad50\uc801 \uc775\uc219\ud558\ub2e4. \ub3d9\uc2dc\uc5d0 <code>async\/await<\/code>, <code>Future<\/code>, <code>Stream<\/code>, Null Safety \uac19\uc740 \uae30\ub2a5\uc744 \uc5b8\uc5b4 \ucc28\uc6d0\uc5d0\uc11c \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dart \ucf54\ub4dc\ub294 \uc2e4\ud589 \ud658\uacbd\uc5d0 \ub530\ub77c \ucef4\ud30c\uc77c \ubc29\uc2dd\uc774 \ub2ec\ub77c\uc9c4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dart Source -&gt; Dart Compiler -&gt; Native \/ JavaScript \/ WebAssembly -&gt; Runtime\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 Flutter\uc5d0\uc11c\ub294 Dart \ucf54\ub4dc\uac00 \ub124\uc774\ud2f0\ube0c \ucf54\ub4dc\ub85c \ucef4\ud30c\uc77c\ub418\uc5b4 \uc2e4\ud589\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub97c \uc774\ud574\ud560 \ub54c\ub294 \ub2e8\uc21c\ud788 \ubb38\ubc95\uc744 \uc678\uc6b0\uae30\ubcf4\ub2e4 <strong>\uac1d\uccb4 \ubaa8\ub378, \ud0c0\uc785 \uc2dc\uc2a4\ud15c, Null Safety, \ube44\ub3d9\uae30 \ucc98\ub9ac, \uceec\ub809\uc158, \ud074\ub798\uc2a4 \uad6c\uc870<\/strong>\ub97c \uc911\uc2ec\uc73c\ub85c \ubcf4\ub294 \ud3b8\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ubcc0\uc218\uc640 \ud0c0\uc785<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 \uc815\uc801 \ud0c0\uc785 \uc5b8\uc5b4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int health = 100;\ndouble speed = 3.5;\nString name = 'Player';\nbool alive = true;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud0c0\uc785\uc744 \uc9c1\uc811 \uc801\uc9c0 \uc54a\uace0 <code>var<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var health = 100;\nvar name = 'Player';\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uacbd\uc6b0 Dart\uac00 \ucd08\uae30\uac12\uc744 \ubcf4\uace0 \ud0c0\uc785\uc744 \ucd94\ub860\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>health -&gt; int\nname -&gt; String\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>var<\/code>\ub97c \uc0ac\uc6a9\ud588\ub2e4\uace0 \ud574\uc11c \ub3d9\uc801 \ud0c0\uc785\uc774 \ub418\ub294 \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var health = 100;\n\n\/\/ health = '100'; \/\/ \uc624\ub958\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>health<\/code>\ub294 \uc5ec\uc804\ud788 <code>int<\/code>\ub85c \ucd94\ub860\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">final\uacfc const<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\uc11c \ubcc0\uc218\uc758 \ubcc0\uacbd \uac00\ub2a5\uc131\uc744 \uc81c\uc5b4\ud560 \ub54c <code>final<\/code>\uacfc <code>const<\/code>\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final name = 'Player';\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>final<\/code> \ubcc0\uc218\ub294 \ud55c \ubc88 \uac12\uc744 \ud560\ub2f9\ud55c \ub4a4 \ub2e4\uc2dc \ud560\ub2f9\ud560 \uc218 \uc5c6\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const maxHealth = 100;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>const<\/code>\ub294 \ucef4\ud30c\uc77c \ud0c0\uc784 \uc0c1\uc218\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub458\uc758 \ucc28\uc774\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc774\ud574\ud558\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final -&gt; \ub7f0\ud0c0\uc784\uc5d0 \ud55c \ubc88 \uacb0\uc815 -&gt; \uc774\ud6c4 \ubcc0\uacbd \ubd88\uac00\nconst -&gt; \ucef4\ud30c\uc77c \ud0c0\uc784\uc5d0 \uacb0\uc815 -&gt; \uc0c1\uc218 \uac1d\uccb4\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final now = DateTime.now();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uac83\uc740 \uc2e4\ud589\ud560 \ub54c \uac12\uc774 \uacb0\uc815\ub418\ubbc0\ub85c <code>const<\/code>\uac00 \ub420 \uc218 \uc5c6\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const maxHealth = 100;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc98\ub7fc \ucef4\ud30c\uc77c \uc2dc\uc810\uc5d0 \uac12\uc744 \uc54c \uc218 \uc788\ub294 \uacbd\uc6b0 <code>const<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c\ub294 <code>const<\/code>\uac00 \uc704\uc82f\uc744 \ube44\ub86f\ud55c \uac1d\uccb4\ub97c \ubd88\ubcc0\uc73c\ub85c \uad6c\uc131\ud558\ub294 \ub370 \uc790\uc8fc \uc0ac\uc6a9\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uae30\ubcf8 \ud0c0\uc785<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ub300\ud45c\uc801\uc778 \uae30\ubcf8 \ud0c0\uc785\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int \/ double \/ num \/ String \/ bool \/ List \/ Set \/ Map \/ Record\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubaa8\ub4e0 \ud0c0\uc785\uc740 \uac1d\uccb4 \ubaa8\ub378\uc5d0 \uc18d\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int value = 10;\n\nprint(value.isEven);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc815\uc218 \uc5ed\uc2dc \uba54\uc11c\ub4dc\uc640 \ud504\ub85c\ud37c\ud2f0\ub97c \uac00\uc9c4 \uac1d\uccb4\ucc98\ub7fc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">num<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>int<\/code>\uc640 <code>double<\/code>\uc758 \uc0c1\uc704 \uac1c\ub150\uc73c\ub85c <code>num<\/code>\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>num value = 10;\n\nvalue = 10.5;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>num<\/code>\uc740 \uc815\uc218\uc640 \uc2e4\uc218\ub97c \ubaa8\ub450 \ud45c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>num -&gt; int \/ double\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc815\ud655\ud788 \uc815\uc218\ub9cc \ud544\uc694\ud55c \uacbd\uc6b0 <code>int<\/code>, \uc2e4\uc218\ub9cc \ud544\uc694\ud55c \uacbd\uc6b0 <code>double<\/code>\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \ud0c0\uc785 \uc758\ub3c4\ub97c \uba85\ud655\ud558\uac8c \ud45c\ud604\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">String<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc790\uc5f4\uc740 <code>String<\/code>\uc73c\ub85c \ud45c\ud604\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String name = 'Player';\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc790\uc5f4 \ubcf4\uac04\uc744 \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int level = 10;\n\nprint('Level: $level');\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud45c\ud604\uc2dd\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>print('Next Level: ${level + 1}');\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc790\uc5f4\uc744 \uc870\ud569\ud560 \ub54c \ubcc4\ub3c4\uc758 \ud3ec\ub9f7 \ud568\uc218\ub97c \ub0a8\ubc1c\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub418\ub294 \uac83\uc774 \ud3b8\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Nullable Type\uacfc Null Safety<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\uc11c \uc0c1\ub2f9\ud788 \uc911\uc694\ud55c \ubd80\ubd84\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77c\ubc18\uc801\uc778 \ubcc0\uc218\ub294 \uae30\ubcf8\uc801\uc73c\ub85c <code>null<\/code>\uc744 \uac00\uc9c8 \uc218 \uc5c6\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String name = 'Player';\n\n\/\/ name = null; \/\/ \uc624\ub958\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>null<\/code>\uc744 \ud5c8\uc6a9\ud558\ub824\uba74 <code>?<\/code>\ub97c \ubd99\uc778\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String? name;\n\nname = null;\nname = 'Player';\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud0c0\uc785 \uad6c\uc870\uac00 \ub2e4\uc74c\ucc98\ub7fc \ub2ec\ub77c\uc9c4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String -&gt; \ubb38\uc790\uc5f4\ub9cc \uac00\ub2a5\nString? -&gt; \ubb38\uc790\uc5f4 \ub610\ub294 null\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uac83\uc744 <strong>Null Safety<\/strong>\ub77c\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Null \uad00\ub828 \uc624\ub958\ub97c \ub7f0\ud0c0\uc784\uc774 \uc544\ub2c8\ub77c \uac00\ub2a5\ud55c \ub9ce\uc740 \uacbd\uc6b0 \ucef4\ud30c\uc77c \ub2e8\uacc4\uc5d0\uc11c \uc7a1\ub3c4\ub85d \ub9cc\ub4e0 \uad6c\uc870\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Null \ucc98\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nullable \uac12\uc744 \uc0ac\uc6a9\ud560 \ub54c\ub294 null\uc77c \uac00\ub2a5\uc131\uc744 \uace0\ub824\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String? name;\n\nif (name != null) {\n  print(name.length);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 \uc870\uac74\ubb38\uc744 \ud655\uc778\ud55c \ub4a4 \ud574\ub2f9 \ubc94\uc704\uc5d0\uc11c <code>name<\/code>\uc744 non-null\ub85c \ud310\ub2e8\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">null-aware operator\ub3c4 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String? name;\n\nprint(name?.length);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>name<\/code>\uc774 <code>null<\/code>\uc774\uba74 <code>length<\/code>\uc5d0 \uc811\uadfc\ud558\uc9c0 \uc54a\uace0 <code>null<\/code>\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8\uac12\uc774 \ud544\uc694\ud558\ub2e4\uba74 <code>??<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String? name;\n\nfinal displayName = name ?? 'Unknown';\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Null Assertion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>!<\/code>\ub97c \uc0ac\uc6a9\ud558\uba74 \uac1c\ubc1c\uc790\uac00 \ud574\ub2f9 \uac12\uc774 null\uc774 \uc544\ub2c8\ub77c\uace0 \uba85\uc2dc\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>String? name;\n\nprint(name!.length);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc81c\ub294 \uc2e4\uc81c\ub85c <code>name<\/code>\uc774 null\uc774\uba74 \ub7f0\ud0c0\uc784 \uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c <code>!<\/code>\ub294 null\uc774 \uc544\ub2c8\ub77c\ub294 \uac83\uc744 \ud655\uc2e4\ud788 \uc54c\uace0 \uc788\uc744 \ub54c \uc0ac\uc6a9\ud558\ub294 \ud3b8\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>? -&gt; null \uac00\ub2a5\n! -&gt; \uac1c\ubc1c\uc790\uac00 null\uc774 \uc544\ub2c8\ub77c\uace0 \ubcf4\uc7a5\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>!<\/code>\ub97c \uc2b5\uad00\uc801\uc73c\ub85c \ubd99\uc774\ub294 \uac83\uc740 Null Safety\uc758 \uc7a5\uc810\uc744 \uc5c6\uc560\ub294 \ubc29\ud5a5\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">List<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ubc30\uc5f4\uc5d0 \ud574\ub2f9\ud558\ub294 \uc790\ub8cc\uad6c\uc870\ub294 <code>List<\/code>\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>List&lt;int&gt; scores = &#91;10, 20, 30];\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud0c0\uc785 \ucd94\ub860\ub3c4 \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var scores = &#91;10, 20, 30];\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac12\uc744 \ucd94\uac00\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scores.add(40);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc778\ub371\uc2a4\ub85c \uc811\uadfc\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>print(scores&#91;0]);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub978 \uc5b8\uc5b4\uc758 \ub3d9\uc801 \ubc30\uc5f4\uacfc \ube44\uc2b7\ud55c \uc5ed\ud560\uc744 \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Set<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc911\ubcf5\uc744 \ud5c8\uc6a9\ud558\uc9c0 \uc54a\ub294 \uceec\ub809\uc158\uc740 <code>Set<\/code>\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Set&lt;int&gt; ids = {1, 2, 3};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc911\ubcf5\ub41c \uac12\uc744 \ub123\uc5b4\ub3c4 \ud558\ub098\ub9cc \uc720\uc9c0\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var ids = {1, 2, 3, 3};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9d1\ud569 \uc5f0\uc0b0\ub3c4 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final a = {1, 2, 3};\nfinal b = {2, 3, 4};\n\nprint(a.intersection(b));\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc911\ubcf5 \uc81c\uac70\uac00 \ud544\uc694\ud558\uac70\ub098 \uc9d1\ud569 \uae30\ubc18\uc758 \ucc98\ub9ac\uac00 \ud544\uc694\ud560 \ub54c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Map<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Key\uc640 Value\ub97c \uc800\uc7a5\ud558\ub294 \uc790\ub8cc\uad6c\uc870\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Map&lt;String, int&gt; stats = {\n  'health': 100,\n  'mana': 50,\n};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac12\uc744 \uac00\uc838\uc62c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>print(stats&#91;'health']);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c8\ub85c\uc6b4 \uac12\uc744 \ucd94\uac00\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>stats&#91;'level'] = 10;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">JSON \ub370\uc774\ud130\ub97c \ub2e4\ub8f0 \ub54c\ub3c4 <code>Map<\/code>\uc774 \uc790\uc8fc \ub4f1\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Collection If<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 \uceec\ub809\uc158 \ub0b4\ubd80\uc5d0\uc11c \uc870\uac74\ubb38\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final items = &#91;\n  'Sword',\n  'Shield',\n  if (hasPotion) 'Potion',\n];\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc870\uac74\uc5d0 \ub530\ub77c \ub9ac\uc2a4\ud2b8\uc758 \ud56d\ubaa9\uc744 \ucd94\uac00\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c UI \uc704\uc82f \ubaa9\ub85d\uc744 \uad6c\uc131\ud560 \ub54c \ud2b9\ud788 \uc790\uc8fc \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Collection For<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\ubcf5\ubb38\uc744 \uceec\ub809\uc158 \ub0b4\ubd80\uc5d0 \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final numbers = &#91;\n  for (var i = 0; i &lt; 5; i++) i,\n];\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874 \ubc29\uc2dd\uc73c\ub85c \uc791\uc131\ud558\uba74 \ubcc4\ub3c4\uc758 \ub9ac\uc2a4\ud2b8\ub97c \ub9cc\ub4e4\uace0 <code>add()<\/code>\ub97c \ubc18\ubcf5\ud574\uc57c \ud558\uc9c0\ub9cc \uceec\ub809\uc158 \ubb38\ubc95\uc744 \uc774\uc6a9\ud558\uba74 \ub370\uc774\ud130 \uc0dd\uc131 \uc790\uccb4\ub97c \ud45c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud568\uc218<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ud568\uc218 \ubb38\ubc95\uc740 \ube44\uad50\uc801 \ub2e8\uc21c\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int add(int a, int b) {\n  return a + b;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\ud658 \ud0c0\uc785\uc744 \uc0dd\ub7b5\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc \uba85\ud655\ud55c \ucf54\ub4dc\uc5d0\uc11c\ub294 \ud544\uc694\ud55c \uacbd\uc6b0 \ud0c0\uc785\uc744 \uba85\uc2dc\ud558\ub294 \ud3b8\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var result = add(10, 20);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\uc11c \ud568\uc218 \uc5ed\uc2dc \uac1d\uccb4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c \ud568\uc218\ub97c \ubcc0\uc218\uc5d0 \uc800\uc7a5\ud558\uac70\ub098 \ub2e4\ub978 \ud568\uc218\uc5d0 \uc804\ub2ec\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int add(int a, int b) {\n  return a + b;\n}\n\nfinal operation = add;\n\nprint(operation(10, 20));\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Arrow Function<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud568\uc218 \ubcf8\ubb38\uc774 \ud558\ub098\uc758 \ud45c\ud604\uc2dd\uc73c\ub85c \ub05d\ub09c\ub2e4\uba74 <code>=&gt;<\/code> \ubb38\ubc95\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int add(int a, int b) =&gt; a + b;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c\ub3c4 \ucf5c\ubc31\uc744 \uc791\uc131\ud560 \ub54c \uc790\uc8fc \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>items.map((item) =&gt; item.name);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e8\uc21c\ud55c \ud568\uc218\uc5d0\uc11c\ub294 \ucf54\ub4dc\uac00 \uc9e7\uc544\uc9c0\uc9c0\ub9cc \ubcf5\uc7a1\ud55c \ub85c\uc9c1\uae4c\uc9c0 \ud55c \uc904\uc5d0 \ub123\ub294 \uac83\uc740 \uac00\ub3c5\uc131\uc774 \uc88b\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Named Parameter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 named parameter\ub97c \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void createPlayer({\n  required String name,\n  int level = 1,\n}) {\n  print(name);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud638\ucd9c\ud560 \ub54c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>createPlayer(\n  name: 'Knight',\n  level: 10,\n);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9e4\uac1c\ubcc0\uc218\uc758 \uc758\ubbf8\uac00 \ud638\ucd9c\ubd80\uc5d0\uc11c \uba85\ud655\ud558\uac8c \ub4dc\ub7ec\ub09c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter \uc704\uc82f \uc0dd\uc131\uc790\uac00 \ub2e4\uc74c\uacfc \uac19\uc740 \ud615\ud0dc\ub97c \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 \uc774\uc720\ub3c4 \uc774\uac83\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Widget(\n  width: 100,\n  height: 200,\n);\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">required<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Named parameter\ub97c \ud544\uc218\ub85c \ub9cc\ub4e4\uace0 \uc2f6\ub2e4\uba74 <code>required<\/code>\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void createPlayer({\n  required String name,\n}) {\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c \ub2e4\uc74c \ud638\ucd9c\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>createPlayer();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc74c\uacfc \uac19\uc774 \ud638\ucd9c\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>createPlayer(name: 'Player');\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4 \uc0dd\uc131\uc774\ub098 \ud568\uc218 \ud638\ucd9c\uc5d0\uc11c \ud544\uc694\ud55c \uac12\uacfc \uc120\ud0dd \uac00\ub2a5\ud55c \uac12\uc744 \uba85\ud655\ud558\uac8c \uad6c\ubd84\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Class<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 \uac1d\uccb4\uc9c0\ud5a5 \uc5b8\uc5b4\uc774\uba70 \ud074\ub798\uc2a4\uac00 \uae30\ubcf8\uc801\uc778 \ucf54\ub4dc \uad6c\uc870\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player {\n  String name;\n  int health;\n\n  Player(this.name, this.health);\n\n  void attack() {\n    print('Attack');\n  }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4\ub97c \uc0dd\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final player = Player('Knight', 100);\n\nplayer.attack();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0dd\uc131\uc790\uc640 \uba54\uc11c\ub4dc, \ud544\ub4dc\ub97c \ud558\ub098\uc758 \uac1d\uccb4\ub85c \ubb36\uc744 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Constructor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\uc11c\ub294 \uc0dd\uc131\uc790 \ubb38\ubc95\uc774 \uc0c1\ub2f9\ud788 \uac04\uacb0\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player {\n  final String name;\n  final int health;\n\n  Player(this.name, this.health);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ucf54\ub4dc\ub294 \uc0dd\uc131\uc790 \ub9e4\uac1c\ubcc0\uc218\ub97c \ubc1b\uc544 \ud544\ub4dc\uc5d0 \ud560\ub2f9\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Named parameter\ub97c \uc774\uc6a9\ud558\uba74 \ub2e4\uc74c\ucc98\ub7fc \uc791\uc131\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player {\n  final String name;\n  final int health;\n\n  Player({\n    required this.name,\n    required this.health,\n  });\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter \ucf54\ub4dc\uc5d0\uc11c \ub9e4\uc6b0 \uc790\uc8fc \ubcf4\uac8c \ub418\ub294 \ud328\ud134\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Getter\uc640 Setter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\uc11c\ub294 getter\uc640 setter\ub97c \uc815\uc758\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player {\n  int health = 100;\n\n  bool get isAlive =&gt; health &gt; 0;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\ud560 \ub54c\ub294 \uba54\uc11c\ub4dc\ucc98\ub7fc <code>()<\/code>\ub97c \ubd99\uc774\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (player.isAlive) {\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uacc4\uc0b0\ub41c \uac12\uc744 \ud504\ub85c\ud37c\ud2f0\ucc98\ub7fc \ub178\ucd9c\ud558\uace0 \uc2f6\uc744 \ub54c \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc0c1\uc18d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 <code>extends<\/code>\ub97c \uc774\uc6a9\ud574 \ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Character {\n  void attack() {\n    print('Attack');\n  }\n}\n\nclass Player extends Character {\n  @override\n  void attack() {\n    print('Player Attack');\n  }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubd80\ubaa8 \ud074\ub798\uc2a4\uc758 \uba54\uc11c\ub4dc\ub97c \uc7ac\uc815\uc758\ud560 \ub54c <code>@override<\/code>\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Abstract Class<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd94\uc0c1 \ud074\ub798\uc2a4\ub294 \uc9c1\uc811 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uae30\ubcf4\ub2e4 \uacf5\ud1b5 \uc778\ud130\ud398\uc774\uc2a4\ub098 \uae30\ubcf8 \uad6c\ud604\uc744 \uc81c\uacf5\ud558\ub294 \uc6a9\ub3c4\ub85c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>abstract class Character {\n  void attack();\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\uc18d\ubc1b\uc740 \ud074\ub798\uc2a4\uc5d0\uc11c \uad6c\ud604\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player extends Character {\n  @override\n  void attack() {\n    print('Player Attack');\n  }\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Interface<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\uc11c\ub294 \ubcc4\ub3c4\uc758 <code>interface<\/code> \ud0a4\uc6cc\ub4dc\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc544\ub3c4 \ubaa8\ub4e0 \ud074\ub798\uc2a4\uac00 \uc554\ubb35\uc801\uc73c\ub85c \uc778\ud130\ud398\uc774\uc2a4 \uc5ed\ud560\uc744 \ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Character {\n  void attack() {}\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub978 \ud074\ub798\uc2a4\uc5d0\uc11c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player implements Character {\n  @override\n  void attack() {\n    print('Player Attack');\n  }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>extends<\/code>\uc640 <code>implements<\/code>\uc758 \ucc28\uc774\ub294 \uc911\uc694\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>extends -&gt; \ubd80\ubaa8 \ud074\ub798\uc2a4\uc758 \uad6c\ud604\uc744 \uc0c1\uc18d\nimplements -&gt; \uc778\ud130\ud398\uc774\uc2a4\uac00 \uc694\uad6c\ud558\ub294 \uad6c\uc870\ub97c \uad6c\ud604\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Mixin<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ud2b9\uc9d5\uc801\uc778 \uae30\ub2a5 \uc911 \ud558\ub098\uac00 <code>mixin<\/code>\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\uc18d \uad00\uacc4\uac00 \uc544\ub2cc \uae30\ub2a5\uc744 \uc5ec\ub7ec \ud074\ub798\uc2a4\uc5d0 \uc7ac\uc0ac\uc6a9\ud558\uace0 \uc2f6\uc744 \ub54c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mixin Flyable {\n  void fly() {\n    print('Fly');\n  }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud074\ub798\uc2a4\uc5d0\uc11c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player with Flyable {\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final player = Player();\n\nplayer.fly();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>mixin<\/code>\uc740 \uc5ec\ub7ec \ud074\ub798\uc2a4\uc5d0 \uacf5\ud1b5 \uae30\ub2a5\uc744 \uc870\ud569\ud560 \ub54c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Enum<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 enum\uc744 \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enum State {\n  idle,\n  move,\n  attack,\n  dead,\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>State state = State.idle;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac8c\uc784 \uc0c1\ud0dc, \ub124\ud2b8\uc6cc\ud06c \uc0c1\ud0dc, UI \uc0c1\ud0dc\ucc98\ub7fc \uc815\ud574\uc9c4 \uac12 \uc9d1\ud569\uc744 \ud45c\ud604\ud560 \ub54c \uc801\ud569\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 enum\uc740 \ub2e8\uc21c\ud55c \uc22b\uc790 \uc0c1\uc218 \uc9d1\ud569\ubcf4\ub2e4 \uae30\ub2a5\uc774 \ub9ce\uc73c\uba70 \ud504\ub85c\ud37c\ud2f0\uc640 \uba54\uc11c\ub4dc\ub3c4 \uc815\uc758\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Record<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\ub294 \uc5ec\ub7ec \uac12\uc744 \ud558\ub098\uc758 \uac12\uc73c\ub85c \ubb36\uc744 \uc218 \uc788\ub294 Record\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(String, int) playerInfo = ('Knight', 10);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uad6c\uc870 \ubd84\ud574\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final (name, level) = playerInfo;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Named field\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>({String name, int level}) player = (\n  name: 'Knight',\n  level: 10,\n);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac04\ub2e8\ud55c \uc5ec\ub7ec \uac12\uc758 \ubb36\uc74c\uc744 \ub9cc\ub4e4 \ub54c \ubcc4\ub3c4\uc758 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4 \ud544\uc694\ub97c \uc904\uc77c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Extension<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874 \ud074\ub798\uc2a4\uc5d0 \uba54\uc11c\ub4dc\ub098 getter\ub97c \ucd94\uac00\ud558\ub294 \uac83\ucc98\ub7fc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>extension StringExtension on String {\n  bool get isBlank =&gt; trim().isEmpty;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final text = '';\n\nprint(text.isBlank);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874 \ud074\ub798\uc2a4\ub97c \uc9c1\uc811 \uc218\uc815\ud558\uc9c0 \uc54a\uace0 \ud3b8\uc758 \uae30\ub2a5\uc744 \ucd94\uac00\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Generic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub3c4 Generic\uc744 \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Box&lt;T&gt; {\n  T value;\n\n  Box(this.value);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final intBox = Box&lt;int&gt;(10);\nfinal stringBox = Box&lt;String&gt;('Hello');\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uceec\ub809\uc158\uc5d0\uc11c\ub3c4 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>List&lt;Player&gt; players = &#91;];\nMap&lt;String, Player&gt; players = {};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Generic\uc744 \uc0ac\uc6a9\ud558\uba74 \uc5ec\ub7ec \ud0c0\uc785\uc5d0\uc11c \uc7ac\uc0ac\uc6a9\ud558\uba74\uc11c \ud0c0\uc785 \uc548\uc815\uc131\uc744 \uc720\uc9c0\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Future<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ub300\ud45c\uc801\uc778 \ube44\ub3d9\uae30 \ucc98\ub9ac \ud0c0\uc785\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Future&lt;String&gt; loadData() async {\n  return 'Data';\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Future&lt;T&gt;<\/code>\ub294 \ubbf8\ub798\uc758 \uc5b4\ub290 \uc2dc\uc810\uc5d0 <code>T<\/code> \uac12\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4\ub294 \uc758\ubbf8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Future&lt;T&gt; -&gt; \ud604\uc7ac\ub294 \uacb0\uacfc \uc5c6\uc74c -&gt; \ube44\ub3d9\uae30 \uc791\uc5c5 -&gt; T \uacb0\uacfc\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud30c\uc77c, \ub124\ud2b8\uc6cc\ud06c, DB \ub4f1 \uc2dc\uac04\uc774 \uac78\ub9ac\ub294 \uc791\uc5c5\uc5d0\uc11c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">async\uc640 await<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ube44\ub3d9\uae30 \ud568\uc218\ub97c \ub9cc\ub4e4 \ub54c <code>async<\/code>\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Future&lt;void&gt; load() async {\n  final data = await loadData();\n\n  print(data);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>await<\/code>\ub294 Future\uac00 \uc644\ub8cc\ub420 \ub54c\uae4c\uc9c0 \ud574\ub2f9 \ube44\ub3d9\uae30 \ud568\uc218\uc758 \uc2e4\ud589\uc744 \uc7a0\uc2dc \uc911\ub2e8\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc911\uc694\ud55c \uac83\uc740 \uc774\uac83\uc774 \uc77c\ubc18\uc801\uc778 \uc2a4\ub808\ub4dc \ube14\ub85c\ud0b9\uacfc \uac19\uc740 \uac1c\ub150\uc740 \uc544\ub2c8\ub77c\ub294 \uc810\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async function -&gt; await -&gt; \ud604\uc7ac \uc791\uc5c5 \uc77c\uc2dc \uc911\ub2e8 -&gt; \ub2e4\ub978 \uc774\ubca4\ud2b8 \ucc98\ub9ac \uac00\ub2a5 -&gt; Future \uc644\ub8cc -&gt; \ud568\uc218 \uc7ac\uac1c\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ube44\ub3d9\uae30 \ucf54\ub4dc\ub294 Event Loop \uae30\ubc18\uc73c\ub85c \ub3d9\uc791\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Stream<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Future<\/code>\uac00 \ud558\ub098\uc758 \uacb0\uacfc\ub97c \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ubc1b\ub294 \uad6c\uc870\ub77c\uba74 <code>Stream<\/code>\uc740 \uc5ec\ub7ec \uac1c\uc758 \uac12\uc744 \uc2dc\uac04\uc5d0 \ub530\ub77c \ubc1b\uc744 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Future -&gt; Result 1\uac1c\nStream -&gt; Result \uc5ec\ub7ec \uac1c\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Stream&lt;int&gt; count() async* {\n  yield 1;\n  yield 2;\n  yield 3;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>async*<\/code>\ub294 Stream\uc744 \uc0dd\uc131\ud558\ub294 \ube44\ub3d9\uae30 Generator\ub97c \ub9cc\ub4e4 \ub54c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>await for (final value in count()) {\n  print(value);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub124\ud2b8\uc6cc\ud06c \uc774\ubca4\ud2b8, \uc13c\uc11c \ub370\uc774\ud130, UI \uc774\ubca4\ud2b8 \ub4f1 \uc9c0\uc18d\uc801\uc73c\ub85c \ub370\uc774\ud130\uac00 \ubc1c\uc0dd\ud558\ub294 \uc0c1\ud669\uc5d0 \uc801\ud569\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Isolate<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ubcd1\ub82c \uc2e4\ud589 \uad6c\uc870\uc5d0\uc11c \uc911\uc694\ud55c \uac1c\ub150\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 \uc77c\ubc18\uc801\uc778 \uacf5\uc720 \uba54\ubaa8\ub9ac \uae30\ubc18 Thread \ubaa8\ub378 \ub300\uc2e0 <strong>Isolate<\/strong>\ub77c\ub294 \ub3c5\ub9bd\uc801\uc778 \uc2e4\ud589 \ub2e8\uc704\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac01 Isolate\ub294 \uc790\uccb4\uc801\uc778 \uba54\ubaa8\ub9ac \uacf5\uac04\uacfc Event Loop\ub97c \uac00\uc9c4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Isolate A -&gt; Memory + Event Loop\nIsolate B -&gt; Memory + Event Loop\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isolate\ub07c\ub9ac\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \uba54\ubaa8\ub9ac\ub97c \uc9c1\uc811 \uacf5\uc720\ud558\uc9c0 \uc54a\uace0 \uba54\uc2dc\uc9c0\ub97c \uc8fc\uace0\ubc1b\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Isolate A -&gt; Message -&gt; Isolate B\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CPU\ub97c \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 \uc791\uc5c5\uc744 \ubcc4\ub3c4\uc758 Isolate\uc5d0\uc11c \ucc98\ub9ac\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c \ud65c\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Event Loop<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \ube44\ub3d9\uae30 \uc2e4\ud589 \uad6c\uc870\ub294 Event Loop\ub97c \uc911\uc2ec\uc73c\ub85c \uc774\ud574\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Event Queue -&gt; Event Loop -&gt; Dart Code\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ube44\ub3d9\uae30 \uc791\uc5c5\uc774 \uc644\ub8cc\ub418\uba74 \ud574\ub2f9 \uc791\uc5c5\uc758 \uacb0\uacfc\uac00 \uc774\ubca4\ud2b8 \ucc98\ub9ac \ud750\ub984\uc5d0 \ub4e4\uc5b4\uc624\uace0 Event Loop\uac00 \uc774\ub97c \ucc98\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c \ub124\ud2b8\uc6cc\ud06c \uc694\uccad \uac19\uc740 I\/O \uc791\uc5c5\uc744 \uae30\ub2e4\ub9ac\ub294 \ub3d9\uc548 \ud504\ub85c\uadf8\ub7a8 \uc804\uccb4\uac00 \uba48\ucd94\ub294 \uad6c\uc870\uac00 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c UI\uac00 \uacc4\uc18d \ubc18\uc751\ud560 \uc218 \uc788\ub294 \uac83\ub3c4 \uc774 \ube44\ub3d9\uae30 \uc2e4\ud589 \ubaa8\ub378\uacfc \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uba54\ubaa8\ub9ac \uad00\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 \uc77c\ubc18\uc801\uc73c\ub85c Garbage Collection\uc744 \uc0ac\uc6a9\ud558\ub294 \uc5b8\uc5b4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1c\ubc1c\uc790\uac00 \uc9c1\uc811 <code>free()<\/code> \uac19\uc740 \ud568\uc218\ub97c \ud638\ucd9c\ud574 \uac1d\uccb4\uc758 \uba54\ubaa8\ub9ac\ub97c \ud574\uc81c\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>final player = Player('Knight', 100);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4\uac00 \ub354 \uc774\uc0c1 \uc811\uadfc \uac00\ub2a5\ud55c \uc0c1\ud0dc\uac00 \uc544\ub2c8\uba74 Garbage Collector\uac00 \ud68c\uc218\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Object -&gt; Reference \uc874\uc7ac -&gt; \uc0ac\uc6a9 \uac00\ub2a5\nReference \uc81c\uac70 -&gt; Unreachable -&gt; Garbage Collection\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c C++\ucc98\ub7fc \uba54\ubaa8\ub9ac \ud574\uc81c \uc2dc\uc810\uc744 \uc9c1\uc811 \uad00\ub9ac\ud558\ub294 \uac83\uacfc\ub294 \uad6c\uc870\uac00 \ub2e4\ub974\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Isolate\uc640 \uba54\ubaa8\ub9ac \uad00\ub9ac\uc758 \uad00\uacc4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 Isolate\ub294 \uc11c\ub85c \uba54\ubaa8\ub9ac\ub97c \uc9c1\uc811 \uacf5\uc720\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Isolate A -&gt; Message -&gt; Isolate B\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uad6c\uc870 \ub355\ubd84\uc5d0 \uc77c\ubc18\uc801\uc778 \uacf5\uc720 \uba54\ubaa8\ub9ac Thread\uc5d0\uc11c \ubc1c\uc0dd\ud558\ub294 \ub370\uc774\ud130 \uacbd\uc7c1 \ubb38\uc81c\ub97c \uc904\uc77c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\uc2e0 Isolate \uac04 \ud1b5\uc2e0 \ube44\uc6a9\uacfc \ub370\uc774\ud130 \uc804\ub2ec \ubc29\uc2dd\uc744 \uace0\ub824\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ube44\ub3d9\uae30\uc640 \ubcd1\ub82c \uc2e4\ud589\uc740 \ub2e4\ub974\ub2e4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub97c \uc774\ud574\ud560 \ub54c \uc774 \ub458\uc744 \uad6c\ubd84\ud560 \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async \/ await -&gt; \ube44\ub3d9\uae30 \uc791\uc5c5 -&gt; I\/O \ub300\uae30 \ub3d9\uc548 \ub2e4\ub978 \uc791\uc5c5 \uc218\ud589\nIsolate -&gt; \ubcc4\ub3c4\uc758 \uc2e4\ud589 \ub2e8\uc704 -&gt; CPU \uc791\uc5c5 \ubd84\uc0b0\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub124\ud2b8\uc6cc\ud06c \uc694\uccad\uc744 \uae30\ub2e4\ub9ac\ub294 \uac83\uacfc \uc5ec\ub7ec CPU \ucf54\uc5b4\uc5d0\uc11c \uacc4\uc0b0\uc744 \ub3d9\uc2dc\uc5d0 \uc218\ud589\ud558\ub294 \uac83\uc740 \ub2e4\ub978 \ubb38\uc81c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>async\/await<\/code>\ub9cc \uc0ac\uc6a9\ud55c\ub2e4\uace0 CPU \uc791\uc5c5\uc774 \ubcd1\ub82c \uc2e4\ud589\ub418\ub294 \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dart\uc640 Flutter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac Dart\uac00 \uac00\uc7a5 \ub110\ub9ac \uc0ac\uc6a9\ub418\ub294 \uc601\uc5ed\uc740 Flutter\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uad6c\uc870\ub97c \ubcf4\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Flutter Application -&gt; Dart Code -&gt; Flutter Framework -&gt; Flutter Engine -&gt; Platform\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c\ub294 \ud654\uba74\uc758 UI\ub3c4 Dart \ucf54\ub4dc\ub85c \uc791\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class PlayerWidget extends StatelessWidget {\n  const PlayerWidget({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return const Text('Player');\n  }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc758 Widget \uc5ed\uc2dc Dart \uac1d\uccb4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c Dart\uc758 \ud074\ub798\uc2a4, \uc0dd\uc131\uc790, named parameter, <code>const<\/code>, collection \ubb38\ubc95 \ub4f1\uc774 Flutter \ucf54\ub4dc\uc5d0\uc11c \uacc4\uc18d \ub4f1\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dart\uc640 Flutter\uc5d0\uc11c const\uac00 \ub9ce\uc740 \uc774\uc720<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter \ucf54\ub4dc\ub97c \ubcf4\ub2e4 \ubcf4\uba74 <code>const<\/code>\uac00 \uc0c1\ub2f9\ud788 \uc790\uc8fc \ub4f1\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const Text('Hello');\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c\ub294 \uc704\uc82f\uc744 \ubd88\ubcc0 \uac1d\uccb4\ub85c \uad6c\uc131\ud558\ub294 \ud328\ud134\uc774 \ub9ce\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucef4\ud30c\uc77c \uc2dc\uc810\uc5d0 \uacb0\uc815\ud560 \uc218 \uc788\ub294 \uac1d\uccb4\ub97c <code>const<\/code>\ub85c \ub9cc\ub4e4\uba74 \ub3d9\uc77c\ud55c \uc0c1\uc218 \uac1d\uccb4\ub97c \uc7ac\uc0ac\uc6a9\ud560 \uc218 \uc788\uace0, \uc704\uc82f \ud2b8\ub9ac \uad6c\uc131\uc5d0\uc11c\ub3c4 \ubd88\ud544\uc694\ud55c \uac1d\uccb4 \uc0dd\uc131\uc744 \uc904\uc774\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c Dart\uc758 <code>const<\/code>\ub294 \ub2e8\uc21c\ud55c \ubb38\ubc95 \uae30\ub2a5\uc774 \uc544\ub2c8\ub77c Flutter\uc758 \uc120\uc5b8\uc801 UI \uad6c\uc870\uc640\ub3c4 \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dart\uc758 \uc2e4\ud589 \uad6c\uc870<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub97c \uc804\uccb4\uc801\uc73c\ub85c \ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dart Source -&gt; Compiler -&gt; Native \/ JavaScript \/ WebAssembly -&gt; Runtime\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dart -&gt; Flutter Framework -&gt; Flutter Engine -&gt; Native Platform\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ube44\ub3d9\uae30 \ucc98\ub9ac\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>async \/ await -&gt; Future \/ Stream -&gt; Event Loop\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CPU \uc791\uc5c5\uc744 \ubd84\ub9ac\ud560 \ub54c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Isolate -&gt; \ub3c5\ub9bd Memory -&gt; \ub3c5\ub9bd Event Loop -&gt; Message Passing\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \ubcf4\uba74 Dart\uc758 \uc8fc\uc694 \uae30\ub2a5\ub4e4\uc774 \uac01\uac01 \ub530\ub85c \uc874\uc7ac\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \ud558\ub098\uc758 \uc2e4\ud589 \ubaa8\ub378 \uc548\uc5d0\uc11c \uc5f0\uacb0\ub418\uc5b4 \uc788\ub2e4\ub294 \uac83\uc744 \uc54c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dart\uc758 \uc7a5\uc810<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub294 \ubaa8\ubc14\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ud558\ub098\uc758 \ucf54\ub4dc\ubca0\uc774\uc2a4\ub85c \uac1c\ubc1c\ud558\uae30 \uc704\ud55c Flutter\uc640 \uad81\ud569\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5b8\uc5b4 \uc790\uccb4\ub3c4 \ud604\ub300\uc801\uc778 \uc571 \uac1c\ubc1c\uc5d0 \ud544\uc694\ud55c \uae30\ub2a5\uc744 \uc0c1\ub2f9\uc218 \uac16\ucd94\uace0 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Static Typing \/ Null Safety \/ Async \/ Await \/ Future \/ Stream \/ Generic \/ Mixin \/ Extension \/ Record \/ Pattern Matching\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\ubc95\ub3c4 Java, C#, Kotlin \uacc4\uc5f4 \uac1c\ubc1c\uc790\uc5d0\uac8c \ud06c\uac8c \ub0af\uc124\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 Flutter\uc5d0\uc11c\ub294 \ub2e4\uc74c \uc694\uc18c\ub4e4\uc774 \ud558\ub098\uc758 \uc5b8\uc5b4 \uc548\uc5d0\uc11c \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dart -&gt; Object -&gt; Widget -&gt; State -&gt; Async -&gt; UI\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dart\uc758 \ud55c\uacc4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc758 \uac00\uc7a5 \ud070 \ud55c\uacc4\ub294 \uc5b8\uc5b4 \uc790\uccb4\ubcf4\ub2e4\ub294 \uc0dd\ud0dc\uacc4\uc640 \uc0ac\uc6a9 \ubc94\uc704\uc5d0 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Python\uc774\ub098 JavaScript\ucc98\ub7fc \ub2e4\uc591\ud55c \ubd84\uc57c\uc5d0\uc11c \ub3c5\ub9bd\uc801\uc73c\ub85c \uc0ac\uc6a9\ub418\ub294 \uc5b8\uc5b4\ub294 \uc544\ub2c8\uba70, \ud604\uc7ac Dart\uc758 \ub300\ud45c\uc801\uc778 \uc0ac\uc6a9\ucc98\ub294 \uc0ac\uc2e4\uc0c1 Flutter \uc0dd\ud0dc\uacc4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c Dart\ub97c \uc120\ud0dd\ud55c\ub2e4\ub294 \uac83\uc740 \uc0c1\ub2f9 \ubd80\ubd84 Flutter \uc0dd\ud0dc\uacc4\uae4c\uc9c0 \ud568\uaed8 \uc120\ud0dd\ud55c\ub2e4\ub294 \uc758\ubbf8\uac00 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\ub300\ub85c Flutter\ub97c \uc0ac\uc6a9\ud55c\ub2e4\uba74 Dart\ub294 \uc0c1\ub2f9\ud788 \uc798 \ub9de\ub294\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5b8\uc5b4\uc640 UI \ud504\ub808\uc784\uc6cc\ud06c\uac00 \ud568\uaed8 \uc124\uacc4\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \ube44\ub3d9\uae30 \ucc98\ub9ac, \uac1d\uccb4 \ubaa8\ub378, Widget \uad6c\uc131 \ub4f1\uc774 \uc790\uc5f0\uc2a4\ub7fd\uac8c \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc815\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\ub97c \ud575\uc2ec\ub9cc \ucd94\ub9ac\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Static Typing -&gt; Type Inference -&gt; Null Safety -&gt; Class \/ Interface \/ Mixin -&gt; Generic -&gt; Collection -&gt; Future -&gt; Stream -&gt; Event Loop -&gt; Isolate -&gt; Flutter\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dart\uc5d0\uc11c \ud2b9\ud788 \uae30\uc5b5\ud560 \ub9cc\ud55c \ubd80\ubd84\uc740 <code>final<\/code>, <code>const<\/code>, Null Safety, named parameter, <code>Future<\/code>, <code>Stream<\/code>, <code>Isolate<\/code>\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\ubc95 \uc790\uccb4\ub294 Java\ub098 C#\uacfc \ud06c\uac8c \ub2e4\ub974\uc9c0 \uc54a\ub2e4. \uc624\ud788\ub824 Dart\ub97c \uc81c\ub300\ub85c \uc774\ud574\ud558\ub824\uba74 <strong>\uc5b8\uc5b4 \ubb38\ubc95\ubcf4\ub2e4 \uc2e4\ud589 \ubaa8\ub378\uacfc Flutter\uc640\uc758 \uad00\uacc4<\/strong>\ub97c \ubcf4\ub294 \ud3b8\uc774 \ub0ab\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Dart -&gt; \uc815\uc801 \ud0c0\uc785 + Null Safety -&gt; \uac1d\uccb4\uc9c0\ud5a5 \ucf54\ub4dc -&gt; Future \/ Stream -&gt; Event Loop -&gt; Isolate -&gt; Flutter UI\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d Dart\ub294 <strong>Flutter\ub97c \uc911\uc2ec\uc73c\ub85c \ub124\uc774\ud2f0\ube0c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4e4\uae30 \uc704\ud574 \uc124\uacc4\ub41c \ud604\ub300\uc801\uc778 \uc815\uc801 \ud0c0\uc785 \uac1d\uccb4\uc9c0\ud5a5 \uc5b8\uc5b4<\/strong>\ub77c\uace0 \ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Flutter\uc5d0\uc11c UI\ub97c \uc791\uc131\ud558\ub294 \uac83\ubd80\ud130 \ub124\ud2b8\uc6cc\ud06c \uc694\uccad, \uc0c1\ud0dc \uad00\ub9ac, \ube44\ub3d9\uae30 \ucc98\ub9ac\uae4c\uc9c0 \uc804\ubd80 Dart\ub85c \uc5f0\uacb0\ub418\uae30 \ub54c\ubb38\uc5d0 Flutter \uac1c\ubc1c\uc744 \ud55c\ub2e4\uba74 Widget \ubb38\ubc95\ub9cc \ub530\ub85c \ubc30\uc6b0\ub294 \uac83\ubcf4\ub2e4 Dart\uc758 \ud0c0\uc785 \uc2dc\uc2a4\ud15c\uacfc \ube44\ub3d9\uae30 \uc2e4\ud589 \ubaa8\ub378\uc744 \uba3c\uc800 \uc774\ud574\ud558\ub294 \ud3b8\uc774 \uc7a5\uae30\uc801\uc73c\ub85c \ud6e8\uc52c \ub0ab\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dart\ub294 Google\uc5d0\uc11c \uac1c\ubc1c\ud55c \ubc94\uc6a9 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\ub2e4. \ud604\uc7ac\ub294 Flutter \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c\uc5d0\uc11c \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ub418\uba70, \ubaa8\ubc14\uc77c\ubfd0\ub9cc \uc544\ub2c8\ub77c \uc6f9\uacfc \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uae4c\uc9c0 \ud558\ub098\uc758 \ucf54\ub4dc\ubca0\uc774\uc2a4\ub85c \uac1c\ubc1c\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uacc4\ub418\uc5b4 \uc788\ub2e4. Dart\uc758 \ubb38\ubc95\uc740 Java, C#, JavaScript, Kotlin \ub4f1\uc758 \uc601\ud5a5\uc744 \ubc1b\uc740 \ud615\ud0dc\ub77c \uac1d\uccb4\uc9c0\ud5a5 \uac1c\ubc1c\uc790\uc5d0\uac8c \ube44\uad50\uc801 \uc775\uc219\ud558\ub2e4. \ub3d9\uc2dc\uc5d0 async\/await, Future, Stream, Null Safety \uac19\uc740 \uae30\ub2a5\uc744 \uc5b8\uc5b4 \ucc28\uc6d0\uc5d0\uc11c \uc81c\uacf5\ud55c\ub2e4. Dart \ucf54\ub4dc\ub294 \uc2e4\ud589 \ud658\uacbd\uc5d0 \ub530\ub77c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[50],"tags":[],"class_list":["post-1705","post","type-post","status-publish","format-standard","hentry","category-language"],"_links":{"self":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1705"}],"version-history":[{"count":3,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1705\/revisions"}],"predecessor-version":[{"id":1987,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1705\/revisions\/1987"}],"wp:attachment":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}