{"id":929,"date":"2016-09-20T20:17:11","date_gmt":"2016-09-20T11:17:11","guid":{"rendered":"http:\/\/now0930.iptime.org\/wordpress\/?p=929"},"modified":"2016-09-20T20:17:11","modified_gmt":"2016-09-20T11:17:11","slug":"java-%ec%97%90%ec%84%9c-interface%eb%a5%bc-%ec%82%ac%ec%9a%a9%ed%95%98%ec%97%ac-callback-%ea%b5%ac%ed%98%84%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/now0930.pe.kr\/wordpress\/java-%ec%97%90%ec%84%9c-interface%eb%a5%bc-%ec%82%ac%ec%9a%a9%ed%95%98%ec%97%ac-callback-%ea%b5%ac%ed%98%84%ed%95%98%ea%b8%b0\/","title":{"rendered":"Java \uc5d0\uc11c Interface\ub97c \uc0ac\uc6a9\ud558\uc5ec Callback \uad6c\ud604\ud558\uae30"},"content":{"rendered":"<div id=\"js-post-content\" class=\"text\">\n<h5>\uc2a4\ud06c\ub7a9 : http:\/\/blog.saltfactory.net\/java\/implement-java-callback.html<\/h5>\n<h2 id=\"section\">\uc11c\ub860<\/h2>\n<p>\ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \uaf64 \uc720\uc6a9\ud55c \uae30\ub2a5\ub4e4\uc774 \uc788\ub294\ub370 \uadf8\uc911\uc5d0\uc11c \ud558\ub098\uac00 \ubc14\ub85c Callback \uc774\ub77c\ub294 \uac83\uc774\ub2e4. Callback\uc740 Windows \uac1c\ubc1c\uc790\ub77c\uba74 \uc775\ud788\ub4e4 \uc54c\uace0 \uc788\uc9c0\ub9cc Java \uac1c\ubc1c\uc790\ub77c\uba74 \uc5b4\uca4c\uba74 \ub0af\uc120 \ub2e8\uc5b4\uc77c\uc218\ub3c4 \uc788\ub2e4. \ud558\uc9c0\ub9cc Java \uac1c\ubc1c\uc790\ub4e4\uc5d0\uac8c Listner\uc640 \ube44\uc2b7\ud55c\uac70\ub77c\uace0 \ud558\uba74 \ub300\ub7b5\uc801\uc778 Callback\uc758 \uc758\ubbf8\ub97c \uc0c1\uc0c1\ud560 \uc218 \uc788\uc744\uac70\ub77c \uc608\uc0c1\ub41c\ub2e4. \ubcf4\ud1b5 Callback\uacfc Listener\ub294 \uc5b4\ub5a0\ud55c \uc77c\uc744 \ucc98\ub9ac\ud558\uae30 \uc704\ud574\uc11c \ud504\ub85c\uc138\uc2a4\uac00 \uc9c4\ud589\ud558\ub294 \ub3c4\uc911\uc5d0 \ub2e4\ub978 \uc774\ubca4\ud2b8 \ucc98\ub9ac\uc5d0 \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc774\ub2e4. \ud558\uc9c0\ub9cc \uc740\ubc00\ud788 \ub9d0\ud558\uba74 \uc774 \ub450\uac00\uc9c0\ub294 \ub514\uc790\uc778 \ud328\ud134(Pattern)\uc774 \ub2e4\ub974\ub2e4. Callback\uc740 Command Pattern\uc744 \ub530\ub974\uace0 \uc788\uace0 Listener\ub294 Observer Pattern\uc744 \ub530\ub974\uace0 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4. \uc774 \ub450\uac00\uc9c0\uc758 \ucc28\uc774\uc810\uc740 \ub098\uc911\uc5d0 \ub2e4\ub978 \ud3ec\uc2a4\ud305\uc5d0\uc11c Listener\ub97c \uc124\uba85\ud558\uba74\uc11c \ub2e4\uc2dc \ud55c\ubc88 \uc790\uc138\ud788 \uc5b8\uae09\ud558\uaca0\ub2e4.<\/p>\n<p>\uc77c\ubc18\uc801\uc73c\ub85c \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c Callback \uc774\ub77c\ub294 \uc6a9\uc5b4\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uc774\uc57c\uae30 \ud55c\ub2e4.<\/p>\n<blockquote><p>\ud638\ucd9c\uc790(Caller)\uac00 \ud53c\ud638\ucd9c\uc790(Callee)\ub97c \ud638\ucd9c\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \ud53c\ud638\ucd9c\uc790(Callee)\uac00 \ud638\ucd9c\uc790(Caller)\ub97c \ud638\ucd9c\ud558\ub294 \uac83\uc744 \ub9d0\ud55c\ub2e4.<\/p><\/blockquote>\n<p>(\ucc38\uc870 http:\/\/cafe.naver.com\/devctrl.cafe?iframe_url=\/ArticleRead.nhn%3Farticleid=1727)<\/p>\n<p>\uc704\ud0a4\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758\ud558\uace0 \uc788\ub2e4.<\/p>\n<blockquote><p>\ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \ucf5c\ubc31(callback)\uc740 \ub2e4\ub978 \ucf54\ub4dc\uc758 \uc778\uc218\ub85c\uc11c \ub118\uaca8\ubc1b\ub294 \uc11c\ube0c\ub8e8\ud2f4\uc774\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub192\uc740 \uc218\uc900\uc758 \uce35\uc5d0 \uc815\uc758\ub41c \uc11c\ube0c\ub8e8\ud2f4(\ub610\ub294 \ud568\uc218)\uc744 \ub0ae\uc740 \uc218\uc900\uc758 \ucd94\uc0c1\ud654\uce35\uc774 \ud638\ucd9c\ud560 \uc218 \uc788\uac8c \ub41c\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c \uba3c\uc800 \ub192\uc740 \uc218\uc900\uc758 \ucf54\ub4dc\uac00 \ub0ae\uc740 \uc218\uc900\uc758 \ucf54\ub4dc\uc5d0 \uc788\ub294 \ud568\uc218\ub97c \ud638\ucd9c\ud560 \ub54c, \ub2e4\ub978 \ud568\uc218\uc758 \ud3ec\uc778\ud130\ub098 \ud578\ub4e4\uc744 \ub118\uaca8\uc900\ub2e4. \ub0ae\uc740 \uc218\uc900\uc758 \ud568\uc218\ub97c \uc2e4\ud589\ud558\ub294 \ub3d9\uc548\uc5d0 \uadf8 \ub118\uaca8\ubc1b\uc740 \ud568\uc218\ub97c \uc801\ub2f9\ud788 \ud68c\uc218, \ud638\ucd9c\ud558\uace0, \ubd80\ubd84 \uc791\uc5c5\uc744 \uc2e4\ud589\ud558\ub294 \uacbd\uc6b0\ub3c4 \uc788\ub2e4. \ub2e4\ub978 \ubc29\uc2dd\uc73c\ub85c\ub294 \ub0ae\uc740 \uc218\uc900\uc758 \ud568\uc218\ub294 \ub118\uaca8\ubc1b\uc740 \ud568\uc218\ub97c \u2018\ud578\ub4e4\ub7ec\u2019\ub85c\uc11c \ub4f1\ub85d\ud558\uace0, \ub0ae\uc740 \uc218\uc900\uc758 \uce35\uc5d0\uc11c \ube44\ub3d9\uae30\uc801\uc73c\ub85c(\uc5b4\ub5a0\ud55c \ubc18\uc751\uc758 \uc77c\ubd80\ub85c\uc11c) \ub2e4\uc74c\uc5d0 \ud638\ucd9c\ud558\ub294\ub370 \uc0ac\uc6a9\ud55c\ub2e4. \ucf5c\ubc31\uc740 \ud3f4\ub9ac\ubaa8\ud53c\uc998\uacfc \uc81c\ub124\ub9ad\ud504\ub85c\uadf8\ub798\ubc0d\uc758 \ub2e8\uc21c\ud654\ub41c \ub300\uccb4 \uc218\ubc95\uc774\uba70, \uc5b4\ub5a4 \ud568\uc218\uc758 \uc815\ud655\ud55c \ub3d9\uc791\uc740 \uadf8 \ub0ae\uc740 \uc218\uc900\uc758 \ud568\uc218\uc5d0 \ub118\uaca8\uc8fc\ub294 \ud568\uc218 \ud3ec\uc778\ud130(\ud578\ub4e4\ub7ec)\uc5d0 \uc758\ud574 \ubc14\ub010\ub2e4. \uc774\uac83\uc740 \ucf54\ub4dc \uc7ac\uc0ac\uc6a9\uc744 \ud558\ub294 \ub9e4\uc6b0 \uac15\ub825\ud55c \uae30\ubc95\uc774\ub77c\uace0 \ub9d0\ud560 \uc218 \uc788\ub2e4.<\/p><\/blockquote>\n<p>\uc704\uc758 \uc815\uc758\uc5d0\uc11c \ubcf4\ub4ef callback\uc740 \ud3ec\uc778\ud130\ub098 \ud578\ub4e4\ub7ec\ub97c \ub118\uaca8\uc918\uc11c \ud53c\ud638\ucd9c\uc790(Callee)\uac00 \ud638\ucd9c\uc790(Caller)\ub97c \ud638\ucd9c\ud558\ub294 \uae30\ubc95\uc73c\ub85c \ucf54\ub4dc \uc7ac\uc0c1\uc6a9\uc774 \uac00\ub2a5\ud558\uace0, \ube44\ub3d9\uae30\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\uc73c\uba70 \ud568\uc218\ub97c \ucd94\uc0c1\ud654 \ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 UI\ub098 \ube44\ub3d9\uae30 \ucc98\ub9ac \uc2dc\uc2a4\ud15c\uc5d0\uc11c callback \uae30\ubc95\uc744 \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<h2 id=\"android-callback\">Android\uc5d0\uc11c Callback<\/h2>\n<p>\uc65c Java\uc5d0\uc11c Callback\uc744 \ud3ec\uc2a4\ud305\ud558\ub294\uac00 \ud558\uba74 \ubc14\ub85c Android \uc571\uc744 \uac1c\ubc1c\ud560 \ub54c Fragment\ub97c \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud55c \uc0d8\ud50c \ucf54\ub4dc\ub97c \ub9cc\ub4e4\uac8c \ub418\uba74 Activity\uc640 Fragment\uac00 \ubc14\ub85c Callback\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4. \uc544\ub798\ub294 \uc774\ud074\ub9bd\uc2a4\uc5d0\uc11c Fragment\ub97c \uc774\uc6a9\ud55c \uc608\uc81c\ub97c \uc0d8\ud50c\ub85c \ub9cc\ub4e4\uba74 \ub9cc\ub4e4\uc5b4\uc9c0\ub294 \ucf54\ub4dc\uc774\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">package net.saltfactory.tutorial;\r\n\r\nimport net.saltfactory.tutorial.dummy.DummyContent;\r\n\r\nimport android.R;\r\nimport android.app.Activity;\r\nimport android.os.Bundle;\r\nimport android.support.v4.app.ListFragment;\r\nimport android.view.View;\r\nimport android.widget.ArrayAdapter;\r\nimport android.widget.ListView;\r\n\r\n\r\npublic class ItemListFragment extends ListFragment {\r\n\r\n    private static final String STATE_ACTIVATED_POSITION = \"activated_position\";\r\n\r\n    private Callbacks mCallbacks = sDummyCallbacks;\r\n    private int mActivatedPosition = ListView.INVALID_POSITION;\r\n\r\n    public interface Callbacks {\r\n\r\n        public void onItemSelected(String id);\r\n    }\r\n\r\n    private static Callbacks sDummyCallbacks = new Callbacks() {\r\n        @Override\r\n        public void onItemSelected(String id) {\r\n        }\r\n    };\r\n\r\n    public ItemListFragment() {\r\n    }\r\n\r\n   ... \uc0dd\ub7b5 ...\r\n\r\n    @Override\r\n    public void onAttach(Activity activity) {\r\n        super.onAttach(activity);\r\n        if (!(activity instanceof Callbacks)) {\r\n            throw new IllegalStateException(\"Activity must implement fragment's callbacks.\");\r\n        }\r\n\r\n        mCallbacks = (Callbacks) activity;\r\n    }\r\n\r\n    @Override\r\n    public void onDetach() {\r\n        super.onDetach();\r\n        mCallbacks = sDummyCallbacks;\r\n    }\r\n\r\n    @Override\r\n    public void onListItemClick(ListView listView, View view, int position, long id) {\r\n        super.onListItemClick(listView, view, position, id);\r\n        mCallbacks.onItemSelected(DummyContent.ITEMS.get(position).id);\r\n    }\r\n\r\n    ... \uc0dd\ub7b5<\/pre>\n<p>\uc704 \ucf54\ub4dc\ub97c \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\uba74 Callback\uc744 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c Java\uc758 Interface\ub97c \uc0ac\uc6a9\ud55c \uac83\uc744 \ud655\uc778 \ud560 \uc218 \uc788\ub2e4.<\/p>\n<h2 id=\"interface--callback-\">Interface\ub97c \uc0ac\uc6a9\ud558\uc5ec Callback \uad6c\ud604<\/h2>\n<p>Java\uc5d0\uc11c\ub294 Callback\uc744 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c interface\ub97c \uc0ac\uc6a9\ud55c\ub2e4. \uc880\ub354 \uc774\ud574\ub97c \ub3d5\uae30 \uc704\ud574\uc11c \ub2e4\uc74c \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uc790.<\/p>\n<p>\ucc98\uc74c\uc73c\ub85c \uc0b4\ud3b4\ubcfc \uac83\uc740 Callback\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 Interface\ub97c \ub9cc\ub4dc\ub294 \uac83\uc774\ub2e4. \uadf8\ub9ac\uace0 \uadf8 \uc548\uc5d0\ub294 callbackMethod\ub97c \ucd94\uac00\ud55c\ub2e4.<\/p>\n<pre class=\"lang:java decode:true \">\/**\r\n * filename : CallbackEvent.java\r\n *\r\n *\/\r\npackage net.saltfactory.tutorial;\r\n\r\npublic interface CallbackEvent {\r\n\tpublic void callbackMethod();\r\n}<\/pre>\n<p>\ub2e4\uc74c\uc740 Callback\uc744 \uc678\ubd80\uc5d0\uc11c Callback method\ub97c \ub4f1\ub85d\ud560 \uc218 \uc788\ub294 EventRegistration \uc744 \ub9cc\ub4e0\ub2e4. \uc774\ub54c \uc0dd\uc131\uc790\uc5d0\uc11c Callback\uc73c\ub85c \uad6c\ud604\ub41c \uac1d\uccb4\ub97c \uc678\ubd80\uc5d0\uc11c \uc804\ub2ec \ubc1b\uc544\uc11c EventRegistration\uc758 doWork() \uba54\uc18c\ub4dc\uc5d0\uc11c \uc678\ubd80\uc5d0\uc11c \uc815\uc758\ud55c callbackMethod\ub97c \uc2e4\ud589\ud558\uac8c \ud55c\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">\/**\r\n * filename : EventRegistration.java\r\n *\r\n *\/\r\n\r\npackage net.saltfactory.tutorial;\r\n\r\npublic class EventRegistration {\r\n\tprivate CallbackEvent callbackEvent;\r\n\r\n\tpublic EventRegistration(CallbackEvent event){\r\n\t\tcallbackEvent = event;\r\n\t}\r\n\r\n\tpublic void doWork(){\r\n\t\tcallbackEvent.callbackMethod();\r\n\t}\r\n}<\/pre>\n<p>\ub2e4\uc74c\uc740 Main\uc5d0\uc11c \ud638\ucd9c\uc790(Caller)\uc640 \ud53c\ud638\ucd9c\uc790(Callee)\ub97c \ub9cc\ub4e4\uc5b4\uc11c \ucf5c\ubc31\uc744 \ud14c\uc2a4\ud2b8\ud55c\ub2e4. \uc544\ub798\uc640 \uac19\uc774 \ud638\ucd9c\uc790(caller)\uc5d0 \uad6c\ud604\ub41c callbackMethod\ub97c \ub4f1\ub85d\ud574\uc11c \ud53c\ud638\ucd9c\uc790(callee)\uac00 \ud638\ucd9c\uc790(caller)\uc5d0 \uad6c\ud604\ub41c callbackMethod\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\uac8c \ub418\uc5c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true \">\/**\r\n * filename :EventApplication.java\r\n *  \r\n *\/\r\n\r\npackage net.saltfactory.tutorial;\r\n\r\npublic class EventApplication {\r\n\r\n\t\/**\r\n\t * @param args\r\n\t *\/\r\n\tpublic static void main(String[] args) {\r\n\t\t\/\/ TODO Auto-generated method stub\r\n\t\tCallbackEvent callbackEvent = new CallbackEvent(){\r\n\r\n\t\t\t@Override\r\n\t\t\tpublic void callbackMethod() {\r\n\t\t\t\t\/\/ TODO Auto-generated method stub\r\n\t\t\t\tSystem.out.println(\"call callback method from callee\");\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\t\tEventRegistration eventRegistration = new EventRegistration(callbackEvent);\r\n\t\teventRegistration.doWork();\r\n\t}\r\n\r\n}<\/pre>\n<p>\uc774 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\uacfc\ub97c \ud655\uc778 \ud560 \uc218 \uc788\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/hbn-blog-assets.s3.amazonaws.com\/saltfactory\/images\/5ceb0086-f4c6-4033-a3e4-26490052248c\" alt=\"\" \/><\/p>\n<p>\uc774 \ucf54\ub4dc\ub97c \uc720\uc0ac\ud558\uac8c Android\uc5d0\uc11c\ub294 Activity\uc640 Fragment\uc5d0 Callback\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub294\ub370 \uc774\ub294 Fragment\ub294 \ubc18\ub4dc\uc2dc Activity\ub97c \uac00\uc838\uc57c\ud558\uace0 Fragment\ub294 Activity\uc758 \uba54\uc18c\ub4dc\ub97c \ube44\ub3d9\uae30\uc801\uc73c\ub85c \uc694\uccad\ud574\uc57c\ud558\uae30 \ub54c\ubb38\uc774\ub2e4. \uc774\uc640 \uac19\uc740 \uc0c1\ud669\uc744 \ucf5c\ubc31\uba54\uc18c\ub4dc\ub97c \uc774\uc6a9\ud574\uc11c \ube44\ub3d9\uae30\uc801\uc778 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uace0 \ucf54\ub4dc\ub97c \uc7ac\uc0ac\uc6a9\ud560 \uc218 \uc788\uac8c Java\uc758 Interface\ub97c \uc0ac\uc6a9\ud574\uc11c Callback\uc744 \uad6c\ud604\ud55c \uac83\uc774\ub2e4.<\/p>\n<h2 id=\"section-1\">\uacb0\ub860<\/h2>\n<p>Callback\uc740 \ud638\ucd9c\uc790(Caller)\uc5d0\uc11c \uad6c\ud604\ud55c \uba54\uc18c\ub4dc\ub97c \ud53c\ud638\ucd9c\uc790(Callee)\uac00 \ud638\ucd9c\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \uc774\ub807\uac8c \uc678\ubd80\uc5d0\uc11c \uba54\uc18c\ub4dc\ub97c \uad6c\ud604\ud654 \uc2dc\ud0a4\uae30 \ub54c\ubb38\uc5d0 \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\uc131\uc774 \ub192\uc544\uc9c4\ub2e4. \uadf8\ub9ac\uace0 Callback\ub294 \ud53c\ud638\ucd9c\uc790(Callee)\uac00 \ud638\ucd9c\uc790(Caller)\uc5d0\uac8c \ube44\ub3d9\uae30\uc801\uc73c\ub85c \uba54\uc138\uc9c0\ub97c \ubcf4\ub0b4\uc5b4\uc11c \ub370\uc774\ud130\ucc98\ub9ac\ub97c \ube44\ub3d9\uae30 \uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\ub294 \uc7a5\uc810\uc744 \uac00\uc9c4\ub2e4. \uc790\ubc14\uc5d0\uc11c \uc774\ub7ec\ud55c Callback \uad6c\ud604\uc740 Java\uc758 Interface\uc758 \ud2b9\uc9d5\uc744 \uc774\uc6a9\ud558\uc5ec \uad6c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n<h2 id=\"section-2\">\ucc38\uace0<\/h2>\n<ol>\n<li>http:\/\/blog.danieldee.com\/2009\/06\/callback-vs-listener.html<\/li>\n<li>http:\/\/cafe.naver.com\/devctrl.cafe?iframe_url=\/ArticleRead.nhn%3Farticleid=1727<\/li>\n<li>http:\/\/ko.wikipedia.org\/wiki\/\ucf5c\ubc31<\/li>\n<li>http:\/\/www.javaworld.com\/javatips\/jw-javatip10.html<\/li>\n<\/ol>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\uc2a4\ud06c\ub7a9 : http:\/\/blog.saltfactory.net\/java\/implement-java-callback.html \uc11c\ub860 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \uaf64 \uc720\uc6a9\ud55c \uae30\ub2a5\ub4e4\uc774 \uc788\ub294\ub370 \uadf8\uc911\uc5d0\uc11c \ud558\ub098\uac00 \ubc14\ub85c Callback \uc774\ub77c\ub294 \uac83\uc774\ub2e4. Callback\uc740 Windows \uac1c\ubc1c\uc790\ub77c\uba74 \uc775\ud788\ub4e4 \uc54c\uace0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[12],"tags":[97,98,96],"class_list":["post-929","post","type-post","status-publish","format-standard","hentry","category-12","tag-callback","tag-java","tag-96"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=929"}],"version-history":[{"count":1,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/929\/revisions"}],"predecessor-version":[{"id":930,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/929\/revisions\/930"}],"wp:attachment":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}