{"id":37220,"date":"2023-06-13T22:55:31","date_gmt":"2023-06-13T13:55:31","guid":{"rendered":"https:\/\/8gfg.shop\/blog\/?p=37220"},"modified":"2023-06-13T22:55:31","modified_gmt":"2023-06-13T13:55:31","slug":"java-template-method-design-pattern-how-to-encapsulate-parts-of-an-algorithm-in-a-subclass","status":"publish","type":"post","link":"https:\/\/8gfg.shop\/blog\/development\/java-template-method-design-pattern-how-to-encapsulate-parts-of-an-algorithm-in-a-subclass","title":{"rendered":"\uc790\ubc14 \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ub514\uc790\uc778 \ud328\ud134: \uc54c\uace0\ub9ac\uc998\uc758 \uc77c\ubd80\ub97c \uc11c\ube0c\ud074\ub798\uc2a4\ub85c \ucea1\uc290\ud654\ud558\ub294 \ubc29\ubc95"},"content":{"rendered":"
<\/p>\n
\ucef4\ud4e8\ud130 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0\uc11c, \uc54c\uace0\ub9ac\uc998\uc740 \uc5b4\ub5a4 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud55c \uba85\ud655\ud558\uace0 \uc815\ud655\ud55c \uc808\ucc28\ub85c, \ubc18\ubcf5\uc801\uc73c\ub85c \uc0ac\uc6a9\ub41c\ub2e4. \ud558\uc9c0\ub9cc, \uc54c\uace0\ub9ac\uc998\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc740 \uac04\ub2e8\ud55c \uac83\uc774 \uc544\ub2c8\ub2e4. \uad6c\ud604\uc5d0\ub294 \uc5ec\ub7ec \uac00\uc9c0 \ubb38\uc81c\uac00 \uc788\uc73c\uba70, \uc774\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \ub514\uc790\uc778 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc77c\ubc18\uc801\uc774\ub2e4. \ub514\uc790\uc778 \ud328\ud134\uc740 \uc77c\ubc18\uc801\uc778 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574 \ubc18\ubcf5\uc801\uc73c\ub85c \uc0ac\uc6a9\ub418\ub294 \uc194\ub8e8\uc158\uc744 \uc81c\uacf5\ud55c\ub2e4.<\/p>\n
Java Template Method Design Pattern\uc740 \uc54c\uace0\ub9ac\uc998\uc758 \uc77c\ubd80\ub97c \uc11c\ube0c\ud074\ub798\uc2a4\ub85c \ucea1\uc290\ud654\ud558\uc5ec, \uc54c\uace0\ub9ac\uc998 \uad6c\ud604\uc758 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub294 \ub514\uc790\uc778 \ud328\ud134 \uc911 \ud558\ub098\uc774\ub2e4. \uc774 \ub514\uc790\uc778 \ud328\ud134\uc740 Java \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\uc5d0\uc11c \ub9ce\uc774 \uc0ac\uc6a9\ub41c\ub2e4.<\/p>\n
\uc790\ubc14 \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ub514\uc790\uc778 \ud328\ud134\uc740 \ud589\ub3d9 \ub514\uc790\uc778 \ud328\ud134 \uc911 \ud558\ub098\uc774\ub2e4. \uc774 \ud328\ud134\uc740 \uc54c\uace0\ub9ac\uc998\uc758 \uc77c\ubd80\ub97c \uc11c\ube0c\ud074\ub798\uc2a4\ub85c \ucea1\uc290\ud654\ud558\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud55c\ub2e4. \uc989, \uc54c\uace0\ub9ac\uc998\uc758 \uacf5\ud1b5 \uae30\ub2a5\uc740 \uc288\ud37c \ud074\ub798\uc2a4\ub85c \uad6c\ud604\ub418\uace0, \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c\ub294 \uc774\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uc5ec \uc11c\ube0c\ud074\ub798\uc2a4 \uace0\uc720\uc758 \ub3d9\uc791\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n
\uc774 \ud328\ud134\uc758 \ubaa9\uc801\uc740 \uc54c\uace0\ub9ac\uc998\uc758 \uad6c\ud604\uc744 \ub2e8\uc21c\ud654\ud558\uace0 \ucf54\ub4dc \uc7ac\uc0ac\uc6a9\uc131\uc744 \ub192\uc774\ub294 \uac83\uc774\ub2e4. \uc774 \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uba74 \ub2e4\uc591\ud55c \uc54c\uace0\ub9ac\uc998\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uace0, \uacf5\ud1b5 \ucf54\ub4dc\ub97c \uc911\ubcf5\ud574\uc11c \uc791\uc131\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub41c\ub2e4.<\/p>\n
\uc54c\uace0\ub9ac\uc998\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc740 \uac04\ub2e8\ud55c \uac83\uc774 \uc544\ub2c8\ub2e4. \uc54c\uace0\ub9ac\uc998\uc740 \ubcf5\uc7a1\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud55c \uc808\ucc28\uc774\uae30 \ub54c\ubb38\uc774\ub2e4. \uc54c\uace0\ub9ac\uc998\uc744 \uad6c\ud604\ud560 \ub54c \ubc1c\uc0dd\ud558\ub294 \ubb38\uc81c \uc911 \uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \uac83\uc740 \ucf54\ub4dc \uc911\ubcf5\uc774\ub2e4. \uc54c\uace0\ub9ac\uc998\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \uacf5\ud1b5\ub41c \uae30\ub2a5\uc744 \uac00\uc9c0\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0, \uc774 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \ucf54\ub4dc\uac00 \uc911\ubcf5\ub418\ub294 \uac83\uc774\ub2e4.<\/p>\n
\ub610 \ub2e4\ub978 \ubb38\uc81c\ub294 \uc54c\uace0\ub9ac\uc998\uc758 \ubcc0\uacbd\uc774\ub2e4. \uc54c\uace0\ub9ac\uc998\uc740 \uc790\uc8fc \ubcc0\uacbd\ub418\uae30 \ub54c\ubb38\uc5d0, \uc774\ub97c \uc720\uc9c0\ubcf4\uc218\ud558\uae30 \uc704\ud574\uc11c\ub294 \ub9ce\uc740 \ub178\ub825\uc774 \ud544\uc694\ud558\ub2e4. \uc54c\uace0\ub9ac\uc998\uc758 \ubcc0\uacbd \uc2dc, \ubaa8\ub4e0 \ucf54\ub4dc\ub97c \uc218\uc815\ud558\uac70\ub098 \uc0c8\ub85c\uc6b4 \ucf54\ub4dc\ub97c \uc791\uc131\ud574\uc57c \ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n
\uc774\ub7ec\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574, \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ud328\ud134\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \uc774 \ud328\ud134\uc740 \uacf5\ud1b5\ub41c \uae30\ub2a5\uc744 \uc288\ud37c \ud074\ub798\uc2a4\uc5d0 \uad6c\ud604\ud558\uace0, \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c \uc774\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uc5ec \uace0\uc720\ud55c \ub3d9\uc791\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub3c4\ub85d \ud55c\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\uc758 \uc911\ubcf5\uc744 \uc904\uc774\uace0, \uc720\uc9c0\ubcf4\uc218\uc131\uc744 \ub192\uc77c \uc218 \uc788\ub2e4.<\/p>\n
\uc790\ubc14 \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ud328\ud134\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uad6c\uc870\ub97c \uac00\uc9c4\ub2e4.<\/p>\n
public abstract class AbstractClass {\n public final void templateMethod() {\n primitiveOperation1();\n primitiveOperation2();\n concreteOperation();\n hook();\n }\n\n protected abstract void primitiveOperation1();\n\n protected abstract void primitiveOperation2();\n\n protected void concreteOperation() {\n \/\/ \uad6c\ud604\n }\n\n protected void hook() {\n \/\/ \uad6c\ud604\n }\n}\n\npublic class ConcreteClass extends AbstractClass {\n @Override\n protected void primitiveOperation1() {\n \/\/ \uad6c\ud604\n }\n\n @Override\n protected void primitiveOperation2() {\n \/\/ \uad6c\ud604\n }\n\n @Override\n protected void hook() {\n \/\/ \uad6c\ud604\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c AbstractClass\ub294 \uc54c\uace0\ub9ac\uc998\uc758 \uacf5\ud1b5 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \ucd94\uc0c1 \ud074\ub798\uc2a4\uc774\ub2e4. templateMethod() \uba54\uc11c\ub4dc\ub294 \uc54c\uace0\ub9ac\uc998\uc758 \uc804\uccb4\uc801\uc778 \ud750\ub984\uc744 \uc81c\uc5b4\ud558\ub294 \uba54\uc11c\ub4dc\uc774\ub2e4. \uc774 \uba54\uc11c\ub4dc\uc5d0\uc11c\ub294 primitiveOperation1(), primitiveOperation2(), concreteOperation(), hook() \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud55c\ub2e4.<\/p>\n
primitiveOperation1()\uacfc primitiveOperation2() \uba54\uc11c\ub4dc\ub294 \uc54c\uace0\ub9ac\uc998\uc758 \uae30\ubcf8\uc801\uc778 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \ucd94\uc0c1 \uba54\uc11c\ub4dc\uc774\ub2e4. concreteOperation() \uba54\uc11c\ub4dc\ub294 \uc120\ud0dd\uc801\uc73c\ub85c \uad6c\ud604\ud560 \uc218 \uc788\ub294 \uba54\uc11c\ub4dc\ub85c, \uc54c\uace0\ub9ac\uc998\uc758 \uacf5\ud1b5 \uae30\ub2a5 \uc911 \ud558\ub098\ub97c \uad6c\ud604\ud55c\ub2e4. hook() \uba54\uc11c\ub4dc\ub294 \ucd94\uc0c1 \uba54\uc11c\ub4dc\ub85c, \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c \uc120\ud0dd\uc801\uc73c\ub85c \uc624\ubc84\ub77c\uc774\ub4dc\ud560 \uc218 \uc788\ub294 \uba54\uc11c\ub4dc\uc774\ub2e4.<\/p>\n
ConcreteClass\ub294 AbstractClass\ub97c \uc0c1\uc18d\ubc1b\uc544 \uc54c\uace0\ub9ac\uc998\uc758 \uad6c\uccb4\uc801\uc778 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \ud074\ub798\uc2a4\uc774\ub2e4. \uc774 \ud074\ub798\uc2a4\uc5d0\uc11c\ub294 primitiveOperation1(), primitiveOperation2(), hook() \uba54\uc11c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uc5ec \uace0\uc720\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud55c\ub2e4. concreteOperation() \uba54\uc11c\ub4dc\ub294 \uc120\ud0dd\uc801\uc73c\ub85c \uad6c\ud604\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0, \uc774 \ud074\ub798\uc2a4\uc5d0\uc11c\ub294 \ub530\ub85c \uad6c\ud604\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub41c\ub2e4.<\/p>\n
\uc608\ub97c \ub4e4\uc5b4, \ud30c\uc77c\uc744 \uc77d\uace0 \uc4f0\ub294 \uc54c\uace0\ub9ac\uc998\uc744 \uad6c\ud604\ud574\ubcf4\uc790. \uc774 \uc54c\uace0\ub9ac\uc998\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uacf5\ud1b5 \uae30\ub2a5\uc744 \uac00\uc9c0\uace0 \uc788\ub2e4.<\/p>\n
\n- \ud30c\uc77c \uc5f4\uae30<\/li>\n
- \ub370\uc774\ud130 \uc77d\uae30<\/li>\n
- \ub370\uc774\ud130 \uc4f0\uae30<\/li>\n
- \ud30c\uc77c \ub2eb\uae30<\/li>\n<\/ul>\n
\uc774\ub97c \uc790\ubc14 \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ud328\ud134\uc73c\ub85c \uad6c\ud604\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n
import java.io.File;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.util.Scanner;\n\npublic abstract class FileIO {\n protected File file;\n\n public FileIO(File file) {\n this.file = file;\n }\n\n public void readFile() throws IOException {\n Scanner scanner = new Scanner(file);\n while (scanner.hasNextLine()) {\n String line = scanner.nextLine();\n processLine(line);\n }\n scanner.close();\n }\n\n public void writeFile(String data) throws IOException {\n FileWriter writer = new FileWriter(file);\n writer.write(data);\n writer.close();\n }\n\n protected abstract void processLine(String line) throws IOException;\n}\n\npublic class TextFileIO extends FileIO {\n public TextFileIO(File file) {\n super(file);\n }\n\n @Override\n protected void processLine(String line) throws IOException {\n \/\/ \ud14d\uc2a4\ud2b8 \ud30c\uc77c\uc5d0\uc11c \uac01 \ub77c\uc778\uc744 \ucc98\ub9ac\ud558\ub294 \ucf54\ub4dc\n }\n}\n\npublic class BinaryFileIO extends FileIO {\n public BinaryFileIO(File file) {\n super(file);\n }\n\n @Override\n protected void processLine(String line) throws IOException {\n \/\/ \uc774\uc9c4 \ud30c\uc77c\uc5d0\uc11c \uac01 \ub77c\uc778\uc744 \ucc98\ub9ac\ud558\ub294 \ucf54\ub4dc\n }\n}<\/code><\/pre>\n\uc704 \ucf54\ub4dc\uc5d0\uc11c FileIO\ub294 \uc54c\uace0\ub9ac\uc998\uc758 \uacf5\ud1b5 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \ucd94\uc0c1 \ud074\ub798\uc2a4\uc774\ub2e4. readFile() \uba54\uc11c\ub4dc\ub294 \ud30c\uc77c\uc744 \uc5f4\uace0 \ub370\uc774\ud130\ub97c \uc77d\ub294 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\uace0, writeFile() \uba54\uc11c\ub4dc\ub294 \ub370\uc774\ud130\ub97c \uc4f0\uace0 \ud30c\uc77c\uc744 \ub2eb\ub294 \uae30\ub2a5\uc744 \uad6c\ud604\ud55c\ub2e4. processLine() \uba54\uc11c\ub4dc\ub294 \ucd94\uc0c1 \uba54\uc11c\ub4dc\ub85c, \uac01\uac01\uc758 \ud30c\uc77c \ud615\uc2dd\uc5d0\uc11c \ub77c\uc778\uc744 \ucc98\ub9ac\ud558\ub294 \uace0\uc720\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud55c\ub2e4.<\/p>\n
TextFileIO\uc640 BinaryFileIO\ub294 FileIO\ub97c \uc0c1\uc18d\ubc1b\uc544 \uac01\uac01\uc758 \ud30c\uc77c \ud615\uc2dd\uc5d0\uc11c processLine() \uba54\uc11c\ub4dc\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\ub294 \ud074\ub798\uc2a4\uc774\ub2e4. \uc774\ub97c \ud1b5\ud574 \uac01\uac01\uc758 \ud30c\uc77c \ud615\uc2dd\uc5d0\uc11c \uace0\uc720\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub2e4.<\/p>\n
\uc11c\ube0c\ud074\ub798\uc2a4 \ucea1\uc290\ud654\uc758 \uc774\uc810\uacfc \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ud328\ud134\uc758 \ud55c\uacc4\uc810<\/h2>\n
\ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uba74 \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c \uace0\uc720\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0, \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\uc131\uc744 \ub192\uc77c \uc218 \uc788\ub2e4. \ub610\ud55c, \uc54c\uace0\ub9ac\uc998\uc758 \uacf5\ud1b5 \uae30\ub2a5\uc744 \uc288\ud37c \ud074\ub798\uc2a4\uc5d0\uc11c \uad6c\ud604\ud558\uae30 \ub54c\ubb38\uc5d0 \ucf54\ub4dc\uc758 \uc911\ubcf5\uc744 \uc904\uc77c \uc218 \uc788\ub2e4. \uc774\ub97c \ud1b5\ud574 \uc720\uc9c0\ubcf4\uc218\uc131\uc744 \ub192\uc77c \uc218 \uc788\ub2e4.<\/p>\n
\ud558\uc9c0\ub9cc, \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ud328\ud134\uc740 \uc11c\ube0c\ud074\ub798\uc2a4 \ucea1\uc290\ud654\ub97c \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0, \uc11c\ube0c\ud074\ub798\uc2a4\uac04\uc758 \uacb0\ud569\ub3c4\uac00 \ub192\uc544\uc9c8 \uc218 \uc788\ub2e4. \ub610\ud55c, \uacf5\ud1b5 \uae30\ub2a5\uc774 \uc288\ud37c \ud074\ub798\uc2a4\uc5d0 \uad6c\ud604\ub418\uae30 \ub54c\ubb38\uc5d0, \uc774\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uc9c0 \uc54a\uc73c\uba74 \uacf5\ud1b5 \uae30\ub2a5\uc774 \ubd88\ud544\uc694\ud558\uac8c \ud638\ucd9c\ub420 \uc218 \uc788\ub2e4.<\/p>\n
\ub610\ud55c, \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ud328\ud134\uc740 \uc54c\uace0\ub9ac\uc998\uc758 \uad6c\uccb4\uc801\uc778 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc5d0 \ub300\ud574\uc11c\ub294 \uc81c\ud55c\uc801\uc774\ub2e4. \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c \uc624\ubc84\ub77c\uc774\ub4dc\ud560 \uc218 \uc788\ub294 \uba54\uc11c\ub4dc\ub294 \uc77c\ubd80\uc5d0 \ubd88\uacfc\ud558\uba70, \uc774\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud574\uc11c \uad6c\ud604\ud560 \uc218 \uc5c6\ub294 \uacbd\uc6b0\ub3c4 \uc788\ub2e4.<\/p>\n
\uacb0\ub860<\/h2>\n
\uc790\ubc14 \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ub514\uc790\uc778 \ud328\ud134\uc740 \uc54c\uace0\ub9ac\uc998\uc758 \uc77c\ubd80\ub97c \uc11c\ube0c\ud074\ub798\uc2a4\ub85c \ucea1\uc290\ud654\ud558\uc5ec, \uc54c\uace0\ub9ac\uc998 \uad6c\ud604\uc758 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub294 \ub514\uc790\uc778 \ud328\ud134 \uc911 \ud558\ub098\uc774\ub2e4. \uc774 \ud328\ud134\uc740 \uacf5\ud1b5 \uae30\ub2a5\uc744 \uc288\ud37c \ud074\ub798\uc2a4\uc5d0 \uad6c\ud604\ud558\uace0, \uc11c\ube0c\ud074\ub798\uc2a4\uc5d0\uc11c \uc774\ub97c \uc624\ubc84\ub77c\uc774\ub4dc\ud558\uc5ec \uace0\uc720\ud55c \uae30\ub2a5\uc744 \uad6c\ud604\ud560 \uc218 \uc788\ub3c4\ub85d \ud55c\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\uc131\uc744 \ub192\uc774\uace0, \uc720\uc9c0\ubcf4\uc218\uc131\uc744 \ub192\uc77c \uc218 \uc788\ub2e4.<\/p>\n
\ud558\uc9c0\ub9cc, \uc11c\ube0c\ud074\ub798\uc2a4 \ucea1\uc290\ud654\ub97c \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0, \uc11c\ube0c\ud074\ub798\uc2a4 \uac04\uc758 \uacb0\ud569\ub3c4\uac00 \ub192\uc544\uc9c8 \uc218 \uc788\uace0, \uacf5\ud1b5 \uae30\ub2a5\uc774 \ubd88\ud544\uc694\ud558\uac8c \ud638\ucd9c\ub420 \uc218 \uc788\ub2e4\ub294 \ub2e8\uc810\uc774 \uc788\ub2e4. \ub610\ud55c, \uad6c\uccb4\uc801\uc778 \uae30\ub2a5\uc744 \uad6c\ud604\ud558\ub294 \uac83\uc5d0 \ub300\ud574\uc11c\ub294 \uc81c\ud55c\uc801\uc774\uae30 \ub54c\ubb38\uc5d0, \uc774\ub97c \uace0\ub824\ud558\uc5ec \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"
\uc790\ubc14 \ud15c\ud50c\ub9bf \uba54\uc11c\ub4dc \ub514\uc790\uc778 \ud328\ud134: \uc54c\uace0\ub9ac\uc998 \uc77c\ubd80\ub97c \uc11c\ube0c\ud074\ub798\uc2a4\ub85c \ucea1\uc290\ud654\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc790.<\/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":[2104,2131,2105,2188,401,3291,5925,3414],"class_list":["post-37220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","tag-data","tag-design","tag-java","tag-public","tag-super","tag-3291","tag-5925","tag-3414"],"acf":[],"_links":{"self":[{"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/37220","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=37220"}],"version-history":[{"count":1,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/37220\/revisions"}],"predecessor-version":[{"id":37242,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/posts\/37220\/revisions\/37242"}],"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=37220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/categories?post=37220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/8gfg.shop\/blog\/wp-json\/wp\/v2\/tags?post=37220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}