{"id":957,"date":"2015-08-26T18:06:18","date_gmt":"2015-08-27T03:06:18","guid":{"rendered":"http:\/\/blog.box.kr\/?p=957"},"modified":"2015-08-26T18:06:18","modified_gmt":"2015-08-27T03:06:18","slug":"learning-poco-load-xml-configuration","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=957","title":{"rendered":"Learning Poco: Load XML Configuration"},"content":{"rendered":"<p><a href=\"http:\/\/www.codeproject.com\/Articles\/253418\/Learning-Poco-Load-XML-Configuration\" target=\"_blank\">http:\/\/www.codeproject.com\/Articles\/253418\/Learning-Poco-Load-XML-Configuration<\/p>\n<p><\/a><\/p>\n<div id=\"contentdiv\" class=\"text\">\n<p>In this tutorial, we will load an XML configuration from the file system by using <code>XMLConfiguration<\/code>, and access specific configuration items by using methods provided by <code>AbstractConfiguration<\/code>. Here,<code>AbstractConfiguration<\/code> is an interface, and <code>XMLConfiguration<\/code> is the implementation, both provided by Poco.<\/p>\n<p>Prepare an XML configuration file called <em>conf.xml<\/em> like this:<\/p>\n<div id=\"premain423626\" class=\"pre-action-link\"><span id=\"prehide423626\">Hide<\/span> \u00a0 Copy Code\n<\/div>\n<pre id=\"pre423626\" lang=\"xml\"><span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">config<\/span><span class=\"code-keyword\">&gt;<\/span>\n    <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">prop1<\/span><span class=\"code-keyword\">&gt;<\/span>1.23<span class=\"code-keyword\">&lt;<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-leadattribute\">prop1<\/span><span class=\"code-keyword\">&gt;<\/span>\n    <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">prop2<\/span><span class=\"code-keyword\">&gt;<\/span>2.34<span class=\"code-keyword\">&lt;<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-leadattribute\">prop2<\/span><span class=\"code-keyword\">&gt;<\/span>\n    <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">prop3<\/span><span class=\"code-keyword\">&gt;<\/span>\n       <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">prop4<\/span> <span class=\"code-attribute\">attr<\/span><span class=\"code-keyword\">=\"<\/span><span class=\"code-keyword\">1\"<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-keyword\">&gt;<\/span>\n       <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">prop4<\/span> <span class=\"code-attribute\">attr<\/span><span class=\"code-keyword\">=\"<\/span><span class=\"code-keyword\">2\"<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-keyword\">&gt;<\/span>\n    <span class=\"code-keyword\">&lt;<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-leadattribute\">prop3<\/span><span class=\"code-keyword\">&gt;<\/span>\n    <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">prop5<\/span> <span class=\"code-attribute\">id<\/span><span class=\"code-keyword\">=\"<\/span><span class=\"code-keyword\">first\"<\/span><span class=\"code-keyword\">&gt;<\/span>Hello,<span class=\"code-keyword\">&lt;<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-leadattribute\">prop5<\/span><span class=\"code-keyword\">&gt;<\/span>\n    <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">prop5<\/span> <span class=\"code-attribute\">id<\/span><span class=\"code-keyword\">=\"<\/span><span class=\"code-keyword\">second\"<\/span><span class=\"code-keyword\">&gt;<\/span> world!<span class=\"code-keyword\">&lt;<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-leadattribute\">prop5<\/span><span class=\"code-keyword\">&gt;<\/span>\n<span class=\"code-keyword\">&lt;<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-leadattribute\">config<\/span><span class=\"code-keyword\">&gt;<\/span><\/pre>\n<p>Then create the source file <em>xml_conf.cc<\/em>:<\/p>\n<div id=\"premain5645\" class=\"pre-action-link\"><span id=\"prehide5645\">Hide<\/span> \u00a0 <span id=\"preShrink5645\">Shrink<\/span> <img decoding=\"async\" id=\"preimg5645\" src=\"https:\/\/i0.wp.com\/www.codeproject.com\/images\/arrow-up-16.png?w=623\" alt=\"\" data-recalc-dims=\"1\" \/> \u00a0 Copy Code\n<\/div>\n<pre id=\"pre5645\" lang=\"C++\"><span class=\"code-preprocessor\">#include<\/span><span class=\"code-preprocessor\"> <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">span<\/span> <span class=\"code-attribute\">class<\/span><span class=\"code-keyword\">=\"<\/span><span class=\"code-keyword\">code-keyword\"<\/span><span class=\"code-keyword\">&gt;<\/span><span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">Poco<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-attribute\">Util<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-attribute\">AbstractConfiguration.h<\/span><span class=\"code-keyword\">&gt;<\/span>\n<\/span>&lt;\/span&gt;<span class=\"code-preprocessor\">#include<\/span><span class=\"code-preprocessor\"> <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">span<\/span> <span class=\"code-attribute\">class<\/span><span class=\"code-keyword\">=\"<\/span><span class=\"code-keyword\">code-keyword\"<\/span><span class=\"code-keyword\">&gt;<\/span><span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">Poco<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-attribute\">Util<\/span><span class=\"code-keyword\">\/<\/span><span class=\"code-attribute\">XMLConfiguration.h<\/span><span class=\"code-keyword\">&gt;<\/span>\n<\/span>&lt;\/span&gt;<span class=\"code-preprocessor\">#include<\/span><span class=\"code-preprocessor\"> <span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">span<\/span> <span class=\"code-attribute\">class<\/span><span class=\"code-keyword\">=\"<\/span><span class=\"code-keyword\">code-keyword\"<\/span><span class=\"code-keyword\">&gt;<\/span><span class=\"code-keyword\">&lt;<\/span><span class=\"code-leadattribute\">iostream<\/span><span class=\"code-keyword\">&gt;<\/span>\n<\/span>&lt;\/span&gt;\n<span class=\"code-keyword\">using<\/span> <span class=\"code-keyword\">namespace<\/span> Poco::Util;\n<span class=\"code-keyword\">using<\/span> <span class=\"code-keyword\">namespace<\/span> std;\n\n<span class=\"code-keyword\">int<\/span> main()\n{\n  AbstractConfiguration *cfg = <span class=\"code-keyword\">new<\/span> XMLConfiguration(<span class=\"code-string\">\"<\/span><span class=\"code-string\">conf.xml\"<\/span>);\n\n  <span class=\"code-keyword\">double<\/span> prop1 = cfg-&gt;getDouble(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop1\"<\/span>);\n  <span class=\"code-keyword\">double<\/span> prop2 = cfg-&gt;getDouble(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop2\"<\/span>);\n  cout &lt;&lt; <span class=\"code-string\">\"<\/span><span class=\"code-string\">prop1 + prop2 = \"<\/span> &lt;&lt; prop1 + prop2 &lt;&lt; endl;\n\n  cout &lt;&lt; <span class=\"code-string\">\"<\/span><span class=\"code-string\">This is an empty string: \"<\/span>\n       &lt;&lt; cfg-&gt;getString(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop3.prop4\"<\/span>) &lt;&lt; endl;\n\n  <span class=\"code-keyword\">int<\/span> prop4   = cfg-&gt;getInt(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop3.prop4[@attr]\"<\/span>);\n  <span class=\"code-keyword\">int<\/span> prop4_0 = cfg-&gt;getInt(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop3.prop4[0][@attr]\"<\/span>);\n  <span class=\"code-keyword\">int<\/span> prop4_1 = cfg-&gt;getInt(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop3.prop4[1][@attr]\"<\/span>);\n  cout &lt;&lt; <span class=\"code-string\">\"<\/span><span class=\"code-string\">prop4 + prop4_0 + prop4_1 = \"<\/span>\n       &lt;&lt; prop4 + prop4_0 + prop4_1 &lt;&lt; endl;\n\n  cout &lt;&lt; cfg-&gt;getString(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop5[0]\"<\/span>)\n       &lt;&lt; cfg-&gt;getString(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop5[1]\"<\/span>) &lt;&lt; endl;\n  cout &lt;&lt; cfg-&gt;getString(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop5[@id=first]\"<\/span>)\n       &lt;&lt; cfg-&gt;getString(<span class=\"code-string\">\"<\/span><span class=\"code-string\">prop5[@id='second'\"<\/span>) &lt;&lt; endl;\n\n  <span class=\"code-comment\">\/\/<\/span><span class=\"code-comment\"> No need to delete cfg, since it is reference counted for garbage collection\n<\/span>\n  <span class=\"code-keyword\">return<\/span> <span class=\"code-digit\">0<\/span>;\n}<\/pre>\n<p>Compile it and run:<\/p>\n<div id=\"premain634351\" class=\"pre-action-link\"><span id=\"prehide634351\">Hide<\/span> \u00a0 Copy Code\n<\/div>\n<pre id=\"pre634351\" lang=\"text\">$ g++ -o xml_conf xml_conf.cc -lPocoUtil\n$ .\/xml_conf\nprop1 + prop2 = 3.57\nThis is an empty string:\nprop4 + prop4_0 + prop4_1 = 4\nHello, world!\nHello, world!<\/pre>\n<p>That\u2019s it!<\/p>\n<p>The code above is very easy to understand, and notice that there is no need to <code>delete<\/code> <code>cfg<\/code>, since it is reference counted for garbage collection and will be deleted by Poco automatically. And you can <strong>not<\/strong> write like the following because the destructor of both <code>AbstractConfiguration<\/code> and <code>XMLConfiguration<\/code> are <code>protected<\/code>.<\/p>\n<div id=\"premain122519\" class=\"pre-action-link\"><span id=\"prehide122519\">Hide<\/span> \u00a0 Copy Code\n<\/div>\n<pre id=\"pre122519\" lang=\"cs\"><span class=\"code-comment\">\/\/<\/span><span class=\"code-comment\"> You can NOT write like this! It won't compile!\n<\/span>XMLConfiguration config(<span class=\"code-string\">\"<\/span><span class=\"code-string\">conf.xml\"<\/span>);<\/pre>\n<p>So refactor your code and use it now! XML configuration is much more flexible than plain-text files, and Poco handles everything you need to work with a configuration file. Why not give it a try?<\/p>\n<\/div>\n<div class=\"float-right\">\n<\/div>\n<p><a href=\"http:\/\/www.codeproject.com\/Articles\/253418\/Learning-Poco-Load-XML-Configuration\" target=\"_blank\">\u00a0<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/www.codeproject.com\/Articles\/253418\/Learning-Poco-Load-XML-Configuration In this tutorial, we will load an XML configuration from the file system by using XMLConfiguration, and access specific configuration items by using methods provided by AbstractConfiguration. Here,AbstractConfiguration is an interface, and XMLConfiguration is the implementation, both provided by Poco. Prepare an XML configuration file called conf.xml like this: Hide \u00a0 Copy Code &lt;config&gt; &lt;prop1&gt;1.23&lt;\/prop1&gt; &lt;prop2&gt;2.34&lt;\/prop2&gt; &lt;prop3&gt; &lt;prop4 attr=&#8221;1&#8243;\/&gt; &lt;prop4 attr=&#8221;2&#8243;\/&gt; &lt;\/prop3&gt; &lt;prop5 id=&#8221;first&#8221;&gt;Hello,&lt;\/prop5&gt; &lt;prop5 id=&#8221;second&#8221;&gt; world!&lt;\/prop5&gt; &lt;\/config&gt; Then create the source file xml_conf.cc: Hide \u00a0 Shrink \u00a0 Copy Code #include &lt;span class=&#8221;code-keyword&#8221;&gt;&lt;Poco\/Util\/AbstractConfiguration.h&gt; &lt;\/span&gt;#include &lt;span class=&#8221;code-keyword&#8221;&gt;&lt;Poco\/Util\/XMLConfiguration.h&gt; &lt;\/span&gt;#include &lt;span class=&#8221;code-keyword&#8221;&gt;&lt;iostream&gt; &lt;\/span&gt; using namespace Poco::Util; using namespace std; int main() { AbstractConfiguration *cfg = new XMLConfiguration(&#8220;conf.xml&#8221;); double prop1 = cfg-&gt;getDouble(&#8220;prop1&#8221;); double prop2 = cfg-&gt;getDouble(&#8220;prop2&#8221;); cout &lt;&lt; &#8220;prop1 + prop2 = &#8221; &lt;&lt; prop1 + prop2 &lt;&lt; endl; cout &lt;&lt; &#8220;This is an empty string: &#8221; &lt;&lt; cfg-&gt;getString(&#8220;prop3.prop4&#8221;) &lt;&lt; endl; int prop4 = cfg-&gt;getInt(&#8220;prop3.prop4[@attr]&#8221;); int prop4_0 = cfg-&gt;getInt(&#8220;prop3.prop4[0][@attr]&#8221;); int prop4_1 = cfg-&gt;getInt(&#8220;prop3.prop4[1][@attr]&#8221;); cout &lt;&lt; &#8220;prop4 + prop4_0 + prop4_1 = &#8221; &lt;&lt; prop4 + prop4_0 + prop4_1 &lt;&lt; endl; cout &lt;&lt; cfg-&gt;getString(&#8220;prop5[0]&#8221;) &lt;&lt; cfg-&gt;getString(&#8220;prop5[1]&#8221;) &lt;&lt; endl; cout &lt;&lt; cfg-&gt;getString(&#8220;prop5[@id=first]&#8221;) &lt;&lt; cfg-&gt;getString(&#8220;prop5[@id=&#8217;second'&#8221;) &lt;&lt; endl; \/\/ No need to delete cfg, since it is reference counted for garbage collection return 0; } Compile it [&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":[4,5],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-fr","jetpack-related-posts":[{"id":762,"url":"https:\/\/blog.box.kr\/?p=762","url_meta":{"origin":957,"position":0},"title":"Install and configure Nginx, MariaDB &amp; PHP-FPM in CentOS 7 (RHEL7)","date":"2015-05-08","format":false,"excerpt":"https:\/\/stavrovski.net\/blog\/install-and-configure-nginx-mariadb-php-fpm-in-centos-7-rhel7 \u00a0 The following is a quick-N-dirty write-up on\u00a0how to install and configure the LEMP stack (Nginx, MariaDB and PHP-FPM) in\u00a0CentOS 7. I use this as a reference\/guide whenever I need to deploy the\u00a0LEMP stack\u00a0on RHEL based machines. TABLE OF CONTENTS Enable EPEL Repository Update CentOS 7 Install and configure\u2026","rel":"","context":"In &quot;Linux&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":135,"url":"https:\/\/blog.box.kr\/?p=135","url_meta":{"origin":957,"position":1},"title":"Tomcat MySQL Connection &#8211; Using JDBC to Connect Tomcat to MySQL","date":"2014-06-24","format":false,"excerpt":"Tomcat MySQL Connection - Using JDBC to Connect Tomcat to MySQL Stumped by Tomcat JDBC connections? Can't get your head around MySQL drivers, connection pools, and JNDI resources? This article will guide you step-by-step through\u00a0connecting your MySQL database to Tomcat, in plain English. Along the way, we'll also cover setting\u2026","rel":"","context":"In &quot;WAS, Servet Containers&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":375,"url":"https:\/\/blog.box.kr\/?p=375","url_meta":{"origin":957,"position":2},"title":"spring mybatis @Repository","date":"2014-09-15","format":false,"excerpt":"\u00a0 http:\/\/blog.naver.com\/PostView.nhn?blogId=vikong&logNo=60180414100 application-context.xml \u00a0 1) @Respository \ub85c DAO scanning \ubc0f bean \uc124\uc815 \ubb38\uc7a5 <context:component-scan base-package=\"trust.repository\" use-default-filters=\"false\"> <context:include-filter type=\"annotation\" expression=\"org.springframework.stereotype.Repository\" \/> <\/context:component-scan> \u00a0 2) @Transactional \uc744 \uc704\ud55c \uc124\uc815 \ubb38\uc7a5 <!-- enable the configuration of transactional behavior based on annotations --> <tx:annotation-driven transaction-manager=\"txManager\" proxy-target-class=\"true\"\/> \u00a0 <!-- a PlatformTransactionManager is still required -->\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":130,"url":"https:\/\/blog.box.kr\/?p=130","url_meta":{"origin":957,"position":3},"title":"Simple Spring Quartz Web App with Maven and Eclipse","date":"2014-06-23","format":false,"excerpt":"Simple Spring Quartz Web App with Maven and Eclipse 1. Create a Maven Web App project with Eclipse File -> New -> Project -> Other -> Maven Project -> Next -> Next -> You should be at the Select Archtype Screen. Type \"webapp\" (without the quotes) in the \"filter\" textbox.\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/2.bp.blogspot.com\/-jQPX5aFgXCI\/UEz7N6HbfRI\/AAAAAAAAAIk\/rRh1qFCkcJk\/s320\/1-MavenProj.PNG?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":389,"url":"https:\/\/blog.box.kr\/?p=389","url_meta":{"origin":957,"position":4},"title":"[\ud38c]iBATIS 2.3.0 \ub610\ub294 2.3.2 \uc774\uc0c1 sqlmap \uc790\ub3d9 \ub9ac\ub85c\ub529","date":"2014-09-15","format":false,"excerpt":"iBATIS 2.3.0 \ub610\ub294 2.3.2 \uc774\uc0c1 sqlmap \uc790\ub3d9 \ub9ac\ub85c\ub529 \uac1c\uc694 iBATIS + Spring \uac1c\ubc1c\uc2dc \ucffc\ub9ac \ub9e4\ud551 \ud30c\uc77c\uc774 \ubcc0\uacbd\ub418\uba74 \uc6f9\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc11c\ubc84\ub97c \uc7ac\uae30\ub3d9\ud574\uc57c \uc801\uc6a9\uc774 \ub410\uc5c8\ub2e4. \uc774\ub7ec\ud55c \ubd88\ud3b8\uc744 \uc5c6\uc560\uae30 \uc704\ud574 \ub9e4\ud551 \ud30c\uc77c \ubcc0\uacbd\uc744 \uc2e4\uc2dc\uac04\uc73c\ub85c \uac10\uc2dc, \uc801\uc6a9\ud558\ub294 \ubaa8\ub4c8\uc744 \uc81c\uacf5\ud55c\ub2e4. \uac10\uc2dc \ub300\uc0c1 \uc774 \ubaa8\ub4c8\uc740 iBATIS sqlmap \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 sqlMap \ubc0f sqlMapConfig \ud30c\uc77c\uc758 \ubcc0\uacbd\uc744 \uac10\uc9c0, \uc2e4\uc2dc\uac04 \uc801\uc6a9\ud574\uc900\ub2e4. \uc81c\uc57d\uc0ac\ud56d\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":709,"url":"https:\/\/blog.box.kr\/?p=709","url_meta":{"origin":957,"position":5},"title":"[\ud38c] HOWTO: Turn off MySQL reverse DNS lookup to speed up response times","date":"2015-04-15","format":false,"excerpt":"\ub0b4\uc6a9\uc744 \uc694\uc57d \ud558\uc790\ub9cc.. mysql\uc774 \uc811\uc18d \ud560\ub54c\u00a0reverse DNS lookup\uc744 \ud558\ub294\ub370 \uc774\ub54c \uc2dc\uac04\uc774 \ub9ce\uc774 \uac78\ub9ac\ub2c8 \uc774\ub97c skip\ucc98\ub9ac \ud558\uba74 \uc811\uc18d \uc18d\ub3c4\uac00 \ub9ce\uc774 \ube68\ub77c \uc9c4\ub2e4\ub294 \uc774\uc57c\uae30.. \u00a0 \u00a0 http:\/\/developer.sugarcrm.com\/2012\/01\/10\/howto-turn-off-mysql-reverse-dns-lookup-to-speed-up-response-times\/ Our support team was recently working on a case where pages were taking 5 seconds or longer for each load, even after tackling all of\u2026","rel":"","context":"In &quot;\uae30\uc220\uc790\ub8cc&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/957"}],"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=957"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/957\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}