{"id":480,"date":"2012-06-01T02:54:20","date_gmt":"2012-06-01T02:54:20","guid":{"rendered":"http:\/\/nangchang.nes.or.kr\/?p=480"},"modified":"2012-06-01T02:54:20","modified_gmt":"2012-06-01T02:54:20","slug":"spring-%ec%97%90%ec%84%9c-transaction-%ec%84%a4%ec%a0%95-%ec%8b%9c-service-%eb%a0%88%eb%b2%a8%ec%97%90%ec%84%9c-%ec%a0%81%ec%9a%a9-%ec%95%88%eb%90%98%eb%8a%94-%eb%ac%b8%ec%a0%9c","status":"publish","type":"post","link":"https:\/\/nangchang.nes.or.kr\/?p=480","title":{"rendered":"Spring \uc5d0\uc11c Transaction \uc124\uc815 \uc2dc Service \ub808\ubca8\uc5d0\uc11c \uc801\uc6a9 \uc548\ub418\ub294 \ubb38\uc81c"},"content":{"rendered":"<p>\uc694\uc998 \ub4a4\ub2a6\uac8c spring\uc744 \uc4f4\ub2e4\uace0 \uc0bd\uc9c8\uc5d0 \uc5ec\ub150\uc774 \uc5c6\ub2e4=_=<br \/>\uc5b4\uc81c\ub294 Transaction \uc124\uc815\uc744 \ucd94\uac00\ud588\ub294\ub370, \uc774\ub7f4\uc218\uac00 \uc801\uc6a9\uc774 \uc548\ub418\ub294 \uac83\uc774\ub2e4;;;<br \/>STS\uc5d0\uc11c transaction \ud45c\uc2dc\ub3c4 \uc798 \ub418\uace0, \uc124\uc815\uc740 \uba87 \ubc88\uc774\ub098 \uac80\ud1a0\ud574\ub3c4 \ud2c0\ub9b0\uac8c \uc5c6\ub294\ub370 \ub9d0\uc774\ub2e4.<\/p>\n<p>maven\uc744 \uc704\ud574 pom.xml\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \ucd94\uac00\ud574 \uc8fc\uace0<\/p>\n<div>\n<blockquote><p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;dependency&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;groupId&gt;org.springframework&lt;\/groupId&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;artifactId&gt;spring-tx&lt;\/artifactId&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;version&gt;${org.springframework-version}&lt;\/version&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;\/dependency&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t\t<\/span>&lt;dependency&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;groupId&gt;org.aspectj&lt;\/groupId&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;artifactId&gt;aspectjweaver&lt;\/artifactId&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;version&gt;1.5.4&lt;\/version&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;\/dependency&gt;<\/p><\/blockquote>\n<p>\ub2e4\uc74c\uacfc \uac19\uc774 spring \uc5d0 data source, transaction manager \ube48\uc744 \ucd94\uac00\ud558\uace0,<br \/>service \ud074\ub798\uc2a4\uc5d0\uc11c transaction \uc774 \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc124\uc815\uc744 \ud588\ub2e4. <\/p>\n<blockquote><p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&lt;!&#8211; data source &#8211;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;bean id=&#8221;dataSource&#8221; class=&#8221;org.apache.commons.dbcp.BasicDataSource&#8221;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;driverClassName&#8221; value=&#8221;net.sf.log4jdbc.DriverSpy&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;url&#8221; value=&#8221;jdbc:log4jdbc:postgresql:\/\/192.168.0.12:5432\/db&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;username&#8221; value=&#8221;user&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;password&#8221; value=&#8221;passwd&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;initialSize&#8221; value=&#8221;3&#8243; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;maxActive&#8221; value=&#8221;10&#8243; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;maxWait&#8221; value=&#8221;3000&#8243; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;\/bean&gt;<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;!&#8211; transaction manager &#8211;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;bean id=&#8221;transactionManager&#8221;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>class=&#8221;org.springframework.jdbc.datasource.DataSourceTransactionManager&#8221;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;\/bean&gt;<\/p><\/blockquote>\n<blockquote><p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;!&#8211; &nbsp;transaction setting &#8211;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;tx:advice id=&#8221;txAdvice&#8221; transaction-manager=&#8221;transactionManager&#8221;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;tx:attributes&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;tx:method name=&#8221;get*&#8221; read-only=&#8221;true&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;tx:method name=&#8221;list*&#8221; read-only=&#8221;true&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;tx:method name=&#8221;find*&#8221; read-only=&#8221;true&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;tx:method name=&#8221;*&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;\/tx:attributes&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;\/tx:advice&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span><br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;aop:config&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;aop:advisor advice-ref=&#8221;txAdvice&#8221; <br \/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br \/>\npointcut=&#8221;execution(* com.acroem.hadpan.service.*Service.*(..))&#8221; \/&gt; <br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;\/aop:config&gt;<\/p><\/blockquote>\n<p>\uadf8\ub9ac\uace0, MyBatis\uc640 \uc5f0\ub3d9\ud574\uc11c \uc4f0\ub294\uc9c0\ub77c \ub2e4\uc74c\uacfc \uac19\uc774 MyBatis \uc124\uc815\ub3c4 \ucd94\uac00\ud588\ub2e4.<\/p>\n<blockquote><p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&lt;bean id=&#8221;sqlSessionFactory&#8221; class=&#8221;org.mybatis.spring.SqlSessionFactoryBean&#8221;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;typeAliasesPackage&#8221; value=&#8221;z.y.x.bean&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;\/bean&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span><br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;bean id=&#8221;sqlSession&#8221; class=&#8221;org.mybatis.spring.SqlSessionTemplate&#8221;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;constructor-arg ref=&#8221;sqlSessionFactory&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;\/bean&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span><br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;bean class=&#8221;org.mybatis.spring.mapper.MapperScannerConfigurer&#8221;&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>&lt;property name=&#8221;basePackage&#8221; value=&#8221;z.y.x.dao&#8221; \/&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>&lt;\/bean&gt;<\/p><\/blockquote>\n<p>\uadf8\ub7ec\ub098 \ub2f9\ucd5c\uac00 transaction\uc774 \ub3d9\uc791\uc744 \ud558\uc9c0 \uc54a\ub294\ub2e4=_= service \ucabd\uc758 \ub9e4\uc18c\ub4dc\uc5d0 \uc77c\ubd80\ub7ec \uc131\uacf5\ud558\ub294 SQL\uacfc \uc2e4\ud328\ud558\ub294 SQL\uc744<br \/>\uc5f0\uc18d\uc73c\ub85c \uc2e4\ud589 \ud588\ub294\ub370, rollback \ub418\uc9c0 \uc54a\uace0 \uccab \ubc88\uc9f8 \uacb0\uacfc\uac00 \ubb34\uc870\uac74 commit \uc774 \ub418\ub294 \uac83\uc774\ub2e4;;<br \/>\uc774\ub798\uc800\ub798 \uc124\uc815\uc744 \ubc14\uafd4\ubcf4\uace0, \uc774\uac83 \uc800\uac83 \uc2e4\ud5d8\uc744 \ud574\ubd10\uc11c \uc5bb\uc740 \uacb0\ub860\uc740 DAO \ub808\ubca8\uc5d0\uc11c\ub294 transaction\uc774 \uc791\ub3d9\ud558\ub294\ub370,<br \/>service \ub808\ubca8\uc5d0\uc11c\ub294 \uc548\ud55c\ub2e4\ub294\uac83.<br \/>\uc0bd\uc9c8 \ub05d\uc5d0 service \ud074\ub798\uc2a4\uc5d0\uc11c @Service \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc81c\uac70\ud558\uace0, \uc124\uc815 \ud30c\uc77c\uc5d0 bean \uc124\uc815\uc73c\ub85c \ucd94\uac00 \ud588\ub354\ub2c8..<br \/>\ub3d9\uc791\ud55c\ub2e4! \uba3c\uac00 \ud574\uacb0\uc758 \uc2e4\ub9c8\ub9ac\uac00 \ubcf4\uc774\ub294 \ub4ef\ud558\uc9c0\ub9cc \ub3c4\ub300\uccb4\uac00 \uc774\uc720\ub97c \uc54c \uc218 \uc5c6\ub294 \uc0c1\ud669&#8230;-_-<\/p>\n<p>\ub2e4\uc2dc \uc774\ub798\uc800\ub798 \uc124\uc815\uc744 \ubc14\uafd4\uac00\uba74\uc11c \uc2e4\ud5d8\ud574\ubcf4\uace0, \uad00\ub828 \uae00\ub4e4\uc744 \ucc3e\uc544\uc11c \uc77d\uc5b4 \ubd24\ub294\ub370&#8230;<br \/>\uacb0\ub860\uc740 component scan\uc758 \uacfc\uc6a9\uacfc spring context \uc124\uc815\uc5d0 \ub300\ud55c \ubb34\uc9c0\ub85c \uc778\ud55c \uc124\uc815 \uc624\ub958&#8230; \ub784\uae4c..-_-a<\/p>\n<p>STS\uc5d0\uc11c Spring MVC Template \ud504\ub85c\uc81d\ud2b8\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8\ub97c \uc0dd\uc131\ud588\ub294\ub370, \uc774\ub807\uac8c \ud558\uba74<br \/>\uae30\ubcf8\uc801\uc73c\ub85c \uacc4\uce35 \uad6c\uc870\ub97c \uac16\ub294 \ub450 \uac1c\uc758 context\uac00 \uc0dd\uc131\ub41c\ub2e4.<br \/>root context <br \/>&nbsp;|- servlet context<\/p>\n<p>\uadf8\ub9ac\uace0, root context\uc758 \uc124\uc815 \ud30c\uc77c\uc740 \/WEB-INF\/spring\/root-context.xml \uc5d0,<br \/>servlet context \uc758 \uc124\uc815\ud30c\uc77c\uc740 \/WEB-INF\/spring\/appServlet\/servlet-context.xml \uc5d0 \uc800\uc7a5\ub41c\ub2e4.<\/p>\n<p>\ucc38\uace0\ub85c, root context\uc758 \ube48\uc740 servlet context \uc5d0\uc11c \ucc38\uc870 \uac00\ub2a5\ud558\ub098, \uadf8 \ubc18\ub300\ub294 \uc548\ub418\uace0,<br \/>root context\uc640 servlet context\uc5d0 \ub3d9\uc77c\ud55c \ube48\uc774 \uc788\uc73c\uba74, root context\uc758 \ube48\uc740 \ubb34\uc2dc\ub420 \uc218 \uc788\ub2e4\uace0 \ud55c\ub2e4.<\/p>\n<div>\uc5ec\uae30\uc11c servlet context \uc124\uc815 \ud30c\uc77c\uc5d0 &lt;context:component-scan basePackage=&#8221;z.y.x&#8221; \/&gt; \ub97c \ub123\uc740 \uac83\uc774 \ud654\uadfc.<br \/>\uc704\uc758 data source, transaction, mybatis \uad00\ub828 \uc124\uc815\uc740 \ubaa8\ub450 root context\uc758 \uc124\uc815\uc5d0 \ucd94\uac00 \ub418\uc5b4 \uc788\uc73c\uba70,<\/p>\n<div>root context \uc124\uc815 \ud30c\uc77c\uc5d0\ub3c4<br \/>\n&lt;context:component-scan basePackage=&#8221;z.y.x&#8221; \/&gt; \uac00 \ucd94\uac00\ub418\uc5b4\uc788\ub2e4.<\/div>\n<p>\uc5ec\uae30\uc11c \ubb38\uc81c\ub294 AOP \uc124\uc815\uc740 \ub2e4\ub978 context\uc5d0\ub294 \uc601\ud5a5\uc744 \ubbf8\uce60 \uc218 \uc5c6\ub2e4\ub294 \uac83\uacfc<br \/>root context\uc640 servlet context\uc5d0 \ub3d9\uc77c\ud55c \ube48\uc774 \uc788\uc73c\uba74, root context\uc758 \ube48\uc740 \ubb34\uc2dc\ub420 \uc218 \uc788\ub2e4\ub294 \uac83.<\/p>\n<p>servlet context\uc5d0\uc11c &nbsp;&lt;context:component-scan basePackage=&#8221;z.y.x&#8221; \/&gt; \uc744 \ud574\ubc84\ub838\uae30 \ub54c\ubb38\uc5d0,<\/p>\n<p>@Component, @Control, @Service, @Repository \uac00 \ubd99\uc740 \ubaa8\ub4e0 \ube48\uc740 root context\uc5d0\uc11c \ubb34\uc2dc\ub420 \uac00\ub2a5\uc131\uc774 \ub192\ub2e4.<br \/>\uac70\uae30\ub2e4 transaction \uacbd\uacc4\ub97c \uc124\uc815 \ud558\ub294 AOP \uc124\uc815\uc774 root context\uc5d0 \uc788\uc73c\ub2c8&#8230;<br \/>root context \uc124\uc815\uc5d0\uc11c component scan \ud588\ub2e4\uace0 \ud558\ub354\ub77c\ub3c4 \ubaa8\uc870\ub9ac \ubb34\uc2dc\ub418\ub2c8 root context \ub0b4\uc5d0\uc11c\ub294 AOP \uc124\uc815\uc774 \uc548\ub418\uace0,<br \/>AOP \uc124\uc815\uc774 servlet context\uc5d0\ub294 \uc801\uc6a9\ub418\uc9c0 \uc54a\uc73c\ub2c8, \uacb0\uad6d \uc5b4\ub514\uc5d0\ub3c4 transaction \uc124\uc815\uc774 \ub418\uc9c0 \uc54a\ub294 \uac83\uc774\uc9c0=_=<\/p>\n<p>DAO \uac19\uc740 \uacbd\uc6b0\uc5d0\ub294 root context\uc5d0 MyBatis \uc124\uc815\uc774 \uc788\uc73c\ub2c8, component scan\uc5d0\ub294 \uac78\ub9ac\uc9c0 \uc54a\uace0<br \/>root context\uc758 \ube48\uc73c\ub85c \ub4f1\ub85d\ub418\uc5b4 transaction\uc774 \uc798 \uc801\uc6a9\ub410\ub358 \uac83\uc774\uc9c0. \ub374\uc7a5 OTL<br \/>\ub9dd\ud560\ub188\uc758 STS\ub294 context \uac04\uc758 \uad00\uacc4\ub97c \uc54c\ub9ac\uac00 \uc5c6\uc73c\ub2c8 \uc124\uc815\uc5d0 \uc788\uc73c\uba74 transaction \ud45c\uc2dc\ub97c \ud574\uc92c\ub358 \uac83\uc774\uace0;<\/p>\n<p>\uba38.. \uc554\ud2bc root context \uc124\uc815\uc5d0\uc11c\ub294 \uc694\ub807\uac8c,<\/p>\n<blockquote><p>&lt;context:component-scan basePackage=&#8221;z.y.x.service&#8221; \/&gt;<\/p><\/blockquote>\n<p>servlet context \uc124\uc815\uc5d0\uc11c\ub294 \uc694\ub807\uac8c,<br class=\"Apple-interchange-newline\"><\/p>\n<blockquote><p>&lt;context:component-scan basePackage=&#8221;z.y.x.controller&#8221; \/&gt;<\/p><\/blockquote>\n<p>\ud574\uc8fc\ub294 \uac83\uc73c\ub85c \ubaa8\ub4e0 \ubb38\uc81c \ud574\uacb0!<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\uc694\uc998 \ub4a4\ub2a6\uac8c spring\uc744 \uc4f4\ub2e4\uace0 \uc0bd\uc9c8\uc5d0 \uc5ec\ub150\uc774 \uc5c6\ub2e4=_=\uc5b4\uc81c\ub294 Transaction \uc124\uc815\uc744 \ucd94\uac00\ud588\ub294\ub370, \uc774\ub7f4\uc218\uac00 \uc801\uc6a9\uc774 \uc548\ub418\ub294 \uac83\uc774\ub2e4;;;STS\uc5d0\uc11c transaction \ud45c\uc2dc\ub3c4 \uc798 \ub418\uace0, \uc124\uc815\uc740 \uba87 \ubc88\uc774\ub098 \uac80\ud1a0\ud574\ub3c4 \ud2c0\ub9b0\uac8c \uc5c6\ub294\ub370 \ub9d0\uc774\ub2e4. maven\uc744 \uc704\ud574 pom.xml\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc774 \ucd94\uac00\ud574 \uc8fc\uace0 &lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;\/groupId&gt; &lt;artifactId&gt;spring-tx&lt;\/artifactId&gt; &lt;version&gt;${org.springframework-version}&lt;\/version&gt; &lt;\/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.aspectj&lt;\/groupId&gt; &lt;artifactId&gt;aspectjweaver&lt;\/artifactId&gt; &lt;version&gt;1.5.4&lt;\/version&gt; &lt;\/dependency&gt; \ub2e4\uc74c\uacfc \uac19\uc774 spring \uc5d0 data source, transaction manager \ube48\uc744 \ucd94\uac00\ud558\uace0,service \ud074\ub798\uc2a4\uc5d0\uc11c transaction \uc774 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[36],"class_list":["post-480","post","type-post","status-publish","format-standard","hentry","category-pogramming","tag-spring"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts\/480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=480"}],"version-history":[{"count":0,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts\/480\/revisions"}],"wp:attachment":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}