{"id":36221,"date":"2023-06-04T11:16:44","date_gmt":"2023-06-04T02:16:44","guid":{"rendered":"https:\/\/m9js.shop\/blog\/?p=36221"},"modified":"2023-06-04T11:16:44","modified_gmt":"2023-06-04T02:16:44","slug":"implementing-the-singleton-pattern-in-java-global-state-management","status":"publish","type":"post","link":"https:\/\/m9js.shop\/blog\/development\/implementing-the-singleton-pattern-in-java-global-state-management","title":{"rendered":"\uc790\ubc14\ub85c \uad6c\ud604\ud558\ub294 \uc2f1\uae00\ud1a4 \ud328\ud134: \uc804\uc5ed \uc0c1\ud0dc \uad00\ub9ac"},"content":{"rendered":"

\uc790\ubc14\ub85c \uad6c\ud604\ud558\ub294 \uc2f1\uae00\ud1a4 \ud328\ud134: \uc804\uc5ed \uc0c1\ud0dc \uad00\ub9ac<\/h1>\n

\"Java<\/p>\n

\uc790\ubc14\ub294 \uac1d\uccb4\uc9c0\ud5a5\ud504\ub85c\uadf8\ub798\ubc0d\uc758 \ub300\ud45c\uc801\uc778 \uc5b8\uc5b4\uc785\ub2c8\ub2e4. \uac1d\uccb4\uc9c0\ud5a5\ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \uac1d\uccb4\ub294 \ud074\ub798\uc2a4\ub97c \ud1b5\ud574 \uc0dd\uc131\ub418\uba70, \uac1d\uccb4\uc758 \uc0c1\ud0dc\ub294 \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\ub85c \ub098\ud0c0\ub0a9\ub2c8\ub2e4. \uc774 \ub54c, \uc778\uc2a4\ud134\uc2a4 \ubcc0\uc218\ub294 \uac1d\uccb4\uac00 \uc0dd\uc131\ub420 \ub54c\ub9c8\ub2e4 \uc0dd\uc131\ub418\uba70, \uac01 \uac1d\uccb4\ub294 \uc11c\ub85c \ub3c5\ub9bd\uc801\uc778 \uc0c1\ud0dc\ub97c \uac00\uc9d1\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \ub54c\ub85c\ub294 \uac1d\uccb4\uc758 \uc0c1\ud0dc\ub97c \uc804\uc5ed\uc801\uc73c\ub85c \uad00\ub9ac\ud574\uc57c \ud560 \ub54c\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uacbd\uc6b0, \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc774\uc6a9\ud558\uc5ec \uc804\uc5ed\uc801\uc778 \uc0c1\ud0dc \uad00\ub9ac\ub97c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14 \uc2f1\uae00\ud1a4 \ud328\ud134 \uac1c\ub150\uacfc \uc774\uc810<\/h2>\n

\uc2f1\uae00\ud1a4 \ud328\ud134\uc740 \ud504\ub85c\uadf8\ub7a8 \uc804\uc5ed\uc5d0\uc11c \ub2e8 \ud558\ub098\uc758 \uc778\uc2a4\ud134\uc2a4\ub9cc\uc744 \uc0dd\uc131\ud558\uace0, \uc774\ub97c \uacf5\uc720\ud558\uc5ec \uc0ac\uc6a9\ud558\ub294 \ub514\uc790\uc778 \ud328\ud134\uc785\ub2c8\ub2e4. \uc2f1\uae00\ud1a4 \ud328\ud134\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uc774\uc810\uc744 \uac00\uc9d1\ub2c8\ub2e4.<\/p>\n

\uccab\uc9f8, \uc804\uc5ed \uc0c1\ud0dc \uad00\ub9ac\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc774\uc6a9\ud558\uba74, \ud504\ub85c\uadf8\ub7a8 \uc804\uc5ed\uc5d0\uc11c \uacf5\uc720\ub418\ub294 \uc0c1\ud0dc\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574, \uac1d\uccb4 \uac04\uc758 \uc0c1\ud0dc \uacf5\uc720\uac00 \uac00\ub2a5\ud574\uc9c0\uba70, \uac1d\uccb4 \uac04\uc758 \uacb0\ud569\ub3c4\ub97c \ub0ae\ucd9c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ub458\uc9f8, \uba54\ubaa8\ub9ac\ub97c \uc808\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uc2a4\ud134\uc2a4\ub97c \uc5ec\ub7ec \uac1c \uc0dd\uc131\ud558\ub294 \uac83\ubcf4\ub2e4 \ud558\ub098\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \uacf5\uc720\ud558\uc5ec \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uba54\ubaa8\ub9ac\ub97c \uc808\uc57d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc14b\uc9f8, \uc0c1\ud0dc \ubcc0\ud654\ub97c \ucd94\uc801\ud558\uae30 \uc27d\uc2b5\ub2c8\ub2e4. \ud558\ub098\uc758 \uc778\uc2a4\ud134\uc2a4\ub9cc\uc744 \uc0ac\uc6a9\ud558\uba74, \uc0c1\ud0dc \ubcc0\ud654\ub97c \ucd94\uc801\ud558\uae30 \uc26c\uc6cc\uc9d1\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574, \ub514\ubc84\uae45\uacfc \uc720\uc9c0\ubcf4\uc218\uac00 \uc6a9\uc774\ud574\uc9d1\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14\uc5d0\uc11c \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uad6c\ud604\ud558\ub294 \ubc29\ubc95\uc740 \ub2e4\uc591\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc5d0\uc11c\ub294 \uac00\uc7a5 \uac04\ub2e8\ud55c \ubc29\ubc95 \uc911 \ud558\ub098\uc778 \ubbf8\ub9ac \uc0dd\uc131\ub41c \uc778\uc2a4\ud134\uc2a4 \ubc29\ubc95\uc744 \uc18c\uac1c\ud569\ub2c8\ub2e4.<\/p>\n

\uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc774\uc6a9\ud55c \uc804\uc5ed \uc0c1\ud0dc \uad00\ub9ac \uad6c\ud604 \ubc29\ubc95<\/h2>\n

\uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc774\uc6a9\ud558\uc5ec \uc804\uc5ed \uc0c1\ud0dc\ub97c \uad00\ub9ac\ud558\ub294 \ubc29\ubc95\uc740 \uac04\ub2e8\ud569\ub2c8\ub2e4. \uba3c\uc800, \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\ub97c private\uc73c\ub85c \uc120\uc5b8\ud558\uc5ec \uc678\ubd80\uc5d0\uc11c \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\uc9c0 \ubabb\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0, \ud074\ub798\uc2a4 \ub0b4\ubd80\uc5d0\uc11c \uc720\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\uace0, \uc774\ub97c \ubc18\ud658\ud558\ub294 static \uba54\uc11c\ub4dc\ub97c \uad6c\ud604\ud569\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \uc608\uc81c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n

public class Singleton {\n    private static Singleton instance = new Singleton();\n\n    private Singleton() {}\n\n    public static Singleton getInstance() {\n        return instance;\n    }\n}<\/code><\/pre>\n

\uc704 \ucf54\ub4dc\uc5d0\uc11c, Singleton \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\ub294 private\uc73c\ub85c \uc120\uc5b8\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc678\ubd80\uc5d0\uc11c \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\uc9c0 \ubabb\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uadf8\ub9ac\uace0, \uc720\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\uc778 instance\ub97c private static\uc73c\ub85c \uc120\uc5b8\ud558\uace0, \ud074\ub798\uc2a4 \ub0b4\ubd80\uc5d0\uc11c \uc0dd\uc131\ud569\ub2c8\ub2e4. \ub9c8\uc9c0\ub9c9\uc73c\ub85c, getInstance() \uba54\uc11c\ub4dc\ub97c \uad6c\ud604\ud558\uc5ec \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.<\/p>\n

\uc774\uc81c, Singleton \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc804\uc5ed \uc0c1\ud0dc\ub97c \uad00\ub9ac\ud558\ub294 \uc608\uc81c\ub97c \uc0b4\ud3b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n

public class GlobalState {\n    private static GlobalState instance = new GlobalState();\n    private int state = 0;\n\n    private GlobalState() {}\n\n    public static GlobalState getInstance() {\n        return instance;\n    }\n\n    public int getState() {\n        return state;\n    }\n\n    public void setState(int state) {\n        this.state = state;\n    }\n}<\/code><\/pre>\n

\uc704 \ucf54\ub4dc\uc5d0\uc11c, GlobalState \ud074\ub798\uc2a4\ub294 Singleton \ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\ubc1b\uc544 \uad6c\ud604\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \ud074\ub798\uc2a4\ub294 \uc804\uc5ed \uc0c1\ud0dc\ub97c \ub098\ud0c0\ub0b4\ub294 state \ubcc0\uc218\ub97c \uac00\uc9c0\uace0 \uc788\uc73c\uba70, \uc774 \ubcc0\uc218\ub294 getState()\uc640 setState() \uba54\uc11c\ub4dc\ub97c \ud1b5\ud574 \uc811\uadfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ub2e4\uc74c\uc740, GlobalState \ud074\ub798\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n

public class Main {\n    public static void main(String[] args) {\n        GlobalState state1 = GlobalState.getInstance();\n        GlobalState state2 = GlobalState.getInstance();\n\n        state1.setState(10);\n\n        System.out.println(state1.getState()); \/\/ 10\n        System.out.println(state2.getState()); \/\/ 10\n    }\n}<\/code><\/pre>\n

\uc704 \ucf54\ub4dc\uc5d0\uc11c, GlobalState \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ub450 \ubc88 \uc0dd\uc131\ud558\uc600\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, getInstance() \uba54\uc11c\ub4dc\ub294 \ud56d\uc0c1 \ub3d9\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c, state1\uacfc state2\ub294 \ub3d9\uc77c\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \ucc38\uc870\ud558\uac8c \ub429\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574, \uc804\uc5ed\uc801\uc73c\ub85c \uc0c1\ud0dc\ub97c \uacf5\uc720\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc5d0\uc11c \uc548\uc804\ud55c \uc2f1\uae00\ud1a4 \ud328\ud134 \uad6c\ud604 \ubc29\ubc95<\/h2>\n

\uc2f1\uae00\ud1a4 \ud328\ud134\uc740 \uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc5d0\uc11c \ubb38\uc81c\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ub3d9\uc2dc\uc5d0 getInstance() \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\ub294 \uacbd\uc6b0, \uc5ec\ub7ec \uac1c\uc758 \uc778\uc2a4\ud134\uc2a4\uac00 \uc0dd\uc131\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c\ub294, getInstance() \uba54\uc11c\ub4dc\ub97c \ub3d9\uae30\ud654\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n

\ub2e4\uc74c\uc740, getInstance() \uba54\uc11c\ub4dc\ub97c \ub3d9\uae30\ud654\ud558\ub294 \uc608\uc81c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n

public class Singleton {\n    private static Singleton instance = null;\n\n    private Singleton() {}\n\n    public static synchronized Singleton getInstance() {\n        if (instance == null) {\n            instance = new Singleton();\n        }\n        return instance;\n    }\n}<\/code><\/pre>\n

\uc704 \ucf54\ub4dc\uc5d0\uc11c, getInstance() \uba54\uc11c\ub4dc\ub294 synchronized\ub85c \uc120\uc5b8\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uba54\uc11c\ub4dc \ud638\ucd9c\uc744 \ub3d9\uae30\ud654\ud558\uc5ec, \ub3d9\uc2dc\uc5d0 \uc5ec\ub7ec \uac1c\uc758 \uc778\uc2a4\ud134\uc2a4\uac00 \uc0dd\uc131\ub418\ub294 \uac83\uc744 \ubc29\uc9c0\ud569\ub2c8\ub2e4.<\/p>\n

\ud558\uc9c0\ub9cc, \uc774 \ubc29\ubc95\uc740 \ub3d9\uae30\ud654\uc5d0 \ub530\ub978 \uc131\ub2a5 \uc800\ud558\uac00 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \ub354 \ub098\uc740 \ubc29\ubc95\uc740 double-check locking\uc744 \uc774\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n

\ub2e4\uc74c\uc740, double-check locking\uc744 \uc774\uc6a9\ud558\uc5ec getInstance() \uba54\uc11c\ub4dc\ub97c \uad6c\ud604\ud55c \uc608\uc81c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n

public class Singleton {\n    private static volatile Singleton instance = null;\n\n    private Singleton() {}\n\n    public static Singleton getInstance() {\n        if (instance == null) {\n            synchronized (Singleton.class) {\n                if (instance == null) {\n                    instance = new Singleton();\n                }\n            }\n        }\n        return instance;\n    }\n}<\/code><\/pre>\n

\uc704 \ucf54\ub4dc\uc5d0\uc11c, getInstance() \uba54\uc11c\ub4dc \ub0b4\ubd80\uc5d0\uc11c instance\uac00 null\uc778 \uacbd\uc6b0, synchronized \ube14\ub85d\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. \uc774 \ube14\ub85d\uc5d0\uc11c\ub3c4 instance\uac00 null\uc778 \uacbd\uc6b0\uc5d0\ub9cc \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. double-check locking\uc744 \uc774\uc6a9\ud558\uba74, \ub3d9\uae30\ud654 \ube44\uc6a9\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14\uc5d0\uc11c \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc0ac\uc6a9\ud560 \ub54c \uc8fc\uc758\ud560 \uc810\uacfc \ud55c\uacc4\uc810<\/h2>\n

\uc2f1\uae00\ud1a4 \ud328\ud134\uc740 \ub9e4\uc6b0 \uac15\ub825\ud55c \ub514\uc790\uc778 \ud328\ud134\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \uc774\ub97c \uc0ac\uc6a9\ud560 \ub54c \uc8fc\uc758\ud560 \uc810\uacfc \ud55c\uacc4\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uccab\uc9f8, \uc2f1\uae00\ud1a4 \uac1d\uccb4\ub294 \uc804\uc5ed\uc801\uc73c\ub85c \uacf5\uc720\ub418\uae30 \ub54c\ubb38\uc5d0, \uac1d\uccb4 \uac04\uc758 \uacb0\ud569\ub3c4\uac00 \ub192\uc544\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub85c \uc778\ud574, \uc720\uc9c0\ubcf4\uc218\uac00 \uc5b4\ub824\uc6cc\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ub458\uc9f8, \uc2f1\uae00\ud1a4 \uac1d\uccb4\ub294 \uc0c1\ud0dc\ub97c \uacf5\uc720\ud558\uae30 \ub54c\ubb38\uc5d0, \uc0c1\ud0dc \ubcc0\ud654\uac00 \uc608\uc0c1\uce58 \ubabb\ud558\uac8c \uc77c\uc5b4\ub0a0 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c\ub294, \uc0c1\ud0dc\ub97c \ubd88\ubcc0 \uac1d\uccb4\ub85c \ub9cc\ub4e4\uac70\ub098, \uc0c1\ud0dc \ubcc0\uacbd\uc744 \uc81c\ud55c\ud558\ub294 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n

\uc14b\uc9f8, \uc2f1\uae00\ud1a4 \uac1d\uccb4\ub294 \ud14c\uc2a4\ud2b8\ud558\uae30 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \uac1d\uccb4\uac00 \uc804\uc5ed\uc801\uc73c\ub85c \uacf5\uc720\ub418\uae30 \ub54c\ubb38\uc5d0, \ud14c\uc2a4\ud2b8\uc5d0\uc11c \uc608\uc0c1\uce58 \ubabb\ud55c \uacb0\uacfc\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ub137\uc9f8, \uc2f1\uae00\ud1a4 \uac1d\uccb4\ub294 \uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc5d0\uc11c \uc548\uc804\ud558\uac8c \uad6c\ud604\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c\ub294, \ub3d9\uae30\ud654 \uae30\ubc95\uc744 \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n

\ub9c8\uc9c0\ub9c9\uc73c\ub85c, \uc790\ubc14\uc5d0\uc11c\ub294 enum\uc744 \uc774\uc6a9\ud558\uc5ec \uc2f1\uae00\ud1a4 \uac1d\uccb4\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubc29\ubc95\uc740 \ucf54\ub4dc\uac00 \uac04\uacb0\ud574\uc9c0\uace0, \uc9c1\ub82c\ud654\uc640 \ub9ac\ud50c\ub809\uc158 \uacf5\uaca9\uc5d0 \ub300\ud55c \ubcf4\ud638\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n

public enum Singleton {\n    INSTANCE;\n\n    public void doSomething() {\n        \/\/ ...\n    }\n}<\/code><\/pre>\n

\uc704 \ucf54\ub4dc\uc5d0\uc11c, Singleton \uac1d\uccb4\ub294 enum\uc73c\ub85c \uc120\uc5b8\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uc774\uc6a9\ud558\uc5ec, Singleton \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ubc29\ubc95\uc740 \ub9e4\uc6b0 \uac04\uacb0\ud558\uace0, \uc9c1\ub82c\ud654\uc640 \ub9ac\ud50c\ub809\uc158 \uacf5\uaca9\uc5d0 \ub300\ud55c \ubcf4\ud638\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n

\uacb0\ub860<\/h2>\n

\uc2f1\uae00\ud1a4 \ud328\ud134\uc740 \uc804\uc5ed\uc801\uc778 \uc0c1\ud0dc\ub97c \uad00\ub9ac\ud558\ub294 \ub370 \ub9e4\uc6b0 \uc720\uc6a9\ud55c \ub514\uc790\uc778 \ud328\ud134\uc785\ub2c8\ub2e4. \uc790\ubc14\uc5d0\uc11c\ub294 \ub2e4\uc591\ud55c \ubc29\ubc95\uc73c\ub85c \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uc73c\uba70, \uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc5d0\uc11c \uc548\uc804\ud558\uac8c \uad6c\ud604\ud558\ub294 \ubc29\ubc95\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc, \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc0ac\uc6a9\ud560 \ub54c\uc5d0\ub294 \uc8fc\uc758\ud560 \uc810\uacfc \ud55c\uacc4\uc810\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \uc2f1\uae00\ud1a4 \ud328\ud134\uc744 \uc0ac\uc6a9\ud560 \ub54c\uc5d0\ub294 \uc774\ub7ec\ud55c \uc810\ub4e4\uc744 \uace0\ub824\ud558\uc5ec \uad6c\ud604\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"

\uc790\ubc14\ub85c \uad6c\ud604\ud558\ub294 \uc2f1\uae00\ud1a4 \ud328\ud134: \uc804\uc5ed \uc0c1\ud0dc \uad00\ub9ac.<\/p>\n","protected":false},"author":1,"featured_media":33704,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[2188,471,3888,2584,5925,5979,3414],"class_list":["post-36221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-public","tag-state","tag-static","tag-system","tag-5925","tag-5979","tag-3414"],"acf":[],"_links":{"self":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/36221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/comments?post=36221"}],"version-history":[{"count":1,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/36221\/revisions"}],"predecessor-version":[{"id":36273,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/36221\/revisions\/36273"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media\/33704"}],"wp:attachment":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media?parent=36221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/categories?post=36221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/tags?post=36221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}