{"id":34583,"date":"2023-05-27T08:08:28","date_gmt":"2023-05-26T23:08:28","guid":{"rendered":"https:\/\/8gfg.shop\/blog\/?p=34583"},"modified":"2023-05-27T08:08:28","modified_gmt":"2023-05-26T23:08:28","slug":"facade-and-adapter-patterns-in-java-how-to-use-them-to-simplify-your-code","status":"publish","type":"post","link":"https:\/\/8gfg.shop\/blog\/development\/facade-and-adapter-patterns-in-java-how-to-use-them-to-simplify-your-code","title":{"rendered":"\uc790\ubc14\uc5d0\uc11c\uc758 \ud37c\uc0ac\ub4dc\uc640 \uc5b4\ub311\ud130 \ud328\ud134: \ucf54\ub4dc \uac04\ud3b8\ud654\ub97c \uc704\ud55c \uc0ac\uc6a9 \ubc29\ubc95"},"content":{"rendered":"

\uc790\ubc14\uc5d0\uc11c\uc758 \ud37c\uc0ac\ub4dc \ud328\ud134: \ucf54\ub4dc \uac04\ud3b8\ud654\ub97c \uc704\ud55c \uc0ac\uc6a9 \ubc29\ubc95<\/h1>\n

\ud37c\uc0ac\ub4dc \ud328\ud134\uc740 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc5d0\uc11c \uc790\uc8fc \uc0ac\uc6a9\ub418\ub294 \ub514\uc790\uc778 \ud328\ud134 \uc911 \ud558\ub098\uc785\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \ubcf5\uc7a1\ud55c \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac04\uc18c\ud654\ud558\uace0, \uc0ac\uc6a9\uc790\uac00 \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc744 \ub354 \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc8fc\ub294 \ud328\ud134\uc785\ub2c8\ub2e4. \uc790\ubc14\uc5d0\uc11c\ub294 \ud37c\uc0ac\ub4dc \ud328\ud134\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc774 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uba70, \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\ub97c \uac04\ud3b8\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ud37c\uc0ac\ub4dc \ud328\ud134\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \uac1d\uccb4 \uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \ubcf5\uc7a1\ud55c \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc744 \ud55c \uac1c\uc758 \ub2e8\uc21c\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub85c \ub798\ud551\ud569\ub2c8\ub2e4. \uc774 \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc5d0 \ub300\ud55c \uc9c1\uc811\uc801\uc778 \uc561\uc138\uc2a4\ub97c \uc81c\uacf5\ud558\uba70, \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc744 \ub354 \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uc0ac\uc6a9\uc790\ub294 \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc758 \ub0b4\ubd80 \ub3d9\uc791\uc744 \uc54c \ud544\uc694 \uc5c6\uc774 \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14\uc5d0\uc11c \ud37c\uc0ac\ub4dc \ud328\ud134\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud569\ub2c8\ub2e4. \uba3c\uc800, \ud37c\uc0ac\ub4dc \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uace0, \uc774 \ud074\ub798\uc2a4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c, \uc774 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc5d0 \uc561\uc138\uc2a4\ud558\ub294 \uba54\uc18c\ub4dc\ub97c \uad6c\ud604\ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uc0ac\uc6a9\uc790\ub294 \ud37c\uc0ac\ub4dc \ud074\ub798\uc2a4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub9cc \uc0ac\uc6a9\ud558\uc5ec \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

public class SubsystemA {\n    public void operationA() {\n        \/\/ do something\n    }\n}\n\npublic class SubsystemB {\n    public void operationB() {\n        \/\/ do something\n    }\n}\n\npublic class Facade {\n    private SubsystemA subsystemA;\n    private SubsystemB subsystemB;\n\n    public Facade() {\n        subsystemA = new SubsystemA();\n        subsystemB = new SubsystemB();\n    }\n\n    public void operationAB() {\n        subsystemA.operationA();\n        subsystemB.operationB();\n    }\n}<\/code><\/pre>\n

\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c Facade \ud074\ub798\uc2a4\ub294 SubsystemA \ud074\ub798\uc2a4\uc640 SubsystemB \ud074\ub798\uc2a4\ub97c \ub798\ud551\ud569\ub2c8\ub2e4. Facade \ud074\ub798\uc2a4\ub294 operationAB() \uba54\uc18c\ub4dc\ub97c \uc81c\uacf5\ud558\uba70, \uc774 \uba54\uc18c\ub4dc\ub294 SubsystemA \ud074\ub798\uc2a4\uc758 operationA() \uba54\uc18c\ub4dc\uc640 SubsystemB \ud074\ub798\uc2a4\uc758 operationB() \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\ub294 Facade \ud074\ub798\uc2a4\uc758 operationAB() \uba54\uc18c\ub4dc\ub9cc \ud638\ucd9c\ud558\uc5ec SubsystemA\uc640 SubsystemB\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14\uc5d0\uc11c\uc758 \uc5b4\ub311\ud130 \ud328\ud134: \ucf54\ub4dc \uac04\ud3b8\ud654\ub97c \uc704\ud55c \uc0ac\uc6a9 \ubc29\ubc95<\/h1>\n

\uc5b4\ub311\ud130 \ud328\ud134\uc740 \ud2b9\uc815 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub2e4\ub978 \uc778\ud130\ud398\uc774\uc2a4\ub85c \ubcc0\ud658\ud558\ub294 \ud328\ud134\uc785\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \ub450 \uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4 \uac04\uc758 \ud638\ud658\uc131 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc790\ubc14\uc5d0\uc11c\ub294 \uc5b4\ub311\ud130 \ud328\ud134\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc774 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uba70, \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\ub97c \uac04\ud3b8\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc5b4\ub311\ud130 \ud328\ud134\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \uac1d\uccb4 \uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \ud638\ud658\uc131\uc774 \uc5c6\ub294 \ub450 \uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc5f0\uacb0\ud558\uc5ec \uc11c\ub85c \ud638\ud658 \uac00\ub2a5\ud558\uac8c \ub9cc\ub4ed\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ub450 \uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc9c1\uc811\uc801\uc73c\ub85c \uc218\uc815\ud558\uc9c0 \uc54a\uace0\ub3c4 \ud638\ud658\uc131 \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14\uc5d0\uc11c \uc5b4\ub311\ud130 \ud328\ud134\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc740 \ub9e4\uc6b0 \uac04\ub2e8\ud569\ub2c8\ub2e4. \uba3c\uc800, \uc5b4\ub311\ud130 \ud074\ub798\uc2a4\ub97c \ub9cc\ub4e4\uace0, \uc774 \ud074\ub798\uc2a4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c, \uc774 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub2e4\ub978 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud558\ub294 \uba54\uc18c\ub4dc\ub97c \uad6c\ud604\ud569\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uc0ac\uc6a9\uc790\ub294 \uc5b4\ub311\ud130 \ud074\ub798\uc2a4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub2e4\ub978 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

public interface Target {\n    void request();\n}\n\npublic class Adaptee {\n    public void specificRequest() {\n        \/\/ do something\n    }\n}\n\npublic class Adapter implements Target {\n    private Adaptee adaptee;\n\n    public Adapter(Adaptee adaptee) {\n        this.adaptee = adaptee;\n    }\n\n    public void request() {\n        adaptee.specificRequest();\n    }\n}<\/code><\/pre>\n

\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c, Target \uc778\ud130\ud398\uc774\uc2a4\ub294 \uc0ac\uc6a9\uc790\uac00 \ud638\ucd9c\ud560 \uc218 \uc788\ub294 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. Adaptee \ud074\ub798\uc2a4\ub294 Target \uc778\ud130\ud398\uc774\uc2a4\uc640 \ud638\ud658\uc131\uc774 \uc5c6\ub294 \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. Adapter \ud074\ub798\uc2a4\ub294 Target \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud558\uba70, Adaptee \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \uac16\uc2b5\ub2c8\ub2e4. Adapter \ud074\ub798\uc2a4\uc758 request() \uba54\uc18c\ub4dc\ub294 Adaptee \ud074\ub798\uc2a4\uc758 specificRequest() \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\ub294 Adapter \ud074\ub798\uc2a4\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec Adaptee \ud074\ub798\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ud6a8\uacfc\uc801\uc778 \ucf54\ub4dc \ub514\uc790\uc778\uc744 \uc704\ud55c \uc790\ubc14 \ud37c\uc0ac\ub4dc\uc640 \uc5b4\ub311\ud130 \ud328\ud134 \ud65c\uc6a9 \ubc29\ubc95<\/h1>\n

\ud37c\uc0ac\ub4dc \ud328\ud134\uacfc \uc5b4\ub311\ud130 \ud328\ud134\uc740 \uc790\ubc14\uc5d0\uc11c \ub9e4\uc6b0 \uac04\ub2e8\ud558\uac8c \uad6c\ud604\ud560 \uc218 \uc788\uc73c\uba70, \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\ub97c \uac04\ud3b8\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ud328\ud134\uc740 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc5d0\uc11c \ub9ce\uc774 \uc0ac\uc6a9\ub418\uba70, \ud6a8\uacfc\uc801\uc778 \ucf54\ub4dc \ub514\uc790\uc778\uc744 \uc704\ud574 \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ud37c\uc0ac\ub4dc \ud328\ud134\uc740 \ubcf5\uc7a1\ud55c \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac04\uc18c\ud654\ud558\uace0, \uc0ac\uc6a9\uc790\uac00 \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc744 \ub354 \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\uc758 \uac00\ub3c5\uc131\uacfc \uc720\uc9c0\ubcf4\uc218\uc131\uc744 \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \ud37c\uc0ac\ub4dc \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uba74 \uc2dc\uc2a4\ud15c\uc758 \uc77c\ubd80\ub97c \ubcc0\uacbd\ud574\ub3c4 \ub2e4\ub978 \ubd80\ubd84\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce58\uc9c0 \uc54a\ub3c4\ub85d \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc5b4\ub311\ud130 \ud328\ud134\uc740 \ud638\ud658\uc131\uc774 \uc5c6\ub294 \ub450 \uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc5f0\uacb0\ud558\uc5ec \uc11c\ub85c \ud638\ud658 \uac00\ub2a5\ud558\uac8c \ub9cc\ub4ed\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\uc131\uacfc \uc720\uc5f0\uc131\uc744 \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \uc5b4\ub311\ud130 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uba74 \ucf54\ub4dc \ubcc0\uacbd \uc5c6\uc774 \uc0c8\ub85c\uc6b4 \uc778\ud130\ud398\uc774\uc2a4\ub97c \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ub450 \ud328\ud134\uc744 \ud568\uaed8 \uc0ac\uc6a9\ud558\uba74 \ub354\uc6b1 \ud6a8\uacfc\uc801\uc778 \ucf54\ub4dc \ub514\uc790\uc778\uc744 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud37c\uc0ac\ub4dc \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubcf5\uc7a1\ud55c \uc2dc\uc2a4\ud15c\uc744 \ub2e8\uc21c\ud654\ud558\uace0, \uc5b4\ub311\ud130 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud638\ud658\uc131 \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\uc758 \uac00\ub3c5\uc131, \uc720\uc9c0\ubcf4\uc218\uc131, \uc7ac\uc0ac\uc6a9\uc131, \uc720\uc5f0\uc131\uc744 \ubaa8\ub450 \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

public interface Target {\n    void request();\n}\n\npublic class Adaptee {\n    public void specificRequest() {\n        \/\/ do something\n    }\n}\n\npublic class Adapter implements Target {\n    private Adaptee adaptee;\n\n    public Adapter(Adaptee adaptee) {\n        this.adaptee = adaptee;\n    }\n\n    public void request() {\n        adaptee.specificRequest();\n    }\n}\n\npublic class SubsystemA {\n    public void operationA() {\n        \/\/ do something\n    }\n}\n\npublic class SubsystemB {\n    public void operationB() {\n        \/\/ do something\n    }\n}\n\npublic class Facade {\n    private SubsystemA subsystemA;\n    private SubsystemB subsystemB;\n\n    public Facade() {\n        subsystemA = new SubsystemA();\n        subsystemB = new SubsystemB();\n    }\n\n    public void operationAB() {\n        subsystemA.operationA();\n        subsystemB.operationB();\n    }\n}<\/code><\/pre>\n

\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c, Facade \ud074\ub798\uc2a4\ub294 SubsystemA \ud074\ub798\uc2a4\uc640 SubsystemB \ud074\ub798\uc2a4\ub97c \ub798\ud551\ud569\ub2c8\ub2e4. Facade \ud074\ub798\uc2a4\ub294 operationAB() \uba54\uc18c\ub4dc\ub97c \uc81c\uacf5\ud558\uba70, \uc774 \uba54\uc18c\ub4dc\ub294 SubsystemA \ud074\ub798\uc2a4\uc758 operationA() \uba54\uc18c\ub4dc\uc640 SubsystemB \ud074\ub798\uc2a4\uc758 operationB() \uba54\uc18c\ub4dc\ub97c \ud638\ucd9c\ud569\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\ub294 Facade \ud074\ub798\uc2a4\uc758 operationAB() \uba54\uc18c\ub4dc\ub9cc \ud638\ucd9c\ud558\uc5ec SubsystemA\uc640 SubsystemB\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, Adapter \ud074\ub798\uc2a4\ub294 Adaptee \ud074\ub798\uc2a4\uc640 Target \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc5f0\uacb0\ud558\uc5ec \ud638\ud658\uc131 \ubb38\uc81c\ub97c \ud574\uacb0\ud569\ub2c8\ub2e4.<\/p>\n

\uacb0\ub860<\/h1>\n

\ud37c\uc0ac\ub4dc \ud328\ud134\uacfc \uc5b4\ub311\ud130 \ud328\ud134\uc740 \uc790\ubc14\uc5d0\uc11c \ub9e4\uc6b0 \uac04\ub2e8\ud558\uac8c \uad6c\ud604\ud560 \uc218 \uc788\uc73c\uba70, \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\ub97c \uac04\ud3b8\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ud328\ud134\uc740 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c\uc5d0\uc11c \ub9ce\uc774 \uc0ac\uc6a9\ub418\uba70, \ud6a8\uacfc\uc801\uc778 \ucf54\ub4dc \ub514\uc790\uc778\uc744 \uc704\ud574 \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud37c\uc0ac\ub4dc \ud328\ud134\uc740 \ubcf5\uc7a1\ud55c \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uac04\uc18c\ud654\ud558\uace0, \uc0ac\uc6a9\uc790\uac00 \uc11c\ube0c\uc2dc\uc2a4\ud15c\uc744 \ub354 \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc90d\ub2c8\ub2e4. \uc5b4\ub311\ud130 \ud328\ud134\uc740 \ud638\ud658\uc131\uc774 \uc5c6\ub294 \ub450 \uac1c\uc758 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc5f0\uacb0\ud558\uc5ec \uc11c\ub85c \ud638\ud658 \uac00\ub2a5\ud558\uac8c \ub9cc\ub4ed\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\uc758 \uac00\ub3c5\uc131, \uc720\uc9c0\ubcf4\uc218\uc131, \uc7ac\uc0ac\uc6a9\uc131, \uc720\uc5f0\uc131\uc744 \ubaa8\ub450 \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub450 \ud328\ud134\uc744 \ud568\uaed8 \uc0ac\uc6a9\ud558\uba74 \ub354\uc6b1 \ud6a8\uacfc\uc801\uc778 \ucf54\ub4dc \ub514\uc790\uc778\uc744 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"

\uc790\ubc14\uc5d0\uc11c\uc758 \ud37c\uc0ac\ub4dc\uc640 \uc5b4\ub311\ud130 \ud328\ud134: \ucf54\ub4dc \uac04\ud3b8\ud654\ub97c \uc704\ud55c \uc0ac\uc6a9 \ubc29\ubc95<\/p>\n","protected":false},"author":1,"featured_media":12882,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[2735,2105,2188,5925],"class_list":["post-34583","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-adapter","tag-java","tag-public","tag-5925"],"acf":[],"_links":{"self":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/34583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/comments?post=34583"}],"version-history":[{"count":1,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/34583\/revisions"}],"predecessor-version":[{"id":34677,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/34583\/revisions\/34677"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/media\/12882"}],"wp:attachment":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/media?parent=34583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/categories?post=34583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/tags?post=34583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}