{"id":483,"date":"2012-06-08T02:45:45","date_gmt":"2012-06-08T02:45:45","guid":{"rendered":"http:\/\/nangchang.nes.or.kr\/?p=483"},"modified":"2012-06-08T02:45:45","modified_gmt":"2012-06-08T02:45:45","slug":"spring-dbunit-%ec%9d%84-%ec%9d%b4%ec%9a%a9%ed%95%9c-rollback-test","status":"publish","type":"post","link":"https:\/\/nangchang.nes.or.kr\/?p=483","title":{"rendered":"Spring, DbUnit \uc744 \uc774\uc6a9\ud55c rollback test"},"content":{"rendered":"<p>Spring\uc73c\ub85c \uac1c\ubc1c \uc911\uc5d0 DbUnit\uc744 \uc774\uc6a9\ud574\uc11c DAO \ucf54\ub4dc\ub97c \ud14c\uc2a4\ud2b8 \ud558\uace0 \uc788\ub2e4.<br \/>(Spring 3.1.0, DbUnit 2.4.8 \uc0ac\uc6a9 \uc911\uc774\ub2e4)<\/p>\n<p>\ucc45\uc744 \ubcf4\ub2e4\ubcf4\ub2c8 rollback \ud14c\uc2a4\ud2b8\ub77c\ub294\uac8c \uc788\uc5b4\uc11c \uc801\uc6a9\ud574 \ubd24\ub294\ub370 \uc798 \uc548\ub418\uc11c \uc0bd\uc9c8 \uc880 \ud588\ub2e4=_=<\/p>\n<p>==<\/p>\n<p>rollback \ud14c\uc2a4\ud2b8\ub77c\ub294 \uac1c\ub150\uc740 \ud14c\uc2a4\ud2b8\ub97c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ud2b8\ub79c\uc7ad\uc158\uc744 \uc2dc\uc791\ud574 \uc8fc\uace0,<br \/>\ud14c\uc2a4\ud2b8 \uc885\ub8cc \uc2dc rollback \uc2dc\ucf1c \ubc84\ub9ac\ub294 \uac83\uc774\ub2e4.<br \/>\ub9c8\uc9c0\ub9c9\uc5d0 rollback\uc744 \ud574\ubc84\ub9ac\ub2c8 \ud14c\uc2a4\ud2b8 \uc911\uc5d0 \ubb34\uc2a8 \uc9d3\uc744 \ud574\ubc84\ub824\ub3c4 \uc0c1\uad00\uc5c6\ub2e4. \uc2ec\uc9c0\uc5b4 \ub370\uc774\ud130\ub97c \ub2e4 \ub0a0\ub824\ub3c4..<br \/>\ub530\ub85c \ud14c\uc2a4\ud2b8 DB\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub418\uace0, \uac19\uc740 DB\ub85c \uc5ec\ub7ec\uba85\uc774 \ub3d9\uc2dc\uc5d0 \ud14c\uc2a4\ud2b8\ub97c \ub3cc\ub824\ub3c4 \uc11c\ub85c<br \/>\uc601\ud5a5\uc744 \ubc1b\uc9c0 \uc54a\uc73c\ub2c8 \uaf64 \uc720\uc6a9\ud560 \uac70 \uac19\uc544\uc11c \uc801\uc6a9\uc744 \ud574\ubcf4\uae30\ub85c \ud588\ub2e4.<\/p>\n<p>\ud2b8\ub79c\uc7ad\uc158\uc740 @Transactional \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud574\uc11c \uac78\uc5b4\uc900\ub2e4.<br \/>\uc6b0\uc120 \ucee8\ud14d\uc2a4\ud2b8 \uc124\uc815 \ud30c\uc77c\uc5d0 \ub2e4\uc74c\uc744 \ucd94\uac00\ud574 \uc900\ub2e4.<\/p>\n<blockquote><p>&lt;tx:annotation-driven \/&gt;<\/p><\/blockquote>\n<p>\uadf8\ub9ac\uace0, Test \ud074\ub798\uc2a4\uc5d0 @Transactional \uc744 \ubd99\uc5ec \uc900\ub2e4.<\/p>\n<blockquote><p>@RunWith(SpringJUnit4ClassRunner.class)<br \/>@ContextConfiguration(locations={&#8220;\/z\/y\/x\/test-context.xml&#8221;})<br \/><strong>@Transactional<\/strong><br \/>public class AppDaoTest {<br \/>&#8230;<\/p><\/blockquote>\n<p>\uadf8\ub0e5 \uc694\ub807\uac8c\ub9cc \ubd99\uc5ec \uc8fc\uba74, \ub9c8\uc9c0\ub9c9\uc5d0 \uadf8\ub0e5 rollback\uc774 \ub41c\ub2e4\uace0 \ud55c\ub2e4.<\/p>\n<blockquote><p>\ud2b8\ub799\uc7ad\uc158 \uc2dc\uc791 -&gt; @Before \ub9e4\uc18c\ub4dc \uc2e4\ud589 -&gt; @Test \ub9e4\uc18c\ub4dc \uc2e4\ud589 -&gt; @After \ub9e4\uc18c\ub4dc \uc2e4\ud589 -&gt; rollback<\/p><\/blockquote>\n<p>\uc694\ub7f0 \uc21c\uc11c\ub85c \uc9c4\ud589\uc774 \ub418\ubbc0\ub85c, @Before\uac00 \ubd99\uc740 \ub9e4\uc18c\ub4dc\uc5d0\uc11c \ub370\uc774\ud130 \ucd08\uae30\ud654 \ub4f1\uc744 \ud574\uc8fc\uba74 \ub41c\ub2e4.<br \/>AOP\ub85c \ud2b8\ub79c\uc7ad\uc158\uc744 \uc4f8\ub54c\ub294 \uad1c\ucc2e\uc558\ub294\ub370, \uc5b4\ub178\ud14c\uc774\uc158\uc73c\ub85c \ud558\ub2c8\uac00 CGLIB\uac00 \ud544\uc694\ud574\uc11c maven\uc5d0 \ucd94\uac00\ud574\uc92c\ub2e4.<\/p>\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;cglib&lt;\/groupId&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;artifactId&gt;cglib&lt;\/artifactId&gt;<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>&lt;version&gt;2.2.2&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\uc73c\ub85c, DbUnit \uc5d0\uc11c Spring \uc5d0\uc11c \ud2b8\ub79c\uc7ad\uc158\uc744 \uc2dc\uc791\ud55c \uac83\uacfc \ub3d9\uc77c\ud55c \ucee4\ub125\uc158\uc744 \uc0ac\uc6a9\ud558\ub3c4\ub85d \ud574\uc8fc\ub294 \uac83\uc774 \ud575\uc2ec\uc778\ub370,<br \/>\uc5ec\uae30\uc11c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud574\uc11c \uace0\uc0dd\uc744 \uc880 \ud588\ub2e4.=_=<br \/>\uc6d0\ub798 IDatabaseTester \ub97c \uc0ac\uc6a9\ud574\uc11c \ud14c\uc2a4\ud2b8 \uc911\uc778\ub370, \ucc38\uace0\ud55c \ucc45\uc774\ub098 \uad6c\uae00\uc2e0\uaed8 \ubb3c\uc5b4 \ubd10\ub3c4 \uc774\uac70 \ub9d0\uace0 \ub2e4\ub978\uac78 \uc0ac\uc6a9\ud55c<br \/>\uc608\uc81c\uac00 \ub9ce\uc774 \ub098\uc628\ub2e4. \ub09c \uadf8\uac78\ub85c \ud558\ub2c8\uae4c \uba3c\uac00 \ubb38\uc81c\uac00 \uc790\uafb8 \uc0dd\uaca8\uc11c \uc774\uac78\ub85c \ud14c\uc2a4\ud2b8 \uc911\uc774\ub2e4.<br \/>\uc5b4\uca0c\ub4e0, \uc911\uc694\ud55c\uac74 \ub3d9\uc77c\ud55c \ucee4\ub125\uc158\uc744 \uc4f0\uba74 \ub418\ub2c8\uae4c..<\/p>\n<blockquote><p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&nbsp;&#8230; <\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>@Inject<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>private DataSource dataSource;<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>private IDatabaseTester databaseTester;<br \/><br class=\"Apple-interchange-newline\"><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>@Before<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>public void setUp() {<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>final Connection conn = DataSourceUtils.getConnection(dataSource);<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>final DatabaseConnection dbConn = new DatabaseConnection(conn);<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span><br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>databaseTester = new DefaultDatabaseTester(dbConn);<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>databaseTester.setDataSet(getDataSet());<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>databaseTester.onSetup();<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&nbsp;}<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&nbsp;&#8230;<\/p><\/blockquote>\n<p>dataSource \ub97c inject \ubc1b\uc740 \ub2e4\uc74c\uc5d0 connection\uc744 \uc678\ubd80\uc5d0\uc11c \ubc1b\uc544\uc11c \uc4f0\ub294 DefaultDatabaseTester \uac1d\uccb4\ub97c \ub9cc\ub4e4\uc5c8\ub2e4.<br \/>DefaultDatabaseTester \ub294 \ucee4\ub125\uc158\uc744 \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc740 \ubaa8\ub974\uace0, \ub2e8\uc9c0 \uc678\ubd80\uc5d0\uc11c \ubc1b\uc740 \ucee4\ub125\uc158\uc744 \uc0ac\uc6a9\ud560 \ubfd0\uc774\ub2e4.<\/p>\n<p>\uc790.. \uc774\uc81c \ud14c\uc2a4\ud2b8\ub97c \ub3cc\ub9ac\uba74&#8230; \uc804\ubd80 \uc2e4\ud328=_=<br \/>\uc774\ub7f0..\ub3c4\ub300\uccb4 \uba38\uac00 \ubb38\uc81c\uc9c0? \uba54\uc2dc\uc9c0\ub97c \ubcf4\uba74 \uc8c4\ub2e4 \ucee4\ub125\uc158\uc774 \uc774\ubbf8 close \ub410\ub2e4\ub294 \uc5d0\ub7ec\ub2e4. <br \/>\ud5c9.. \ub3c4\uc800\ud788 \uc54c \uc218 \uc5c6\ub294 \uc0c1\ud669;;;;<\/p>\n<p>\uc774\ub7f0 \uc800\ub7f0 \uc0bd\uc9c8\ud558\ub2e4\uac00, \uba54\uc2dc\uc9c0\ub97c \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\ub2c8&#8230; setUp()\uc740 \uc815\uc0c1\uc801\uc73c\ub85c \uc9c4\ud589\ub418\uace0, \uadf8 \ub2e4\uc74c\uc5d0 \uc5d0\ub7ec\uac00 \ub098\ub294\uac70 \uac19\ub2e4.<br \/>\uadf8\ub7fc, setUp() \ud6c4\uc5d0 \ucee4\ub125\uc158\uc774 \ub2eb\ud614\ub2e4\ub294 \ub9d0\uc778\ub370&#8230; \ub3c4\uc800\ud788 \uc774\ud574\uac00 \uc548\ub418\ub294 \uc0c1\ud669&#8230; <br \/>DefaultDatabaseTester &nbsp;\ub97c \uc4f0\uba74 \uc548\ub418\ub294\uac00 \uc2f6\uc5b4\uc11c \ub2e4\ub978 \uac83\ub3c4 \uc368\ubcf4\uace0, \uc774\ub798\uc800\ub798 \ucc3e\uc544 \ubd24\uc9c0\ub9cc.. \ubbf8\uad81 \uc18d\uc774\ub2e4.<\/p>\n<p>\uacb0\uad6d log4jdbc \ub514\ubc84\uadf8 \uba54\uc2dc\uc9c0\ub97c \ucc0d\uace0 DbUnit \uc18c\uc2a4\uae4c\uc9c0 \ub4a4\uc838\uc11c \uc54c\uc544\ub0b8 \uc0ac\uc2e4\uc740&#8230;<\/p>\n<p>DefaultDatabaseTester.onSetup() \ud638\ucd9c \ub9c8\uc9c0\ub9c9\uc5d0 \ucee4\ub125\uc158\uc744 \ub2eb\uc544 \ubc84\ub9b0\ub2e4\ub294\uac83=_=;;;<\/p>\n<p>DefaultDatabaseTester\ub294 AbstractDatabaseTester\ub97c \uc0c1\uc18d\ud558\uace0, AbstractDatabaseTester\uc5d0\uc11c\ub294<br \/>IOperationListener \ub97c \uc0ac\uc6a9\ud574\uc11c \ucee4\ub125\uc158\uc744 \uac00\uc838\uc628 \ud6c4, onSetUp() \ud638\ucd9c \ud6c4, onTearDown() \ud638\ucd9c \ud6c4 \uc791\uc5c5\uc744 \ucc98\ub9ac\ud55c\ub2e4.<br \/>\uc5ec\uae30\uc11c \ub514\ud3f4\ud2b8\ub85c \uc4f0\ub294 \ub9ac\uc2a4\ub108\uac00 DefaultOperationListener \uc778\ub370, \uc598\ub294, onSetUp(), onTearDown() \ud6c4 \ubb34\uc870\uac74<br \/>\ucee4\ub125\uc158\uc744 \uc885\ub8cc\ud558\ub3c4\ub85d \ub418\uc5b4 \uc788\ub294 \uac83\uc774\ub2e4;;<\/p>\n<p>\uc678\ubd80\uc5d0\uc11c \ucee4\ub125\uc158\uc744 \ubc1b\uc544\uc4f0\ub294 DefaultDatabaseTester \uc5d0\uc11c \uc774 \ub3d9\uc791\uc744 \uc624\ubc84\ub77c\uc774\ub529 \uc548 \ud588\ub2e4\ub294\uac74<br \/>\uc880 \uc774\ud574\ud558\uae30 \uc5b4\ub824\uc6b4\ub370.. \ubc84\uadf8\uc778\uc9c0 \uba3c\uc9c0 \ubaa8\ub974\uaca0\uc9c0\ub9cc.. \uc5b4\uca0c\ub4e0 \uc548\ub418\uba74 \ubc14\uafd4\uc57c\uc9c0=_=<br \/>\ub2e4\ud589\ud788(?) IOperationListener\ub294 \ubcc0\uacbd\uc774 \uac00\ub2a5\ud558\ub2e4.<\/p>\n<p>\uadf8\ub798\uc11c, \uc544\ubb34\uac83\ub3c4 \uc548\ud558\ub294 DummyOperationListener\ub97c \uc815\uc758\ud574 \uc8fc\uace0,<\/p>\n<blockquote><p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t<\/span>private class DummyOperationListener implements IOperationListener {<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>@Override<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>public void connectionRetrieved(IDatabaseConnection connection) {<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>\/\/ do nothing<span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span><br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>}<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>@Override<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>public void operationSetUpFinished(IDatabaseConnection connection) {<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>\/\/ do nothing<span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span><br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>}<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>@Override<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t<\/span>public void operationTearDownFinished(IDatabaseConnection connection) {<br \/><span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span>\/\/ do nothing<span class=\"Apple-tab-span\" style=\"white-space:pre\">\t\t\t<\/span><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>}<\/p><\/blockquote>\n<p>IDatabaseTester \uac1d\uccb4 \uc0dd\uc131 \ud6c4, operation listener\ub85c \uc124\uc815\ud574 \uc92c\ub2e4.<\/p>\n<blockquote>\n<div><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&nbsp;&#8230; <\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>@Inject<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>private DataSource dataSource;<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>private IDatabaseTester databaseTester;<br \/><br class=\"Apple-interchange-newline\"><br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>@Before<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>public void setUp() {<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t\t\t<\/span>final Connection conn = DataSourceUtils.getConnection(dataSource);<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t\t\t<\/span>final DatabaseConnection dbConn = new DatabaseConnection(conn);<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t\t\t<\/span><br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t\t\t<\/span>databaseTester = new DefaultDatabaseTester(dbConn);<span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t\t\t<\/span><strong>databaseTester.setOperationListener(new DummyOperationListener());<\/strong><\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t\t<\/span>databaseTester.setDataSet(getDataSet());<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>databaseTester.onSetup();<br \/><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&nbsp;}<\/p>\n<p><span class=\"Apple-tab-span\" style=\"white-space: pre; \">\t<\/span>&nbsp;&#8230;<\/div>\n<\/blockquote>\n<p>\uc774\uc81c \ud14c\uc2a4\ud2b8\ub97c \ub3cc\ub824\ubcf4\uba74&#8230; \uc9dc\uc794~ \uc131\uacf5.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring\uc73c\ub85c \uac1c\ubc1c \uc911\uc5d0 DbUnit\uc744 \uc774\uc6a9\ud574\uc11c DAO \ucf54\ub4dc\ub97c \ud14c\uc2a4\ud2b8 \ud558\uace0 \uc788\ub2e4.(Spring 3.1.0, DbUnit 2.4.8 \uc0ac\uc6a9 \uc911\uc774\ub2e4) \ucc45\uc744 \ubcf4\ub2e4\ubcf4\ub2c8 rollback \ud14c\uc2a4\ud2b8\ub77c\ub294\uac8c \uc788\uc5b4\uc11c \uc801\uc6a9\ud574 \ubd24\ub294\ub370 \uc798 \uc548\ub418\uc11c \uc0bd\uc9c8 \uc880 \ud588\ub2e4=_= == rollback \ud14c\uc2a4\ud2b8\ub77c\ub294 \uac1c\ub150\uc740 \ud14c\uc2a4\ud2b8\ub97c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ud2b8\ub79c\uc7ad\uc158\uc744 \uc2dc\uc791\ud574 \uc8fc\uace0,\ud14c\uc2a4\ud2b8 \uc885\ub8cc \uc2dc rollback \uc2dc\ucf1c \ubc84\ub9ac\ub294 \uac83\uc774\ub2e4.\ub9c8\uc9c0\ub9c9\uc5d0 rollback\uc744 \ud574\ubc84\ub9ac\ub2c8 \ud14c\uc2a4\ud2b8 \uc911\uc5d0 \ubb34\uc2a8 \uc9d3\uc744 \ud574\ubc84\ub824\ub3c4 \uc0c1\uad00\uc5c6\ub2e4. \uc2ec\uc9c0\uc5b4 \ub370\uc774\ud130\ub97c \ub2e4 \ub0a0\ub824\ub3c4..\ub530\ub85c [&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":[17,36],"class_list":["post-483","post","type-post","status-publish","format-standard","hentry","category-pogramming","tag-dbunit","tag-spring"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts\/483","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=483"}],"version-history":[{"count":0,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts\/483\/revisions"}],"wp:attachment":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}