{"id":36166,"date":"2023-06-04T11:18:06","date_gmt":"2023-06-04T02:18:06","guid":{"rendered":"https:\/\/m9js.shop\/blog\/?p=36166"},"modified":"2023-06-04T11:18:06","modified_gmt":"2023-06-04T02:18:06","slug":"implementing-the-prototyping-pattern-in-java-object-cloning-and-flexible-creation","status":"publish","type":"post","link":"https:\/\/m9js.shop\/blog\/development\/implementing-the-prototyping-pattern-in-java-object-cloning-and-flexible-creation","title":{"rendered":"\uc790\ubc14\ub85c \uad6c\ud604\ud558\ub294 \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134: \uac1d\uccb4 \ubcf5\uc81c\uc640 \uc720\uc5f0\ud55c \uc0dd\uc131"},"content":{"rendered":"

\uc790\ubc14\ub85c \uad6c\ud604\ud558\ub294 \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134: \uac1d\uccb4 \ubcf5\uc81c\uc640 \uc720\uc5f0\ud55c \uc0dd\uc131<\/h1>\n

\"Prototype<\/p>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134 \uc18c\uac1c<\/h2>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134(Prototype Pattern)\uc740 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\ub294 \ubc29\ubc95 \uc911 \ud558\ub098\ub85c, \uc774\ubbf8 \uc0dd\uc131\ub41c \uac1d\uccb4\ub97c \ubcf5\uc81c\ud558\uc5ec \uc0c8\ub85c\uc6b4 \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\ub294 \ubc29\ubc95\uc744 \ub9d0\ud569\ub2c8\ub2e4. \uc774 \ud328\ud134\uc740 \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uc810\uc5d0\uc11c \ud074\ub798\uc2a4 \uc774\ub984\uc774 \uacb0\uc815\ub418\ub294 \uac83\uc774 \uc544\ub2c8\ub77c, \uac1d\uccb4\uc758 \ubcf5\uc81c\ub97c \ud1b5\ud574 \uc0c8\ub85c\uc6b4 \uac1d\uccb4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc774\ub294 \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uc810\uc774\ub098 \uac1d\uccb4\uc758 \ud0c0\uc785\uc744 \uc54c \uc218 \uc5c6\ub294 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4\uc758 \uc0dd\uc131\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \ud560 \uc218 \uc788\uc73c\uba70, \uac1d\uccb4\uc758 \uc0dd\uc131\uacfc\uc815\uc774 \ubcf5\uc7a1\ud55c \uacbd\uc6b0\uc5d0\ub3c4 \uc27d\uac8c \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \uac1d\uccb4\uc758 \ubcf5\uc81c\ub97c \ud1b5\ud574 \uc720\uc5f0\ud55c \uac1d\uccb4 \uc0dd\uc131\uc744 \uac00\ub2a5\ud558\uac8c \ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4\uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294 \ub514\uc790\uc778 \ud328\ud134 \uc911 \ud558\ub098\uc785\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14\uc5d0\uc11c \uac1d\uccb4 \ubcf5\uc81c \uad6c\ud604\ud558\uae30<\/h2>\n

\uc790\ubc14\uc5d0\uc11c\ub294 \uac1d\uccb4 \ubcf5\uc81c\ub97c \uc704\ud574 Cloneable \uc778\ud130\ud398\uc774\uc2a4\uc640 clone() \uba54\uc11c\ub4dc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. Cloneable \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud55c \ud074\ub798\uc2a4\ub294 clone() \uba54\uc11c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub529\ud558\uc5ec \uac1d\uccb4\ub97c \ubcf5\uc81c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. clone() \uba54\uc11c\ub4dc\ub294 Object \ud074\ub798\uc2a4\uc758 \uba54\uc11c\ub4dc\uc774\ubbc0\ub85c, \ubaa8\ub4e0 \ud074\ub798\uc2a4\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

public class MyClass implements Cloneable {\n    private int value;\n\n    public MyClass(int value) {\n        this.value = value;\n    }\n\n    public void setValue(int value) {\n        this.value = value;\n    }\n\n    public int getValue() {\n        return this.value;\n    }\n\n    @Override\n    public MyClass clone() throws CloneNotSupportedException {\n        return (MyClass) super.clone();\n    }\n}<\/code><\/pre>\n

\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c MyClass \ud074\ub798\uc2a4\ub294 Cloneable \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud558\uace0, clone() \uba54\uc11c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub529\ud558\uc5ec \uac1d\uccb4\ub97c \ubcf5\uc81c\ud560 \uc218 \uc788\ub3c4\ub85d \uad6c\ud604\ub418\uc5c8\uc2b5\ub2c8\ub2e4. clone() \uba54\uc11c\ub4dc\uc5d0\uc11c\ub294 Object \ud074\ub798\uc2a4\uc758 clone() \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uc5ec \uac1d\uccb4\ub97c \ubcf5\uc81c\ud569\ub2c8\ub2e4. \uc774\ub54c, \ubcf5\uc81c\ub41c \uac1d\uccb4\ub294 \uc6d0\ubcf8 \uac1d\uccb4\uc640 \ub3d9\uc77c\ud55c \ud0c0\uc785\uc73c\ub85c \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/p>\n

MyClass obj1 = new MyClass(10);\nMyClass obj2 = obj1.clone();\n\nSystem.out.println(obj1.getValue()); \/\/ 10\nSystem.out.println(obj2.getValue()); \/\/ 10\n\nobj2.setValue(20);\n\nSystem.out.println(obj1.getValue()); \/\/ 10\nSystem.out.println(obj2.getValue()); \/\/ 20<\/code><\/pre>\n

\uc704\uc758 \uc608\uc81c\uc5d0\uc11c\ub294 MyClass \ud074\ub798\uc2a4\uc758 \uac1d\uccb4 obj1\uc744 \uc0dd\uc131\ud558\uace0, obj1\uc744 \ubcf5\uc81c\ud558\uc5ec obj2 \uac1d\uccb4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc774\ud6c4, obj2 \uac1d\uccb4\uc758 \uac12\uc744 \ubcc0\uacbd\ud558\uc5ec obj1\uacfc obj2 \uac1d\uccb4\uc758 \uac12\uc774 \uc11c\ub85c \ub2e4\ub978 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uc720\uc5f0\ud55c \uc0dd\uc131\uc744 \uc704\ud55c \ud504\ub85c\ud1a0\ud0c0\uc785 \ud65c\uc6a9<\/h2>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uc810\uc774\ub098 \uac1d\uccb4\uc758 \ud0c0\uc785\uc744 \uc54c \uc218 \uc5c6\ub294 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud569\ub2c8\ub2e4. \ub610\ud55c, \uac1d\uccb4\uc758 \uc0dd\uc131\uacfc\uc815\uc774 \ubcf5\uc7a1\ud55c \uacbd\uc6b0\uc5d0\ub3c4 \uc27d\uac8c \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc73c\uba70, \uac1d\uccb4\ub97c \ubcf5\uc81c\ud558\uc5ec \uc720\uc5f0\ud55c \uac1d\uccb4 \uc0dd\uc131\uc744 \uac00\ub2a5\ud558\uac8c \ud569\ub2c8\ub2e4.<\/p>\n

\uc608\ub97c \ub4e4\uc5b4, \uac8c\uc784\uc5d0\uc11c \uce90\ub9ad\ud130\ub97c \uc0dd\uc131\ud560 \ub54c \uce90\ub9ad\ud130\uc758 \uc885\ub958\uc5d0 \ub530\ub77c \ub2e4\uc591\ud55c \uc18d\uc131\uc744 \uac00\uc9c0\ub3c4\ub85d \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub54c, \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uba74 \uce90\ub9ad\ud130\uc758 \uc885\ub958\uc5d0 \ub530\ub77c \ubbf8\ub9ac \uc0dd\uc131\ud574 \ub454 \ud504\ub85c\ud1a0\ud0c0\uc785\uc744 \ubcf5\uc81c\ud558\uc5ec \uc18d\uc131\uc744 \uc870\ud569\ud558\uc5ec \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

public abstract class Character implements Cloneable {\n    protected String name;\n    protected int level;\n    protected int hp;\n    protected int mp;\n\n    public abstract void attack();\n    public abstract void move();\n\n    public void showInfo() {\n        System.out.println(\"Name: \" + name);\n        System.out.println(\"Level: \" + level);\n        System.out.println(\"HP: \" + hp);\n        System.out.println(\"MP: \" + mp);\n    }\n\n    @Override\n    public Character clone() throws CloneNotSupportedException {\n        return (Character) super.clone();\n    }\n}\n\npublic class Warrior extends Character {\n    public Warrior() {\n        this.name = \"Warrior\";\n        this.level = 1;\n        this.hp = 100;\n        this.mp = 50;\n    }\n\n    @Override\n    public void attack() {\n        System.out.println(\"Warrior attacks!\");\n    }\n\n    @Override\n    public void move() {\n        System.out.println(\"Warrior moves!\");\n    }\n}\n\npublic class Mage extends Character {\n    public Mage() {\n        this.name = \"Mage\";\n        this.level = 1;\n        this.hp = 50;\n        this.mp = 100;\n    }\n\n    @Override\n    public void attack() {\n        System.out.println(\"Mage attacks!\");\n    }\n\n    @Override\n    public void move() {\n        System.out.println(\"Mage moves!\");\n    }\n}<\/code><\/pre>\n

\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c\ub294 Character \ud074\ub798\uc2a4\ub97c \ucd94\uc0c1 \ud074\ub798\uc2a4\ub85c \uad6c\ud604\ud558\uace0, Warrior \ud074\ub798\uc2a4\uc640 Mage \ud074\ub798\uc2a4\ub97c \uad6c\ud604\ud569\ub2c8\ub2e4. \uac01 \ud074\ub798\uc2a4\ub294 \uc0dd\uc131\uc790\ub97c \ud1b5\ud574 \uce90\ub9ad\ud130\uc758 \uc18d\uc131\uc744 \ucd08\uae30\ud654\ud558\uace0, attack() \uba54\uc11c\ub4dc\uc640 move() \uba54\uc11c\ub4dc\ub97c \uad6c\ud604\ud569\ub2c8\ub2e4. \ub610\ud55c, clone() \uba54\uc11c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub529\ud558\uc5ec \uac1d\uccb4\ub97c \ubcf5\uc81c\ud560 \uc218 \uc788\ub3c4\ub85d \uad6c\ud604\ud569\ub2c8\ub2e4.<\/p>\n

public class Game {\n    private Map characters = new HashMap();\n\n    public void init() {\n        characters.put(\"warrior\", new Warrior());\n        characters.put(\"mage\", new Mage());\n    }\n\n    public Character createCharacter(String type) throws CloneNotSupportedException {\n        return characters.get(type).clone();\n    }\n}<\/code><\/pre>\n

\uc704\uc758 \ucf54\ub4dc\uc5d0\uc11c\ub294 Game \ud074\ub798\uc2a4\ub97c \uad6c\ud604\ud558\uc5ec, \uce90\ub9ad\ud130\ub97c \uc0dd\uc131\ud558\ub294 createCharacter() \uba54\uc11c\ub4dc\ub97c \uad6c\ud604\ud569\ub2c8\ub2e4. \uc774\ub54c, \uce90\ub9ad\ud130\uc758 \uc885\ub958\uc5d0 \ub530\ub77c \ubbf8\ub9ac \uc0dd\uc131\ud574 \ub454 \ud504\ub85c\ud1a0\ud0c0\uc785\uc744 \ubcf5\uc81c\ud558\uc5ec \uc0c8\ub85c\uc6b4 \uac1d\uccb4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n

Game game = new Game();\ngame.init();\n\nCharacter warrior1 = game.createCharacter(\"warrior\");\nCharacter warrior2 = game.createCharacter(\"warrior\");\nCharacter mage1 = game.createCharacter(\"mage\");\nCharacter mage2 = game.createCharacter(\"mage\");\n\nwarrior1.showInfo();\nwarrior2.showInfo();\nmage1.showInfo();\nmage2.showInfo();<\/code><\/pre>\n

\uc704\uc758 \uc608\uc81c\uc5d0\uc11c\ub294 Game \ud074\ub798\uc2a4\ub97c \uc0dd\uc131\ud558\uace0, init() \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uc5ec \uce90\ub9ad\ud130\uc758 \ud504\ub85c\ud1a0\ud0c0\uc785\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc774\ud6c4, createCharacter() \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uc5ec \uce90\ub9ad\ud130\ub97c \uc0dd\uc131\ud558\uace0, showInfo() \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud558\uc5ec \uce90\ub9ad\ud130\uc758 \uc18d\uc131\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. \uc774\ub54c, \uac01\uac01\uc758 \uce90\ub9ad\ud130\ub294 \uc0dd\uc131 \uc2dc\uc810\uc5d0\uc11c \ubbf8\ub9ac \uc0dd\uc131\ud574 \ub454 \ud504\ub85c\ud1a0\ud0c0\uc785\uc744 \ubcf5\uc81c\ud558\uc5ec \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc758 \uc7a5\ub2e8\uc810 \ubc0f \ud65c\uc6a9 \uc608\uc2dc<\/h2>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4 \uc0dd\uc131\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \ud560 \uc218 \uc788\uc73c\uba70, \uac1d\uccb4\uc758 \uc0dd\uc131\uacfc\uc815\uc774 \ubcf5\uc7a1\ud55c \uacbd\uc6b0\uc5d0\ub3c4 \uc27d\uac8c \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \uac1d\uccb4\ub97c \ubcf5\uc81c\ud558\uc5ec \uc720\uc5f0\ud55c \uac1d\uccb4 \uc0dd\uc131\uc744 \uac00\ub2a5\ud558\uac8c \ud558\ubbc0\ub85c, \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uc810\uc774\ub098 \uac1d\uccb4\uc758 \ud0c0\uc785\uc744 \uc54c \uc218 \uc5c6\ub294 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n

\ud558\uc9c0\ub9cc, \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4\ub97c \ubcf5\uc81c\ud558\ub294 \uacfc\uc815\uc5d0\uc11c \uac1d\uccb4\uc758 \uc0c1\ud0dc\ub97c \uacf5\uc720\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c, \uac1d\uccb4\uc758 \uc0c1\ud0dc\ub97c \ubcc0\uacbd\ud560 \ub54c \uc8fc\uc758\ud574\uc57c \ud569\ub2c8\ub2e4. \ub610\ud55c, \uac1d\uccb4\uc758 \ubcf5\uc81c\uac00 \uc5b4\ub824\uc6b4 \uacbd\uc6b0\uc5d0\ub294 \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uae30 \uc5b4\ub835\uc2b5\ub2c8\ub2e4.<\/p>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4\uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \ub2e4\uc591\ud558\uac8c \ud65c\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uac8c\uc784\uc5d0\uc11c \uce90\ub9ad\ud130\ub97c \uc0dd\uc131\ud560 \ub54c\ub098, \ubb38\uc11c \ud3b8\uc9d1\uae30\uc5d0\uc11c \ud15c\ud50c\ub9bf\uc744 \uc0ac\uc6a9\ud560 \ub54c\uc5d0\ub3c4 \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ub610\ud55c, \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uac04\uc774 \ub9ce\uc774 \uc18c\uc694\ub418\ub294 \uacbd\uc6b0\uc5d0\ub3c4 \uc720\uc6a9\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ub300\ub7c9\uc758 \ub370\uc774\ud130\ub97c \uc870\ud68c\ud558\uc5ec \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \ub54c\uc5d0\ub294 \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uac04\uc774 \ub9ce\uc774 \uc18c\uc694\ub429\ub2c8\ub2e4. \uc774\ub54c, \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubbf8\ub9ac \uc0dd\uc131\ud574 \ub454 \uac1d\uccb4\ub97c \ubcf5\uc81c\ud558\uc5ec \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uac04\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\uacb0\ub860<\/h2>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4 \uc0dd\uc131\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \ud560 \uc218 \uc788\uc73c\uba70, \uac1d\uccb4\uc758 \uc0dd\uc131\uacfc\uc815\uc774 \ubcf5\uc7a1\ud55c \uacbd\uc6b0\uc5d0\ub3c4 \uc27d\uac8c \uac1d\uccb4\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \uac1d\uccb4\ub97c \ubcf5\uc81c\ud558\uc5ec \uc720\uc5f0\ud55c \uac1d\uccb4 \uc0dd\uc131\uc744 \uac00\ub2a5\ud558\uac8c \ud558\ubbc0\ub85c, \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uc810\uc774\ub098 \uac1d\uccb4\uc758 \ud0c0\uc785\uc744 \uc54c \uc218 \uc5c6\ub294 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n

\uc790\ubc14\uc5d0\uc11c\ub294 Cloneable \uc778\ud130\ud398\uc774\uc2a4\uc640 clone() \uba54\uc11c\ub4dc\ub97c \uc81c\uacf5\ud558\uc5ec \uac1d\uccb4 \ubcf5\uc81c\ub97c \uc27d\uac8c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uac04\uc774 \ub9ce\uc774 \uc18c\uc694\ub418\ub294 \uacbd\uc6b0\uc5d0\ub3c4 \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uc5ec \uac1d\uccb4 \uc0dd\uc131 \uc2dc\uac04\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n

\ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc740 \uac1d\uccb4\uc9c0\ud5a5 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294 \ub514\uc790\uc778 \ud328\ud134 \uc911 \ud558\ub098\uc774\uba70, \ub2e4\uc591\ud55c \ud65c\uc6a9 \uc608\uc2dc\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c, \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134\uc744 \ud65c\uc6a9\ud558\uc5ec \uac1d\uccb4 \uc0dd\uc131\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"

\uc790\ubc14\ub85c \uad6c\ud604\ud558\ub294 \ud504\ub85c\ud1a0\ud0c0\uc785 \ud328\ud134: \uac1d\uccb4 \ubcf5\uc81c\uc640 \uc720\uc5f0\ud55c \uc0dd\uc131<\/p>\n","protected":false},"author":1,"featured_media":12885,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1957],"tags":[248,2523,2188,401,2584,5925,5979,3414],"class_list":["post-36166","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-game","tag-pattern","tag-public","tag-super","tag-system","tag-5925","tag-5979","tag-3414"],"acf":[],"_links":{"self":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/36166","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=36166"}],"version-history":[{"count":1,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/36166\/revisions"}],"predecessor-version":[{"id":36383,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/posts\/36166\/revisions\/36383"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media\/12885"}],"wp:attachment":[{"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/media?parent=36166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/categories?post=36166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/m9js.shop\/blog\/wp-json\/wp\/v2\/tags?post=36166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}