{"id":1102,"date":"2020-10-14T09:00:00","date_gmt":"2020-10-14T00:00:00","guid":{"rendered":"http:\/\/mobilelab.khu.ac.kr\/?p=1102"},"modified":"2020-10-14T14:18:51","modified_gmt":"2020-10-14T05:18:51","slug":"dart-programmer-42","status":"publish","type":"post","link":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/","title":{"rendered":"Dart Programmer \ub418\uae30 [42]"},"content":{"rendered":"\n<h4>&lt; Web \uac1c\ubc1c \u2013 Dart for Web &gt;<\/h4>\n\n\n\n<p>\uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h4><strong>&#8220;Hello, World!&#8221; Dart web-only app \uc774\ud574<\/strong><\/h4>\n\n\n\n<p>\uc55e\uc11c &lt; Web \uac1c\ubc1c \u2013 \u201cHello, World!\u201d Dart web-only app &gt;\uc5d0\uc11c Stagehand\uac00 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud55c \uc18c\uc2a4 \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uba3c\uc800 index.html \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;!DOCTYPE html&gt;\n\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=\"utf-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;meta name=\"scaffolded-by\" content=\"https:\/\/github.com\/dart-lang\/stagehand\"&gt;\n    &lt;title&gt;dart4web&lt;\/title&gt;\n    &lt;link rel=\"stylesheet\" href=\"styles.css\"&gt;\n    &lt;link rel=\"icon\" href=\"favicon.ico\"&gt;\n    &lt;script defer src=\"main.dart.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n\n&lt;body&gt;\n\n  &lt;div id=\"output\"&gt;&lt;\/div&gt;\n\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n\n\n\n<p>head \ubd80\ubd84\uc740 \uc77c\ubc18\uc801\uc778 \ub0b4\uc6a9\uc73c\ub85c \ucc44\uc6cc\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4. script\uac00 main.dart.js\ub85c \uc124\uc815\ub418\uc5b4 dart \uc18c\uc2a4 \ud504\ub85c\uadf8\ub7a8\uc774 JavaScript\ub85c \ubcc0\ud658\ub418\uc5b4 \uc2e4\ud589\ub41c\ub2e4\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 JavaScript\uc5d0\uc11c HTML \ucee8\ud150\uce20\ub97c \ub3d9\uc801\uc73c\ub85c \ub2e4\ub8f0\ub54c \uc0ac\uc6a9\ud558\ub294 \uc804\ud615\uc801\uc778 \ud615\ud0dc\ub85c\uc11c, id\ub97c \uac00\uc9c4 \uc601\uc5ed\uc744 \uc120\uc5b8\ud558\uc600\uc73c\ub098, \ucc98\uc74c\uc5d0\ub294 \ube44\uc5b4 \uc788\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc11c \uc6b0\ub9ac\uac00 \ub3d9\uc801\uc73c\ub85c \ucee8\ud150\uce20\ub97c \uc5c5\ub370\uc774\ud2b8\ud560 id\ub294 &#8220;output&#8221; \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uadf8\ub7ec\uba74, \uc774 &#8220;output&#8221;\ub77c\ub294 id\ub97c \uac16\ub294 \uc601\uc5ed\uc744 \uc5c5\ub370\uc774\ud2b8 \ud558\ub294 Dart \ucf54\ub4dc\ub97c \ubcfc \ucc28\ub840\uc785\ub2c8\ub2e4. \ud574\ub2f9 \ucf54\ub4dc\ub294  main.dart\uc5d0 \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import 'dart:html';\n\nvoid main() {\n  querySelector('#output').text = 'Your Dart app is running.';\n}<\/pre>\n\n\n\n<p>\uac00\uc7a5 \uba3c\uc800 Dart \uc5b8\uc5b4\uc758 HTML \uc81c\uc5b4 \ucf54\uc5b4 \ub77c\ub9ac\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 import\ud558\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 main()\uac00 \uc120\uc5b8\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. main()\uc548\uc5d0\ub294 \ud55c\uc904\uc758 \ucf54\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ub2a5\uc740 html \ud654\uc778\uc5d0\uc11c &#8220;output&#8221;\uc744 id\ub85c \uac16\ub294 \uad6c\ubb38\uc744 \ucc3e\uc740\ud6c4(querySelector()), \uadf8 \uc18d\uc5d0 \uc788\ub294 \ubb38\uc790\uc5f4\uc744 &#8220;Your Dart app is running.&#8221;\ub85c \ubc14\uafbc\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ub530\ub77c\uc11c \uc774 \ud504\ub85c\uadf8\ub7a8\uc774 \uc218\ud589\uc774 \ub418\uba74, \ube44\uc5b4\uc788\ub294 \uc601\uc5ed\uc5d0 \uc0c1\uae30 \ubb38\uc790\uc5f4\uc744 \ub3d9\uc801\uc73c\ub85c \uc0bd\uc785\ud558\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uae30\uc11c \uc54c\uc218 \uc788\ub4ef\uc774, HTML\uacfc JavaScript\uac00 \uc5f0\uacb0\ub418\ub294 \ud504\ub85c\uadf8\ub798\ubc0d \ubc29\uc2dd\uacfc \uac70\uc758 \ub3d9\uc77c\ud55c \ubc29\uc2dd\uc73c\ub85c HTML\uacfc Dart \uc18c\uc2a4 \ud504\ub85c\uadf8\ub7a8\uc774 \uc5f0\uacb0\ub418\uc5b4 \uc788\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, JavaScript\uc5d0\uc11c HTML\uc744 \uc81c\uc5b4\ud558\ub294 \ubc29\uc2dd\uc5d0 \uc0c1\uc751\ud558\ub294 \ud568\uc218\ub4e4\uc774 dart:html\uc5d0\uc11c \uc81c\uacf5\uc774 \ub418\uace0 \uc788\ub2e4\ub294 \uac83\uc744 \uc608\uce21\ud560 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ub9c8\uc9c0\ub9c9 \ud655\uc778\uc778 css \ud654\uc77c\uc740 styles.css \ub85c\uc11c, \ub2e4\uc74c\uc758 \ub0b4\uc6a9\uc744 \uac16\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">@import url(https:\/\/fonts.googleapis.com\/css?family=Roboto);\n\nhtml, body {\n  width: 100%;\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  font-family: 'Roboto', sans-serif;\n}\n\n#output {\n  padding: 20px;\n  text-align: center;\n}<\/pre>\n\n\n\n<p>CSS\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc9c0\uc2dd\uc774 \uc788\ub2e4\uba74, \ud2b9\ubcc4\ud788 \uc5b4\ub835\uac70\ub098 \uc778\uc0c1\uc801\uc778 \ucf54\ub4dc\ub294 \uc544\ub2c8\uba70, \uc77c\ubc18\uc801\uc778 \ud615\ud0dc\uc640 \ud3f0\ud2b8\uc5d0 \ub300\ud55c \ubd80\ubd84\uc778 \uac83\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>dart:html\uc744 \ud1b5\ud55c HTML \uc81c\uc5b4<\/h4>\n\n\n\n<p>dart:html\uc744 \uc0ac\uc6a9\ud558\uc5ec html\ub85c \ud45c\uc2dc\ub418\ub294 Web \ucee8\ud150\uce20\ub97c \ub3d9\uc801\uc73c\ub85c \ubcc0\uacbd\ud558\ub294 \ub0b4\uc6a9\uc5d0 \ub300\ud574\uc11c \uc870\uae08 \ub354 \uc774\ud574\ub97c \ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c, main.dart\uc758 \ub0b4\uc6a9\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \ubcc0\uacbd \ud569\ub2c8\ub2e4. \uc774\ub294 Dart\uc758 \uacf5\uc2dd \uc0ac\uc774\ud2b8( <a href=\"https:\/\/dart.dev\/tutorials\/web\/get-started\">https:\/\/dart.dev\/tutorials\/web\/get-started<\/a> )\uc5d0 \uac8c\uc7ac\ub41c \ub0b4\uc6a9\uc744 \uadf8\ub300\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import 'dart:html';\n\nIterable&lt;String&gt; thingsTodo() sync* {\n  var actions = ['Walk', 'Wash', 'Feed'];\n  var pets = ['cats', 'dogs'];\n\n  for (var action in actions) {\n    for (var pet in pets) {\n      if (pet == 'cats' &amp;&amp; action != 'Feed') continue;\n      yield '$action the $pet';\n    }\n  }\n}\n\nvoid addTodoItem(String item) {\n  print(item);\n\n  var listElement = LIElement();\n  listElement.text = item;\n  todoList.children.add(listElement);\n}\n\nUListElement todoList;\n\nvoid main() {\n  todoList = querySelector('#todolist');\n  thingsTodo().forEach(addTodoItem);\n}<\/pre>\n\n\n\n<p>\ub2e4\uc74c\uc73c\ub85c index.html \ud654\uc77c\ub3c4 body \ubd80\ubd84\uc744 \ubcc0\uacbd\ud55c \ub2e4\uc74c\uc758 \ub0b4\uc6a9\uc73c\ub85c \ubcc0\uacbd \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;!DOCTYPE html&gt;\n\n&lt;html&gt;\n&lt;head&gt;\n    &lt;meta charset=\"utf-8\"&gt;\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;meta name=\"scaffolded-by\" content=\"https:\/\/github.com\/dart-lang\/stagehand\"&gt;\n    &lt;title&gt;dart4web&lt;\/title&gt;\n    &lt;link rel=\"stylesheet\" href=\"styles.css\"&gt;\n    &lt;link rel=\"icon\" href=\"favicon.ico\"&gt;\n    &lt;script defer src=\"main.dart.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n\n&lt;body&gt;\n    &lt;h2&gt;A Simple To-Do List&lt;\/h2&gt;\n    &lt;p&gt;Things to do:&lt;\/p&gt;\n    &lt;ul id=\"todolist\"&gt;\n    &lt;\/ul&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n\n\n\n<p>\uba3c\uc800 index.html \ud654\uc77c\uc758 body \ub0b4\uc6a9\uc744 \uc0b4\ud3b4\ubcf4\uba74, \ud5e4\ub354(h2)\ub85c \uc81c\ubaa9\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ubb38\uc7a5(p)\uc73c\ub85c &#8220;Things to do:&#8221;\ub97c \ubb38\uc790\uc5f4\uc744 \ud654\uba74\uc5d0 \ucd9c\ub825\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0 id\ub97c &#8220;todolist&#8221;\ub85c \uc815\uc758\ud55c \ube44\uc5b4 \uc788\ub294 Unnumbered-List\ub97c \uc0dd\uc131\ud558\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc55e\uc11c Hello World \uc608\uc81c\ucc98\ub7fc \uc774 \ubd80\ubd84\uc758 \ub0b4\uc6a9\uc744 Dart \uc5b8\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub3d9\uc801\uc73c\ub85c \ubcc0\uacbd\ud560 \uac83 \uc785\ub2c8\ub2e4. \uc774 \ud504\ub85c\uadf8\ub7a8\uc744 webdev serve \uba85\ub839\uc73c\ub85c \uc218\ud589\ud558\uace0, http:\/\/localhost:8080\uc73c\ub85c \uc811\uc18d\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 Web \ucee8\ud150\uce20\uac00 \ucc44\uc6cc\uc9c0\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"209\" src=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2020\/05\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-05-08-\u110b\u1169\u1112\u116e-8.41.01.png\" alt=\"\" class=\"wp-image-1109\"\/><\/figure><\/div>\n\n\n\n<p>\uc774\ub807\uac8c \ud654\uba74\uc774 \ucc44\uc6cc\uc9c0\uac8c\ub41c \uc774\uc720\ub97c main.dart\ub97c \ud1b5\ud574\uc11c \uc124\uba85 \ud558\uaca0\uc2b5\ub2c8\ub2e4. main.dart \uc548\uc5d0\ub294 main()\uc744 \uc81c\uc678\ud558\uace0 \ub450\uac1c\uc758 \ud568\uc218\uac00 \uc788\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<p>addTodoItem() \ud568\uc218\ub294 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub3c4 \ubb38\uc790\uc5f4\uc744 \ud558\ub098 \ubc1b\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ub514\ubc84\uadf8 \uc6a9\ub3c4\ub97c \uc704\ud574\uc11c print() \ud568\uc218\ub85c \ud654\uba74 \ucd9c\ub825\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. \uc774 \ucd9c\ub825\uc740 Web \ube0c\ub77c\uc6b0\uc800\ub97c \uac1c\ubc1c\uc790 \ubaa8\ub4dc\ub85c \uc218\ud589\ud574\uc11c, JavaScript \ud504\ub85c\uadf8\ub7a8\uc758 \ucd9c\ub825\uc774 \ud45c\uc2dc\ub418\ub294 console \ud0ed\uc744 \uc120\ud0dd\ud558\uba74 \ud655\uc778 \uac00\ub2a5 \ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc758 3\uc904\uc774 \uc218\ud589\ud574\uc57c \ud558\ub294 \ub3d9\uc791\uc778\ub370, \uba3c\uc800 \ube44\uc5b4\uc788\ub294 List Element\ub97c \ud558\ub098 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0, \uc774 List Element\uc758 text \ub0b4\uc6a9\uc744 \uc785\ub825 \ud30c\ub77c\uba54\ud0c0\ub85c \ubc1b\uc740 \ub0b4\uc6a9\uc73c\ub85c \ucc44\uc6b0\uac8c \ub429\ub2c8\ub2e4. \uc774\ub807\uac8c \ucc44\uc6cc\uc9c4 \ubb38\uc790\uc5f4\uc740 HTML \ud654\uc77c\uc778 index.html\uc758 body \ubd80\ubd84\uc778 todolist id \ubd80\ubd84\uc744 \ucc44\uc6b0\uae30 \uc704\ud55c \uc6a9\ub3c4\ub85c \uc0ac\uc6a9\ub418\uc5b4, \ud568\uc218 \uc2e4\ud589\uc2dc \ub9c8\ub2e4 List Element\ub97c \ud558\ub098\uc529 \ucd94\uac00 \ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574\uc11c \uc704\uc758 \ud654\uba74 \ucd9c\ub825\uacfc \uac19\uc774 4\uac1c\uc758 Unnumbered List 4\uac1c\uac00 \ub098\ud0c0\ub098\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>thingsTodo() \ud568\uc218\uac00 \uc2e4\uc9c8\uc801\uc73c\ub85c HTML\uc5d0 \ucd94\uac00\ub418\ub294 4\uac1c\uc758 Unnumbered List Element\ub97c \ub9cc\ub4e4\uc5b4 \ub0b4\ub294 \uae30\ub2a5\uc744 \ud569\ub2c8\ub2e4. \uc774 \ud568\uc218 \uc548\uc5d0\ub294 \ub3d9\uc791\uc744 \uc758\ubbf8\ud558\ub294 \ubb38\uc790\uc5f4 3\uac1c\ub85c \uc774\ub8e8\uc5b4\uc9c4 actions \ub9ac\uc2a4\ud2b8\uc640 \ub3d9\ubb3c\uc744 \ub098\ud0c0\ub0b4\ub294 pets \ub9ac\uc2a4\ud2b8\uac00 \uc788\uc2b5\ub2c8\ub2e4. Nested for \uad6c\ubb38\uc744 \ud1b5\ud574\uc11c, \uc774\ub4e4\uc744 \ub9e4\uce6d\ud558\uac8c \ub418\uba70, pets\uac00 dogs\uc778 \uacbd\uc6b0\ub294 3\uac00\uc9c0 actions\uc5d0 \ubaa8\ub450 \ub9e4\ud551\ud558\uc5ec, &#8220;$action the $pet&#8221;\uc758 \ubb38\uc790\uc5f4\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. pets\uac00 cats \uc778 \uacbd\uc6b0\ub294 \uc624\uc9c1 actions\uc774 &#8220;Feed&#8221;\uc778 \uacbd\uc6b0\uba54\ub098 \ubb38\uc790\uc5f4\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c yield \uad6c\ubb38\uc740 return \uad6c\ubb38\uacfc \uc720\uc0ac\ud558\uac8c \uac12\uc744 \ub9ac\ud134\ud558\ub294 \ubb38\ubc95 \uc785\ub2c8\ub2e4. \ucc28\uc774\uc810\uc740 return\uc774 \ud55c\ubc88\uc5d0 \ud558\ub098\uc758 \uac12\uc744 \uc804\ub2ec\ud558\uace0 \ub9c8\uce5c\ub2e4\uba74, yield \uad6c\ubb38\uc740 generator \uad6c\ubb38\uc73c\ub85c\uc11c, thingsTodo()\uc758 \uacb0\uacfc \uac12\uc774 \ud544\uc694\ud55c \uad6c\ubb38\uc774 \uc2e4\ud589\ub420\ub54c \ub9c8\ub2e4 \uadf8\ub54c \uadf8\ub54c \ud544\uc694\ud55c \uacb0\uacfc \uac12\uc744 \ub9cc\ub4e4\uc5b4\uc11c \ub9ac\ud134\ud558\ub294 \uc810\uc5d0\uc11c \ub2e4\ub985\ub2c8\ub2e4. \uc774\ub97c thingsTodo() \ud568\uc218\uac00 async* \uad6c\ubb38\uc758 \ube44\ub3d9\uae30\uc801\uc778 \ub3d9\uc791\uc744 \ud558\ub294 \ubd80\ubd84\uc5d0\uc11c \uae30\uc778 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc774 \ub450\uac00\uc9c0 \ud568\uc218\ub97c \uc774\ud574\ud55c \uc0c1\ud0dc\uc5d0\uc11c main() \ud568\uc218\ub97c \ubcf4\uba74, \uc774\ud574\uac00 \uc6a9\uc774\ud569\ub2c8\ub2e4. \uc989 main()\uc758 \uccab\ubc88\uc9f8 \uc904\uc5d0\uc11c\ub294 index.html\uc5d0\uc11c \uc815\uc758\ud55c \ube44\uc5b4\uc788\ub294 \uc601\uc5ed\uc744 \uc120\ud0dd\ud558\uac8c \ub418\uace0, \uc5ec\uae30\uc5d0 thingsTodo()\uac00 \uc2e4\ud589\ub418\uba74\uc11c \ub9cc\ub4e4\uc5b4\uc9c0\ub294 \ud558\ub098 \ud558\ub098\uc758 \ubb38\uc790\uc5f4\uc744 \ucd94\uac00\ud558\uac8c \ub418\ub294 \uac83 \uc785\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\ub530\ub77c\uc11c, HTML\/CSS\/JavaScript\ub97c \ud63c\uc6a9\ud558\uc5ec Web \ucf58\ud150\uce20\ub97c \ub2e4\ub8f0\uc218 \uc788\ub294 \uac1c\ubc1c\uc790\ub77c\uba74, JavaScript \ub300\uc2e0 Dart \uc5b8\uc5b4\uc640 dart:html \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud558\uc5ec Web \ucf58\ud150\uce20\ub97c \uc81c\uc5b4\ud558\ub294 \uac83\uc774 \uac00\ub2a5 \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uacb0\ub860\uc801\uc73c\ub85c Dart \uc5b8\uc5b4\ub85c DOM\uc744 \uc0ac\uc6a9\ud558\ub824\uba74, JavaScript\ub97c \ud1b5\ud55c Web \ucee8\ud150\uce20\ub97c \ub2e4\ub8e8\ub294 \uacbd\uc6b0\uc640 \ub3d9\uc77c\ud558\uac8c, Window, Document, Element \ubc0f Node \uc5d0 \ub300\ud574 \uc54c\uc544\uc57c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Window \uac1d\uccb4\ub294 \uc6f9 \ube0c\ub77c\uc6b0\uc800\uc758 \uc2e4\uc81c \uc708\ub3c4\uc6b0\ub97c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uac01 Window\uc5d0\ub294 \ud604\uc7ac \ub85c\ub4dc \ub41c \ubb38\uc11c\ub97c \uac00\ub9ac\ud0a4\ub294 Document \uac1d\uccb4\uac00 \uc788\uc2b5\ub2c8\ub2e4. Window \uac1d\uccb4\uc5d0\ub294 IndexedDB (\ub370\uc774\ud130 \uc800\uc7a5 \uc6a9), requestAnimationFrame (\uc560\ub2c8\uba54\uc774\uc158 \uc6a9) \ub4f1\uacfc \uac19\uc740 \ub2e4\uc591\ud55c API\uc5d0 \ub300\ud55c \uc811\uadfc\uc790\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ud0ed \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uac01 \ud0ed\uc5d0\ub294 \uace0\uc720\ud55c Window \uac1d\uccb4\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Document \uac1d\uccb4\ub97c \uc0ac\uc6a9\ud558\uba74 \ubb38\uc11c \ub0b4\uc5d0\uc11c Element \uac1d\uccb4\ub97c \ub9cc\ub4e4\uace0 \uc870\uc791 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Document \uc790\uccb4\ub294 \uc694\uc18c\uc774\uba70 \uc870\uc791 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>DOM\uc740 Node \ud2b8\ub9ac\ub97c \ubaa8\ub378\ub9c1 \ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c Node\ub294 \uc885\uc885 Element \uc774\uc9c0\ub9cc attributes, test, comment \ubc0f \uae30\ud0c0 DOM \uc720\ud615\uc77c \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ubd80\ubaa8\uac00 \uc5c6\ub294 \ub8e8\ud2b8 \ub178\ub4dc\ub97c \uc81c\uc678\ud558\uace0 DOM\uc758 \uac01 \ub178\ub4dc\uc5d0\ub294 \ud558\ub098\uc758 \ubd80\ubaa8\uac00 \uc788\uc73c\uba70 \ub9ce\uc740 \uc790\uc2dd\uc774 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4>\ub9c8\ubb34\ub9ac<\/h4>\n\n\n\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 \uc804\ud1b5\uc801\uc778 Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc778 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc744 \uc0ac\uc6a9\ud558\ub294 \uae30\uc220\uc5d0\uc11c JavaScript \ub300\uc2e0 Dart\ub97c \ud65c\uc6a9\ud558\ub294 \uc811\uadfc \ubc29\ubc95\uc778 Dart for Web \uae30\uc220\uc5d0 \ub300\ud574\uc11c \uc54c\uc544 \ubcf4\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>dart:html\uc744 \uc0ac\uc6a9\ud55c Dart for Web \uae30\uc220\uc5d0 \ub300\ud574\uc11c \uc880 \ub354 \uc774\ud574\ud558\uace0 \uc2f6\ub2e4\uba74, Dart \uacf5\uc2dd \uc0ac\uc774\ud2b8\uc5d0\uc11c &#8220;A tour of the core libraries&#8221;\uc758 dart:html\uc5d0 \ub300\ud55c \uc124\uba85\uc778 &#8220;dart:html &#8211; browser-based apps&#8221; \ubd80\ubd84( <a href=\"https:\/\/dart.dev\/guides\/libraries\/library-tour#darthtml\">https:\/\/dart.dev\/guides\/libraries\/library-tour#darthtml<\/a> )\uc744 \uc77d\uace0 \uc2e4\ud589\ud574 \ubcf4\uae30\ub97c \uad8c\uc7a5\ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2020\/01\/b05-1.jpg\" alt=\"\" class=\"wp-image-267\" width=\"138\" height=\"49\"\/><\/figure><\/div>\n\n\n\n<p><strong>Creative Commons License (CC BY-NC-ND)<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&lt; Web \uac1c\ubc1c \u2013 Dart for Web &gt; \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[3],"tags":[15],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"&lt; Web \uac1c\ubc1c \u2013 Dart for Web &gt; \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. &quot;Hello,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"drsungwon\"\/>\n\t<link rel=\"canonical\" href=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"ko_KR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Welcome to Dr.Sungwon - {alias} devilinus.synology.me\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Dart Programmer \ub418\uae30 [42] - Welcome to Dr.Sungwon\" \/>\n\t\t<meta property=\"og:description\" content=\"&lt; Web \uac1c\ubc1c \u2013 Dart for Web &gt; \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. &quot;Hello,\" \/>\n\t\t<meta property=\"og:url\" content=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/\" \/>\n\t\t<meta property=\"og:image\" content=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2023\/05\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2023-05-27-\u110b\u1169\u110c\u1165\u11ab-10.46.20-e1685152019984.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"160\" \/>\n\t\t<meta property=\"og:image:height\" content=\"28\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-14T00:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-14T05:18:51+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Dart Programmer \ub418\uae30 [42] - Welcome to Dr.Sungwon\" \/>\n\t\t<meta name=\"twitter:description\" content=\"&lt; Web \uac1c\ubc1c \u2013 Dart for Web &gt; \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. &quot;Hello,\" \/>\n\t\t<meta name=\"twitter:image\" content=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2023\/05\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2023-05-27-\u110b\u1169\u110c\u1165\u11ab-10.46.20-e1685152019984.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#blogposting\",\"name\":\"Dart Programmer \\ub418\\uae30 [42] - Welcome to Dr.Sungwon\",\"headline\":\"Dart Programmer \\ub418\\uae30 [42]\",\"author\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/author\\\/drsungwon\\\/#author\"},\"publisher\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/\\u1109\\u1173\\u110f\\u1173\\u1105\\u1175\\u11ab\\u1109\\u1163\\u11ba-2020-05-08-\\u110b\\u1169\\u1112\\u116e-8.41.01.png\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#articleImage\",\"width\":249,\"height\":209},\"datePublished\":\"2020-10-14T09:00:00+09:00\",\"dateModified\":\"2020-10-14T14:18:51+09:00\",\"inLanguage\":\"ko-KR\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#webpage\"},\"isPartOf\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#webpage\"},\"articleSection\":\"writing, dart_flutter_for_web\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/category\\\/writing-by-drsungwon\\\/#listItem\",\"name\":\"writing\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/category\\\/writing-by-drsungwon\\\/#listItem\",\"position\":2,\"name\":\"writing\",\"item\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/category\\\/writing-by-drsungwon\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#listItem\",\"name\":\"Dart Programmer \\ub418\\uae30 [42]\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#listItem\",\"position\":3,\"name\":\"Dart Programmer \\ub418\\uae30 [42]\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/category\\\/writing-by-drsungwon\\\/#listItem\",\"name\":\"writing\"}}]},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/#organization\",\"name\":\"Welcome to Dr.Sungwon\",\"description\":\"{alias} devilinus.synology.me\",\"url\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/\\u1109\\u1173\\u110f\\u1173\\u1105\\u1175\\u11ab\\u1109\\u1163\\u11ba-2023-05-27-\\u110b\\u1169\\u110c\\u1165\\u11ab-10.46.20-e1685152019984.png\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#organizationLogo\",\"width\":160,\"height\":28},\"image\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/author\\\/drsungwon\\\/#author\",\"url\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/author\\\/drsungwon\\\/\",\"name\":\"drsungwon\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#authorImage\",\"url\":\"http:\\\/\\\/1.gravatar.com\\\/avatar\\\/7e7380e6e6864b43c703530d660d33b4?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"drsungwon\"}},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#webpage\",\"url\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/\",\"name\":\"Dart Programmer \\ub418\\uae30 [42] - Welcome to Dr.Sungwon\",\"description\":\"< Web \\uac1c\\ubc1c \\u2013 Dart for Web > \\uc774 \\uae00\\uc5d0\\uc11c \\uc124\\uba85\\ud558\\ub294 \\uae30\\uc220\\uc740 Flutter\\ub97c \\uc0ac\\uc6a9\\ud558\\uc9c0 \\uc54a\\uace0, Dart\\uc5b8\\uc5b4\\uc758 Core \\ub77c\\uc774\\ube0c\\ub7ec\\ub9ac\\uc778 dart:html\\uc744 \\uc0ac\\uc6a9\\ud558\\ub294 \\ubc29\\ubc95 \\uc785\\ub2c8\\ub2e4. \\uc774\\ub294 HTML\\\/CSS\\\/JavaScript\\uc758 \\uc870\\ud569\\uc5d0\\uc11c JavaScript\\uc5d0 \\uc0c1\\uc751\\ud558\\ub294 \\uc5ed\\ud560\\uc744 Dart \\uc5b8\\uc5b4 \\uadf8\\ub9ac\\uace0 dart:html\\uc758 \\ucf54\\uc5b4 \\ub77c\\uc774\\ube0c\\ub7ec\\ub9ac \\uae30\\ub2a5\\uc774 \\uc218\\ud589 \\ud55c\\ub2e4\\uace0 \\ubcf4\\uba74 \\ub429\\ub2c8\\ub2e4. \\ub530\\ub77c\\uc11c, \\uc774 \\uae00\\uc744 \\uc774\\ud574\\ud558\\uae30 \\uc704\\ud574\\uc11c\\ub294 HTML\\\/CSS\\\/JavaScript\\ub97c \\uae30\\ubc18\\uc73c\\ub85c Web \\uc5b4\\ud50c\\ub9ac\\ucf00\\uc774\\uc158\\uc744 \\ub9cc\\ub4dc\\ub294 \\uae30\\uc220\\uc5d0 \\ub300\\ud55c \\uae30\\ubcf8\\uc801\\uc778 \\uc774\\ud574\\uac00 \\ud544\\uc694\\ud569\\ub2c8\\ub2e4. \\\"Hello,\",\"inLanguage\":\"ko-KR\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/2020\\\/10\\\/14\\\/dart-programmer-42\\\/#breadcrumblist\"},\"author\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/author\\\/drsungwon\\\/#author\"},\"creator\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/author\\\/drsungwon\\\/#author\"},\"datePublished\":\"2020-10-14T09:00:00+09:00\",\"dateModified\":\"2020-10-14T14:18:51+09:00\"},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/#website\",\"url\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/\",\"name\":\"Welcome to Dr.Sungwon\",\"description\":\"{alias} devilinus.synology.me\",\"inLanguage\":\"ko-KR\",\"publisher\":{\"@id\":\"http:\\\/\\\/mobilelab.khu.ac.kr\\\/wordpress\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Dart Programmer \ub418\uae30 [42] - Welcome to Dr.Sungwon","description":"< Web \uac1c\ubc1c \u2013 Dart for Web > \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \"Hello,","canonical_url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#blogposting","name":"Dart Programmer \ub418\uae30 [42] - Welcome to Dr.Sungwon","headline":"Dart Programmer \ub418\uae30 [42]","author":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/author\/drsungwon\/#author"},"publisher":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2020\/05\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2020-05-08-\u110b\u1169\u1112\u116e-8.41.01.png","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#articleImage","width":249,"height":209},"datePublished":"2020-10-14T09:00:00+09:00","dateModified":"2020-10-14T14:18:51+09:00","inLanguage":"ko-KR","mainEntityOfPage":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#webpage"},"isPartOf":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#webpage"},"articleSection":"writing, dart_flutter_for_web"},{"@type":"BreadcrumbList","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress#listItem","position":1,"name":"Home","item":"http:\/\/mobilelab.khu.ac.kr\/wordpress","nextItem":{"@type":"ListItem","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/category\/writing-by-drsungwon\/#listItem","name":"writing"}},{"@type":"ListItem","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/category\/writing-by-drsungwon\/#listItem","position":2,"name":"writing","item":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/category\/writing-by-drsungwon\/","nextItem":{"@type":"ListItem","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#listItem","name":"Dart Programmer \ub418\uae30 [42]"},"previousItem":{"@type":"ListItem","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#listItem","position":3,"name":"Dart Programmer \ub418\uae30 [42]","previousItem":{"@type":"ListItem","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/category\/writing-by-drsungwon\/#listItem","name":"writing"}}]},{"@type":"Organization","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/#organization","name":"Welcome to Dr.Sungwon","description":"{alias} devilinus.synology.me","url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/","logo":{"@type":"ImageObject","url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2023\/05\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2023-05-27-\u110b\u1169\u110c\u1165\u11ab-10.46.20-e1685152019984.png","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#organizationLogo","width":160,"height":28},"image":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#organizationLogo"}},{"@type":"Person","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/author\/drsungwon\/#author","url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/author\/drsungwon\/","name":"drsungwon","image":{"@type":"ImageObject","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#authorImage","url":"http:\/\/1.gravatar.com\/avatar\/7e7380e6e6864b43c703530d660d33b4?s=96&d=mm&r=g","width":96,"height":96,"caption":"drsungwon"}},{"@type":"WebPage","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#webpage","url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/","name":"Dart Programmer \ub418\uae30 [42] - Welcome to Dr.Sungwon","description":"< Web \uac1c\ubc1c \u2013 Dart for Web > \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \"Hello,","inLanguage":"ko-KR","isPartOf":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/#website"},"breadcrumb":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/#breadcrumblist"},"author":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/author\/drsungwon\/#author"},"creator":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/author\/drsungwon\/#author"},"datePublished":"2020-10-14T09:00:00+09:00","dateModified":"2020-10-14T14:18:51+09:00"},{"@type":"WebSite","@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/#website","url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/","name":"Welcome to Dr.Sungwon","description":"{alias} devilinus.synology.me","inLanguage":"ko-KR","publisher":{"@id":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/#organization"}}]},"og:locale":"ko_KR","og:site_name":"Welcome to Dr.Sungwon - {alias} devilinus.synology.me","og:type":"article","og:title":"Dart Programmer \ub418\uae30 [42] - Welcome to Dr.Sungwon","og:description":"&lt; Web \uac1c\ubc1c \u2013 Dart for Web &gt; \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. &quot;Hello,","og:url":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/","og:image":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2023\/05\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2023-05-27-\u110b\u1169\u110c\u1165\u11ab-10.46.20-e1685152019984.png","og:image:width":160,"og:image:height":28,"article:published_time":"2020-10-14T00:00:00+00:00","article:modified_time":"2020-10-14T05:18:51+00:00","twitter:card":"summary_large_image","twitter:title":"Dart Programmer \ub418\uae30 [42] - Welcome to Dr.Sungwon","twitter:description":"&lt; Web \uac1c\ubc1c \u2013 Dart for Web &gt; \uc774 \uae00\uc5d0\uc11c \uc124\uba85\ud558\ub294 \uae30\uc220\uc740 Flutter\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0, Dart\uc5b8\uc5b4\uc758 Core \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 dart:html\uc744 \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95 \uc785\ub2c8\ub2e4. \uc774\ub294 HTML\/CSS\/JavaScript\uc758 \uc870\ud569\uc5d0\uc11c JavaScript\uc5d0 \uc0c1\uc751\ud558\ub294 \uc5ed\ud560\uc744 Dart \uc5b8\uc5b4 \uadf8\ub9ac\uace0 dart:html\uc758 \ucf54\uc5b4 \ub77c\uc774\ube0c\ub7ec\ub9ac \uae30\ub2a5\uc774 \uc218\ud589 \ud55c\ub2e4\uace0 \ubcf4\uba74 \ub429\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 HTML\/CSS\/JavaScript\ub97c \uae30\ubc18\uc73c\ub85c Web \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ub9cc\ub4dc\ub294 \uae30\uc220\uc5d0 \ub300\ud55c \uae30\ubcf8\uc801\uc778 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. &quot;Hello,","twitter:image":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-content\/uploads\/2023\/05\/\u1109\u1173\u110f\u1173\u1105\u1175\u11ab\u1109\u1163\u11ba-2023-05-27-\u110b\u1169\u110c\u1165\u11ab-10.46.20-e1685152019984.png"},"aioseo_meta_data":{"post_id":"1102","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-05-30 23:52:35","updated":"2025-12-16 23:37:37","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/mobilelab.khu.ac.kr\/wordpress\/category\/writing-by-drsungwon\/\" title=\"writing\">writing<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tDart Programmer \ub418\uae30 [42]\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"http:\/\/mobilelab.khu.ac.kr\/wordpress"},{"label":"writing","link":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/category\/writing-by-drsungwon\/"},{"label":"Dart Programmer \ub418\uae30 [42]","link":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/2020\/10\/14\/dart-programmer-42\/"}],"_links":{"self":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/1102"}],"collection":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=1102"}],"version-history":[{"count":5,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/1102\/revisions"}],"predecessor-version":[{"id":1295,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/posts\/1102\/revisions\/1295"}],"wp:attachment":[{"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=1102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=1102"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mobilelab.khu.ac.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=1102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}