{"id":1239,"date":"2021-05-14T15:44:59","date_gmt":"2021-05-14T06:44:59","guid":{"rendered":"http:\/\/blog.box.kr\/?p=1239"},"modified":"2021-05-28T16:18:06","modified_gmt":"2021-05-28T07:18:06","slug":"1239","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=1239","title":{"rendered":"Flutter \uc0ac\uc6a9 \uc815\ub9ac"},"content":{"rendered":"\n<p>OSX, Windows, Linux, Web\uc5d0\uc11c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \uac01 \uae30\ub2a5\uc744 \ucf1c\uc918\uc57c\ud568. <br><\/p>\n\n\n\n<h2 id=\"get-started-developing-desktop-applications-with-flutter\">Flutter\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c \uc2dc\uc791\ud558\uae30<\/h2>\n\n\n\n<p>\uc77c\ud68c\uc131 \uad6c\uc131 \ubcc0\uacbd\uc73c\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc9c0\uc6d0\uc744 \uad6c\uc131\ud574\uc57c\ud569\ub2c8\ub2e4.<br>$ flutter config &#8211;enable-windows-desktop # for the Windows runner<br>$ flutter config &#8211;enable-macos-desktop &nbsp; # for the macOS runner<br>$ flutter config &#8211;enable-linux-desktop &nbsp; # for the Linux runner<\/p>\n\n\n\n<p>\ub370\uc2a4\ud06c\ud1b1 \uc6a9 Flutter\uac00 \ud65c\uc131\ud654\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud558\ub824\uba74 \ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uc2ed\uc2dc\uc624.<br>$ flutter devices<\/p>\n\n\n\n<p>\ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 (\uc544\ub798 \uba85\ub839) \ud558\uba74 \uc0ac\uc6a9\uac00\ub2a5\ud55c Devices\uc5d0 \ub300\uc751\ud558\ub294 \ubaa8\ub4e0 \ucf54\ub4dc\uac00 \uac19\uc774 \uc0dd\uae34\ub2e4. ( \ud504\ub85c\uc81d\ud2b8 \uc548\uc5d0 , ios, android, linux, windows, osx \ub4f1 )<br>$flutter create \ud504\ub85c\uc81d\ud2b8\uba85 # \ub2e8\uc5b4\uac04\uc758 \uc5f0\uacb0\uc740 &#8220;_&#8221;\ub85c \ucc98\ub9ac Camel  \uc548\ub428<br><br>flutter 2.0\uc73c\ub85c \ubcc0\uacbd \ub418\uba74\uc11c null safe\uac00 \uae30\ubcf8\ud654 \ub428 \ub530\ub77c\uc11c null safe\uc801\uc6a9\uc774 \uc548\ub41c \ud504\ub85c\uc81d\ud2b8\ub294 \ud558\uae30\uc758 \uba85\ub839\uc73c\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158 \ud544\uc694 <br>$ dart migrate &#8211;apply-changes<br><br>** pubspec.yaml\uc5d0 \ud558\uae30 \ub0b4\uc6a9 \uc9c0\uc815 \ud558\uba74 null safety \ub123\uc744 \uc218\ub3c4 \ube84 \uc218\ub3c4 \uc788\uc74c. <br><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>environment:\n  sdk: '>=2.12.0-0.0 &lt;3.0.0' ( 2.12 \ubc84\uc804 \ubd80\ud130 null safety\uc801\uc6a9\ub428 )<\/code><\/pre>\n\n\n\n<p><br><br>** pub.dev\uc5d0 \uc788\ub294 plug-in\ub4e4\uc774 2.0\ub300\uc751\uc774 \uc548\ub418\uc5b4 \uc788\ub294 \uacbd\uc6b0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ub420 \uc218 \uc788\uc74c \uc774\ub7f4\ub54c\ub294 \uc544\ub798\uc758 \uc635\uc158\uc73c\ub85c \ud68c\ud53c \ud560 \uc218 \uc788\uc73c\ub098 \ubc14\ub78c\uc9c1 \ud558\uc9c0\ub294 \uc54a\ub2e4..<br>$ flutter run <strong><code>--no-sound-null-safety<\/code>&nbsp;<\/strong> <br><br>** Android \ub97c play store\uc5d0 \ubc30\ud3ec \ud560\ub584 \uc571\ubc88\ub4e4 \ud615\ud0dc\ub85c \ubc30\ud3ec\ud574\uc57c \ud558\ub294\ub370 \uc544\ub798\uc758 \uba85\ub839\uc73c\ub85c \uc0dd\uc131 \ud558\uba74 \ub41c\ub2e4. <br>$ flutter build appbundle &#8211;target-platform android-arm,android-arm64,android-x64<br><br>\uc774\uac74 abi\ud615\ud0dc\ub85c \ubc30\ud3ec \ud558\uba74\uc11c null safety \uae30\ub2a5 \ub044\uae30..<br>$ flutter build apk &#8211;split-per-abi &#8211;no-sound-null-safety<\/p>\n\n\n\n<p>** json_annotaions \ub4f1 \uac1c\ubc1c\ud658\uacbd\uc5d0\uc11c code generate  \ud574\uc8fc\ub294\uac70 \uc0ac\uc6a9 \ud560\ub54c\ub294 \ud558\uae30\uc758 \uba85\ub839\uc744 \uc2e4\ud589 \ud574\ub194\uc57c\uc9c0 \ubcc0\uacbd\uc0ac\ud56d\uc5d0 \ub530\ub978 code generate\uac00 \uc790\ub3d9\uc73c\ub85c \ub41c\ub2e4. <br>$ flutter pub run build_runner watch &#8211;delete-conflicting-outputs<br>$ flutter pub run build_runner build &#8211;delete-conflicting-outputs  # \uc774\uac74 1\ud68c\uc131..<\/p>\n\n\n\n<p>** plug-in\ub4e4\uc758 update\ub294 <br>$ flutter pub upgrade<\/p>\n\n\n\n<p>** \uc560\ubbac\ub808\uc774\ud130 \uc885\ub958 \ubcf4\uae30 <br>flutter emulators<\/p>\n\n\n\n<p>** \uc560\ubbac\ub808\uc774\ud130 \uc2e4\ud589 \ud558\uae30 <br>flutter emulators &#8211;launch Nexus_6API_26 <\/p>\n\n\n\n<p>** dart\uc5d0\uc11c null check  \ubc29\ubc95 <br>String value = a?.val1??&#8221;is null&#8221;;<br>\uc774\ub807\uac8c \ud558\uba74 a\uac00 null\uc774\uba74.. &#8220;is null&#8221;\uc774 \uc800\uc7a5\ub418\uace0 a\uac00 null\uc774 \uc544\ub2c8\uba74 a.val1\uc758 \ub0b4\uc6a9\uc774 \ub300\uc785\ub41c\ub2e4.<br>null safety \uc801\uc6a9\ub418\uba74.. \uae30\ubcf8\uc801\uc73c\ub85c \ubaa8\ub4e0 \ubcc0\uc218\ub294 null\uc774 \ud5c8\uc6a9\uc548\ub428.. \ud5c8\uc6a9 \uc2dc\ud0ac\ub824\uba74.. <br>\ub370\uc774\ud130 \ud0c0\uc785\ub4a4\uc5d0 ?\ub97c \ubd99\uc5ec\uc11c \uba85\uc2dc\uc801\uc73c\ub85c \uc120\uc5b8\ud574\uc918\uc57c \ud568 <br>String? a;    \/\/ \uc774\ub807\uac8c<\/p>\n\n\n\n<p>** Apk\ub4f1 \ucd5c\uc885 \ud328\ud0a4\uc9c0 \uc0ac\uc774\uc988 \uc904\uc774\uae30. .<br><a href=\"https:\/\/flutter.dev\/docs\/perf\/app-size#reducing-app-size\">https:\/\/flutter.dev\/docs\/perf\/app-size#reducing-app-size<\/a>    \ucc38\uc870 <br><br>Dart 2.13\uc774\uc0c1\ubd80\ud130\uc758 \uae30\ub2a5\uc73c\ub85c <br><a href=\"https:\/\/flutter.dev\/docs\/perf\/app-size#reducing-app-size\">&#8211;split-debug-info<\/a> \uc635\uc158\uc744 \uc368\uc11c Compile\ud558\uba74.. debug\uc815\ubcf4\uac00 \uc0ad\uc81c\ub418\uc5b4 \uc6a9\ub7c9\uc774 \uc904\uc5b4 \ub4e0\ub2e4.. ( Release \ubc30\ud3ec \ud560\ub54c \uc720\uc6a9 )<br><br>Dart 2.13 \ubd80\ud130\ub294 null Safety\uae30 \uae30\ubcf8\uc784.. \uadf8\ub798\uc11c <br>plug-in\ub4e4\uc774 null Safety\uc9c0\uc6d0 \ub41c\ub294 \uac78\ub85c Update\ud558\uae30 \uc704\ud574 \uc544\ub798 \uba85\ub839 \uc2e4\ud589<br><br><strong>dart pub outdated<\/strong><br><\/p>\n\n\n\n<p>Dart 2.13\uc5d0\uc11c \uc9c0\uc6d0\ud55c \uae30\ub2a5<br>&#8211; Type Alis\uae30\ub2a5 C\/C++\uc758 #define \uac19\uc740 \uae30\ub2a5\uc778\ub370 Class\ub2e8\uc704 \uae4c\uc9c0 \uc9c0\uc6d0\ub428<br>&#8211; FFI changes :: C\/C++\uc5d0\uc11c \uad6c\uc870\uccb4\uc758 Packing\ud558\ub294 \uae30\ub2a5<br>&#8211; Official\ud558\uac8c Docker \uc774\ubbf8\uc9c0 \uc81c\uacf5\ud568 Web \ubc30\ud3ec \ud560\ub54c \uc720\uc6a9\ud560\ub4ef..<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>OSX, Windows, Linux, Web\uc5d0\uc11c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \uac01 \uae30\ub2a5\uc744 \ucf1c\uc918\uc57c\ud568. Flutter\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac1c\ubc1c \uc2dc\uc791\ud558\uae30 \uc77c\ud68c\uc131 \uad6c\uc131 \ubcc0\uacbd\uc73c\ub85c \ub370\uc2a4\ud06c\ud1b1 \uc9c0\uc6d0\uc744 \uad6c\uc131\ud574\uc57c\ud569\ub2c8\ub2e4.$ flutter config &#8211;enable-windows-desktop # for the Windows runner$ flutter config &#8211;enable-macos-desktop &nbsp; # for the macOS runner$ flutter config &#8211;enable-linux-desktop &nbsp; # for the Linux runner \ub370\uc2a4\ud06c\ud1b1 \uc6a9 Flutter\uac00 \ud65c\uc131\ud654\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud558\ub824\uba74 \ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uc2ed\uc2dc\uc624.$ flutter devices \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 (\uc544\ub798 \uba85\ub839) \ud558\uba74 \uc0ac\uc6a9\uac00\ub2a5\ud55c Devices\uc5d0 \ub300\uc751\ud558\ub294 \ubaa8\ub4e0 \ucf54\ub4dc\uac00 \uac19\uc774 \uc0dd\uae34\ub2e4. ( \ud504\ub85c\uc81d\ud2b8 \uc548\uc5d0 , ios, android, linux, windows, osx \ub4f1 )$flutter create \ud504\ub85c\uc81d\ud2b8\uba85 # \ub2e8\uc5b4\uac04\uc758 \uc5f0\uacb0\uc740 &#8220;_&#8221;\ub85c \ucc98\ub9ac Camel \uc548\ub428 flutter 2.0\uc73c\ub85c \ubcc0\uacbd \ub418\uba74\uc11c null safe\uac00 \uae30\ubcf8\ud654 \ub428 \ub530\ub77c\uc11c null safe\uc801\uc6a9\uc774 \uc548\ub41c \ud504\ub85c\uc81d\ud2b8\ub294 \ud558\uae30\uc758 \uba85\ub839\uc73c\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158 \ud544\uc694 $ dart migrate &#8211;apply-changes ** pubspec.yaml\uc5d0 \ud558\uae30 \ub0b4\uc6a9 \uc9c0\uc815 \ud558\uba74 null safety \ub123\uc744 \uc218\ub3c4 \ube84 \uc218\ub3c4 \uc788\uc74c. ** pub.dev\uc5d0 \uc788\ub294 plug-in\ub4e4\uc774 2.0\ub300\uc751\uc774 \uc548\ub418\uc5b4 \uc788\ub294 \uacbd\uc6b0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ub420 \uc218 \uc788\uc74c \uc774\ub7f4\ub54c\ub294 \uc544\ub798\uc758 \uc635\uc158\uc73c\ub85c \ud68c\ud53c \ud560 \uc218 \uc788\uc73c\ub098 \ubc14\ub78c\uc9c1 \ud558\uc9c0\ub294 \uc54a\ub2e4..$ flutter run &#8211;no-sound-null-safety&nbsp; ** Android \ub97c play store\uc5d0 \ubc30\ud3ec \ud560\ub584 \uc571\ubc88\ub4e4 \ud615\ud0dc\ub85c \ubc30\ud3ec\ud574\uc57c \ud558\ub294\ub370 \uc544\ub798\uc758 \uba85\ub839\uc73c\ub85c \uc0dd\uc131 \ud558\uba74 \ub41c\ub2e4. $ flutter build appbundle &#8211;target-platform android-arm,android-arm64,android-x64 \uc774\uac74 abi\ud615\ud0dc\ub85c \ubc30\ud3ec \ud558\uba74\uc11c null safety \uae30\ub2a5 \ub044\uae30..$ flutter build apk &#8211;split-per-abi &#8211;no-sound-null-safety ** json_annotaions \ub4f1 \uac1c\ubc1c\ud658\uacbd\uc5d0\uc11c code generate \ud574\uc8fc\ub294\uac70 \uc0ac\uc6a9 \ud560\ub54c\ub294 \ud558\uae30\uc758 \uba85\ub839\uc744 \uc2e4\ud589 \ud574\ub194\uc57c\uc9c0 \ubcc0\uacbd\uc0ac\ud56d\uc5d0 \ub530\ub978 code generate\uac00 \uc790\ub3d9\uc73c\ub85c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[41],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/s5q9Zn-1239","jetpack-related-posts":[{"id":1248,"url":"https:\/\/blog.box.kr\/?p=1248","url_meta":{"origin":1239,"position":0},"title":"\uc571 \uc0c1\ud0dc(AppLifeCycle) \uc774\ubca4\ud2b8 \uc5bb\uae30","date":"2021-05-18","format":false,"excerpt":"https:\/\/flutter.dev\/docs\/get-started\/flutter-for\/android-devs#how-do-i-listen-to-android-activity-lifecycle-events\uc774 plugIn\uc744 \uc0ac\uc6a9\ud55c\ub2e4. import 'package:flutter\/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, visualDensity: VisualDensity.adaptivePlatformDensity, ), home: MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) :\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1244,"url":"https:\/\/blog.box.kr\/?p=1244","url_meta":{"origin":1239,"position":1},"title":"VSCode\uc5d0\uc11c gradle sync\ud558\ub294\ubc95","date":"2021-05-18","format":false,"excerpt":"\ud504\ub85c\uc81d\ud2b8 \ub0b4\ubd80\uc758 android \ud3f4\ub354\uc5d0\uc11c \uc544\ub798 \uba85\ub839 \uc2e4\ud589 .\\gradlew --refresh-dependencies\ubcf4\ud1b5\uc740 \ubc14\ub85c Sync. \uc791\uc5c5\uc774 \ub3cc\uc544 \uac00\ub294\ub370 \uac04\ud639.. Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1250,"url":"https:\/\/blog.box.kr\/?p=1250","url_meta":{"origin":1239,"position":2},"title":"\ud328\ud0a4\uc9c0(Package) \uc218\uc815\ud558\uae30","date":"2021-05-18","format":false,"excerpt":"Github\uc5d0\uc11c \uace0\uce60 Package\ub97c Fork \ud55c \ud6c4\uc5d0 \ud574\ub2f9 \uc18c\uc2a4\ub97c \uace0\uce58\uace0 Github\uc5d0 commit \/ push \ud574\uc11c \uc0ac\uc6a9\ud568pubspec.yaml\uc5d0 \uc544\ub798\uc640 \uac19\uc774 \uae30\uc785#qrscan: ^0.2.17 # \uae30\uc874\uc5d0 \uc788\ub358 \ud328\ud0a4\uc9c0\ub294 \uc8fc\uc11d \ub610\ub294 \uc0ad\uc81c plugin_test: git: url: https:\/\/github.com\/chandong83\/qrcode_scanner.git ref: master \uc704\uc640 \uac19\uc774 \ucc98\ub9ac \ud558\uace0 \ubc18\ub4dc\uc2dc .. flutter pub upgrade \ucc98\ub9ac \ud574\uc11c update\ud574\uc918\uc57c \ubcc0\uacbd\ub428\ub0b4\ubd80\uc5d0 \ud654\uc77c\uc744 \ub0b4\ub824 \ubc1b\uc544\uc11c \ubc14\ub85c\ubc14\ub85c \uc0ac\uc6a9\ud558\uae30\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1246,"url":"https:\/\/blog.box.kr\/?p=1246","url_meta":{"origin":1239,"position":3},"title":"FutureBuilder","date":"2021-05-18","format":false,"excerpt":"Future\uac00 \uc788\ub294 \uc704\uc82f\uc744 \ub9cc\ub4e4\uae30\uc704\ud574\uc120 Stateful \uc704\uc82f\uc73c\ub85c \ud574\ub454 \ub2e4\uc74c\uc5d0, \ub85c\ub529\uc774 \uc644\ub8cc\ub418\uba74 \uadf8 \uac12\uc5d0 \ub530\ub77c setstate\uc744 \ub2e4\uc2dc \ud574\uc57c\ud588\ub2e4.\u00a0 \ucf54\ub4dc\uac00 \uad49\uc7a5\ud788 \uc9c0\uc800\ubd84\ud574\uc9c0\uace0, Stateful\uc704\uc82f\uc774 \uac15\uc81c\ub41c\ub2e4\ub294 \uc810\uc5d0\uc11c \ubd88\ud3b8\ud558\uae30\ub3c4 \ud588\ub2e4. \uc774\ub97c \uadf9\ubcf5\ud558\uae30 \uc704\ud574 \uc874\uc7ac\ud558\ub294 \uc704\uc82f\uc774 \uc788\ub294 \ubc14\ub85c FutureBuilder\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\ub2e4. FutureBuilder\ub294 3\uac00\uc9c0\uc758 \uc694\uc18c\ub97c \uac16\ub294\ub2e4. child, future, builder\uc774\ub2e4. future\uc5d0 \uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 Future<T>\ub97c return\ud558\ub294 \uba54\uc18c\ub4dc\ub97c \ub123\uace0, builder\uc5d0\ub294 context\uc640\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1252,"url":"https:\/\/blog.box.kr\/?p=1252","url_meta":{"origin":1239,"position":4},"title":"Back Button \ub9c9\uae30(Disable Back Button)","date":"2021-05-18","format":false,"excerpt":"WillPopScope \uc704\uc82f\uc744 \uc0ac\uc6a9\ud55c\ub2e4. scaffold\ub97c WillPopScope\ub85c \uac10\uc2f8\uc11c \ucc98\ub9ac \ud55c\ub2e4. return Scaffold( appBar: AppBar( title: Text('demo page1'), leading: \/\/<- leading \ud56d\ubaa9\uc744 \uc9c1\uc811 \ucd94\uac00 IconButton( icon: Icon(Icons.arrow_back), \/\/ <- \uc544\uc774\ucf58\ub3c4 \ub3d9\uc77c\ud55c \uac83\uc744 \uc0ac\uc6a9 onPressed: () { Navigator.pop(context); \/\/ <- \uc774\uc804 \ud398\uc774\uc9c0\ub85c \uc774\ub3d9. }, ), ), body: WillPopScope( onWillPop: () { return Future(() =>\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":200,"url":"https:\/\/blog.box.kr\/?p=200","url_meta":{"origin":1239,"position":5},"title":"\uc774\ubc88 \ud3ec\uc2a4\ud305\uc740 \ud2b9\uc815\uc0ac\uc774\ud2b8\uc758 HTML \ud0dc\uadf8\ub97c\u2026","date":"2014-07-16","format":false,"excerpt":"\uc774\ubc88 \ud3ec\uc2a4\ud305\uc740 \ud2b9\uc815\uc0ac\uc774\ud2b8\uc758 HTML \ud0dc\uadf8\ub97c \uac00\uc838\uc640\uc11c \ucd9c\ub825\ud558\ub294 \uac83\uae4c\uc9c0 \ub2e4\ub8f9\ub2c8\ub2e4. \uac1c\ubc1c \ud234\uc740 Visual Studio 2012\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. # \ud654\uba74 \uad6c\uc131 - url \uc601\uc5ed - url \uc774\ub3d9 \ubc84\ud2bc - html \uac00\uc838\uc624\uae30 \ubc84\ud2bc - webBrowser \uc601\uc5ed - \ub514\ubc84\uae451 \uc601\uc5ed - \ub514\ubc84\uae452 \uc601\uc5ed \uacb0\uacfc\ubb3c\ub294 \uac04\ub2e8\ud569\ub2c8\ub2e4. \ud574\ub2f9 URL\uc5d0 \uc774\ub3d9\ud558\uc5ec webBrowser\uc758 \ud6c4\ud0b9(?) \ucf5c\ubc31(?)\u00a0\uc815\ubcf4\ub97c \ucd9c\ub825(\ub514\ubc84\uae451)\ud558\uace0 scan\ubc84\ud2bc\uc744 \ud1b5\ud574 html\ub0b4\uc6a9\uc744\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"http:\/\/cfile23.uf.tistory.com\/image\/236391385315B70E32D9B7","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/1239"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1239"}],"version-history":[{"count":3,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/1239\/revisions"}],"predecessor-version":[{"id":1273,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/1239\/revisions\/1273"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}