{"id":2071,"date":"2026-07-27T19:11:25","date_gmt":"2026-07-27T19:11:25","guid":{"rendered":"https:\/\/wayhope.kro.kr\/?p=2071"},"modified":"2026-08-31T07:32:54","modified_gmt":"2026-08-31T07:32:54","slug":"%ec%bd%94%eb%93%9c-%ed%92%88%ec%a7%88%ea%b3%bc-%ec%84%a4%ea%b3%84-%ec%a0%95%eb%a6%ac-%ec%9e%90%eb%ac%b8","status":"publish","type":"post","link":"https:\/\/wayhope.kro.kr\/?p=2071","title":{"rendered":"\ucf54\ub4dc \ud488\uc9c8\uacfc \uc124\uacc4 \uc790\ubb38"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">\ucf54\ub4dc \ud488\uc9c8\uacfc \uc124\uacc4\uc5d0 \ub300\ud574 \uc790\ubb38\ubc1b\uace0 \uc815\ub9ac\ud55c \ub0b4\uc6a9<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88\uc5d0 \uac1c\ubc1c\uacfc \uad00\ub828\ud574\uc11c \uc790\ubb38\uc744 \ubc1b\uc73c\uba74\uc11c \ucf54\ub4dc \ud488\uc9c8\uc5d0 \ub300\ud55c \uc774\uc57c\uae30\ub3c4 \uac19\uc774 \ub098\uc654\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc98\uc74c\uc5d0\ub294 \uadf8\ub0e5 \ucf54\ub4dc\ub97c \uae54\ub054\ud558\uac8c \uc791\uc131\ud558\ub294 \ubc29\ubc95 \uc815\ub3c4\ub97c \uc0dd\uac01\ud558\uace0 \uc788\uc5c8\ub2e4. \ubcc0\uc218 \uc774\ub984\uc744 \uc798 \uc9d3\ub294\ub2e4\uac70\ub098, \ud568\uc218\ub97c \uc801\ub2f9\ud788 \ub098\ub208\ub2e4\uac70\ub098 \ud558\ub294 \uc815\ub3c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uc774\uc57c\uae30\ub97c \ub4e3\ub2e4 \ubcf4\ub2c8 \uadf8\ub7f0 \uac83\ubcf4\ub2e4 \uc870\uae08 \ub354 \uadfc\ubcf8\uc801\uc778 \ubd80\ubd84\uc774 \uc788\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\ub4dc\uac00 \uc9c0\uae08 \uc815\uc0c1\uc801\uc73c\ub85c \ub3d9\uc791\ud558\ub294 \uac83\uacfc \ub098\uc911\uc5d0 \uc218\uc815\ud558\uae30 \uc88b\uc740 \uac83\uc740 \uc11c\ub85c \ub2e4\ub978 \ubb38\uc81c\ub77c\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c \uac1c\ubc1c\ud558\ub2e4 \ubcf4\uba74 \uc774\ub7f0 \ucf54\ub4dc\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c0\uae08\uc740 \uc798 \ub3cc\uc544\uac04\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uae30\ub2a5 \ud558\ub098\ub97c \ucd94\uac00\ud558\ub824\uace0 \ubcf4\uba74 \uc5b4\ub514\ub97c \uac74\ub4dc\ub824\uc57c \ud560\uc9c0 \ubaa8\ub974\uaca0\ub2e4. \ud55c \uad70\ub370\ub97c \uc218\uc815\ud588\ub294\ub370 \ub2e4\ub978 \uacf3\uc5d0\uc11c \ubb38\uc81c\uac00 \uc0dd\uae30\uae30\ub3c4 \ud55c\ub2e4. \ube44\uc2b7\ud55c \ucf54\ub4dc\uac00 \uc5ec\ub7ec \uad70\ub370 \uc788\uc5b4\uc11c \ub611\uac19\uc740 \uc218\uc815 \uc791\uc5c5\uc744 \ubc18\ubcf5\ud558\uae30\ub3c4 \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uac78 \uc774\uc57c\uae30\ud558\uba74\uc11c \ub098\uc628 \uac1c\ub150\uc774 Code Smell\uc774\uc5c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code Smell<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Code Smell\uc740 \ubc84\uadf8\ub97c \uc758\ubbf8\ud558\ub294 \uac8c \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\ub4dc\uac00 \ub2f9\uc7a5 \uc2e4\ud589\ub418\uc9c0 \uc54a\ub294 \uac83\ub3c4 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ubcf4\ub2e4\ub294 \ucf54\ub4dc\ub97c \ubcf4\uba74\uc11c &#8220;\uc774 \uad6c\uc870\ub294 \ud55c\ubc88 \ub2e4\uc2dc \ubcf4\ub294 \uac8c \uc88b\uaca0\ub2e4&#8221;\ub77c\uace0 \ud310\ub2e8\ud558\uac8c \ub9cc\ub4dc\ub294 \uc2e0\ud638\uc5d0 \uac00\uae5d\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc73c\ub85c \uc911\ubcf5 \ucf54\ub4dc, \ub108\ubb34 \ud070 \ud074\ub798\uc2a4, \ub108\ubb34 \uae34 \uba54\uc11c\ub4dc, \uae4a\uc740 \uc911\ucca9, \ub108\ubb34 \ub9ce\uc740 \ud30c\ub77c\ubbf8\ud130 \uac19\uc740 \uac83\ub4e4\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Duplicated Code\nLarge Class\nGod Object\nLong Method\nToo Many Parameters\nDeeply Nested Code\nMagic Number\nData Clump\nShotgun Surgery\nFeature Envy\nMessage Chain\nPrimitive Obsession\nDead Code\nRefused Bequest\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uac78 \uc804\ubd80 \uc678\uc6b0\ub294 \uac83 \uc790\uccb4\ub294 \ud06c\uac8c \uc758\ubbf8\uac00 \uc5c6\ub2e4\uace0 \uc0dd\uac01\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c \uc911\uc694\ud55c \uac74 \uc65c \uc774\uc0c1\ud55c \uad6c\uc870\uc778\uc9c0 \ubcf4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\ub4dc\uac00 \uc911\ubcf5\ub418\uc5b4 \uc788\uc73c\uba74 \uc218\uc815\ud560 \uacf3\uc774 \ub298\uc5b4\ub09c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud074\ub798\uc2a4\uac00 \ub108\ubb34 \ucee4\uc9c0\uba74 \uc774 \ud074\ub798\uc2a4\uac00 \uc815\ud655\ud788 \ubb34\uc2a8 \uc77c\uc744 \ud558\ub294\uc9c0 \ud30c\uc545\ud558\uae30 \uc5b4\ub824\uc6cc\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud568\uc218\uac00 \ub108\ubb34 \uae38\uba74 \ud55c \ubc88\uc5d0 \uc77d\uc5b4\uc57c \ud558\ub294 \ucf54\ub4dc\uac00 \ub9ce\uc544\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc870\uac74\ubb38\uc774 \ub108\ubb34 \uae4a\uc73c\uba74 \uc2e4\ud589 \uc870\uac74\uc744 \ub530\ub77c\uac00\uae30\uac00 \ud798\ub4e4\uc5b4\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d \ucf54\ub4dc\uac00 \ucee4\uc9c8\uc218\ub85d \uc0ac\ub78c\uc774 \ucf54\ub4dc\ub97c \uc774\ud574\ud558\ub294 \ub370 \ub4dc\ub294 \ube44\uc6a9\uc774 \uc62c\ub77c\uac04\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Code Smell\uc744 \ubc1c\uacac\ud588\ub2e4\uace0 \ubc14\ub85c &#8220;\uc774\uac74 \uc798\ubabb\ub41c \ucf54\ub4dc\ub2e4&#8221;\ub77c\uace0 \ud310\ub2e8\ud558\ub294 \uac83\ubcf4\ub2e4\ub294 \ub9ac\ud329\ud1a0\ub9c1\ud560 \ud544\uc694\uac00 \uc788\ub294\uc9c0 \ud655\uc778\ud558\ub294 \uc6a9\ub3c4\ub85c \ubcf4\ub294 \uac8c \ub9de\ub2e4\uace0 \uc774\ud574\ud588\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0 \uac19\uc740 \ucf54\ub4dc\ub77c\ub3c4 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ub530\ub77c \ud310\ub2e8\uc774 \ub2ec\ub77c\uc9c8 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc791\uc740 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \ub2e8\uc21c\ud558\uac8c \uc791\uc131\ud55c \ucf54\ub4dc\ub97c \uad73\uc774 \ubcf5\uc7a1\ud55c \uad6c\uc870\ub85c \ubc14\uafb8\ub294 \uac83\ub3c4 \uc88b\uc740 \uc120\ud0dd\uc740 \uc544\ub2d0 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ube48 \uc904\uc5d0 \ub300\ud55c \uc774\uc57c\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1c\uc778\uc801\uc73c\ub85c \uc7ac\ubbf8\uc788\uc5c8\ub358 \ubd80\ubd84\uc740 \uba54\uc11c\ub4dc \uc548\uc758 \ube48 \uc904\uc5d0 \ub300\ud55c \uc774\uc57c\uae30\uc600\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uc774\ub7f0 \ucf54\ub4dc\uac00 \uc788\ub2e4\uace0 \ud574\ubcf4\uc790.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void Process()\n{\n    LoadData();\n\n    CalculateData();\n\n    SaveData();\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcf4\ud1b5\uc740 \uadf8\ub0e5 \ubcf4\uae30 \ud3b8\ud558\uac8c \ube48 \uc904\uc744 \ub123\uc5c8\ub2e4\uace0 \uc0dd\uac01\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uc790\uc138\ud788 \ubcf4\uba74 <code>LoadData()<\/code>, <code>CalculateData()<\/code>, <code>SaveData()<\/code>\uac00 \uc11c\ub85c \ub2e4\ub978 \uc791\uc5c5\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7ec\uba74 \uc774\ub7f0 \uc0dd\uac01\uc744 \ud574\ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Process()<\/code>\uac00 \ub108\ubb34 \ub9ce\uc740 \uc77c\uc744 \ud558\uace0 \uc788\ub294 \uac74 \uc544\ub2d0\uae4c?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ube48 \uc904\uc774 \uc788\ub2e4\uace0 \ubb34\uc870\uac74 \ubb38\uc81c\uac00 \ub418\ub294 \uac74 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \ube48 \uc904\uc744 \uae30\uc900\uc73c\ub85c \uc791\uc5c5\uc774 \uba85\ud655\ud558\uac8c \ub098\ub258\uc5b4 \uc788\ub2e4\uba74 \uadf8 \ubd80\ubd84\uc744 \uba54\uc11c\ub4dc\ub098 \uac1d\uccb4\uc758 \ucc45\uc784\uc73c\ub85c\ub3c4 \ub098\ub20c \uc218 \uc788\ub294\uc9c0 \ud55c\ubc88 \uc0dd\uac01\ud574\ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uc2e4\uc81c \ucf54\ub4dc\ub294 \uc774\ub7f0 \uc2dd\uc73c\ub85c \ubc14\ub014 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>void Process()\n{\n    var data = LoadData();\n    var result = Calculate(data);\n\n    Save(result);\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\uae30\uc11c \uc911\uc694\ud55c \uac74 \ube48 \uc904\uc744 \uc5c6\uc560\ub294 \uac8c \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ube48 \uc904\uc744 Code Smell\uc774\ub77c\uace0 \uc678\uc6cc\ubc84\ub9ac\uba74 \uc624\ud788\ub824 \uc774\uc0c1\ud574\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ube48 \uc904\uc774 \uc65c \ub4e4\uc5b4\uac14\ub294\uc9c0 \ubcf4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;\uc5ec\uae30\ubd80\ud130 \ub2e4\ub978 \uc791\uc5c5\uc778\ub370?&#8221;\ub77c\ub294 \uc0dd\uac01\uc774 \ub4e4\uc5c8\ub2e4\uba74 \uadf8\ub54c \ucc45\uc784 \ubd84\ub9ac\ub97c \uace0\ubbfc\ud574\ubcf4\ub294 \uc815\ub3c4\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scope<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Scope\ub294 \ubcc0\uc218\ub098 \uc774\ub984\uc744 \uc5b4\ub514\uae4c\uc9c0 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294\uc9c0\ub97c \uacb0\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C#\uc5d0\uc11c\ub294 <code>{ }<\/code>\uc5d0 \uc758\ud574 \uc9c0\uc5ed \ubcc0\uc218\uc758 \ubc94\uc704\uac00 \ub2ec\ub77c\uc9c4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (condition)\n{\n    int value = 10;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub54c <code>value<\/code>\ub294 <code>if<\/code> \ube14\ub85d \ubc16\uc5d0\uc11c\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 Scope\ub294 \ub2f9\uc5f0\ud788 \ud544\uc694\ud55c \uae30\ub2a5\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc758\ubbf8 \uc5c6\uc774 \uc911\uad04\ud638\ub97c \uacc4\uc18d \ub9cc\ub4e4\uc5b4\uc11c \ucf54\ub4dc\ub97c \uac10\uc2f8\ub294 \uacbd\uc6b0\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uacbd\uc6b0\uc5d0\ub294 &#8220;\uc65c \uc774 Scope\uac00 \ud544\uc694\ud55c\uac00?&#8221;\ub97c \ud55c\ubc88 \uc0dd\uac01\ud574\ubcfc \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SonarQube \uac19\uc740 \uc815\uc801 \ubd84\uc11d \ub3c4\uad6c\uc5d0\uc11c\ub3c4 \uc81c\uc5b4 \ud750\ub984\uc5d0 \uc601\ud5a5\uc744 \uc8fc\uc9c0 \uc54a\ub294 \ubd88\ud544\uc694\ud55c \uc911\ucca9 \ube14\ub85d\uc744 \ubb38\uc81c\ub85c \ubcf4\ub294 \uaddc\uce59\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d Scope\ub3c4 \ubb38\ubc95 \uc790\uccb4\ubcf4\ub2e4 \uc0ac\uc6a9 \uc774\uc720\ub97c \ubd10\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc911\ucca9\ub41c If\ubb38<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uac8c\uc784 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uba74 \uc774\ub7f0 \ucf54\ub4dc\uac00 \uc0dd\uac01\ubcf4\ub2e4 \uc790\uc8fc \ub098\uc628\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (player != null)\n{\n    if (player.IsAlive)\n    {\n        if (player.HasItem)\n        {\n            if (player.CanUseItem)\n            {\n                UseItem();\n            }\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ucf54\ub4dc\ub294 \ud2c0\ub9b0 \ucf54\ub4dc\ub294 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uc870\uac74\uc774 \ud558\ub098\uc529 \ub298\uc5b4\ub0a0\uc218\ub85d \uc77d\ub294 \uc0ac\ub78c\uc774 \uc548\ucabd\uae4c\uc9c0 \uacc4\uc18d \ub4e4\uc5b4\uac00\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc870\uac74\uc774 \ub9ce\uc544\uc84c\uc744 \ub54c Guard Clause\ub97c \uc0ac\uc6a9\ud558\uba74 \uc870\uae08 \ub2e4\ub974\uac8c \uc791\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (player == null)\n    return;\n\nif (!player.IsAlive)\n    return;\n\nif (!player.HasItem)\n    return;\n\nif (!player.CanUseItem)\n    return;\n\nUseItem();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \ud558\uba74 \uc2e4\ud328\ud558\ub294 \uc870\uac74\uc744 \uba3c\uc800 \uc815\ub9ac\ud558\uace0 \ub9c8\uc9c0\ub9c9\uc5d0 \uc2e4\uc81c \uc791\uc5c5\uc744 \ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uc870\uac74 \ud655\uc778\n-&gt; \uc2e4\ud328\ud558\uba74 \uc885\ub8cc\n-&gt; \ub2e4\uc74c \uc870\uac74 \ud655\uc778\n-&gt; \uc2e4\ud328\ud558\uba74 \uc885\ub8cc\n-&gt; \uc2e4\uc81c \ucc98\ub9ac\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uc2dd\uc758 \ucf54\ub4dc\ub97c Guard Clause\ub77c\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb3c\ub860 \uc911\ucca9\uc774 \uc788\ub2e4\uace0 \ubb34\uc870\uac74 \uace0\uccd0\uc57c \ud558\ub294 \uac74 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>foreach (var enemy in enemies)\n{\n    if (enemy.IsAlive)\n    {\n        enemy.Update();\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uc815\ub3c4\ub294 \uc624\ud788\ub824 \uc790\uc5f0\uc2a4\ub7fd\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d \uba87 \ub2e8\uacc4 \uc911\ucca9\ub418\uc5b4 \uc788\ub290\ub0d0\ub9cc \ubcf4\ub294 \uac83\ubcf4\ub2e4\ub294 \uadf8 \uc548\uc5d0 \uc5bc\ub9c8\ub098 \ub9ce\uc740 \ub85c\uc9c1\uc774 \ub4e4\uc5b4\uac00 \uc788\ub294\uc9c0\ub97c \uac19\uc774 \ubd10\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uac1d\uccb4\uc758 \ub0b4\ubd80\ub97c \uc5b4\ub514\uae4c\uc9c0 \ubd10\uc57c \ud558\ub294\uac00<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tell Don&#8217;t Ask\ub77c\ub294 \uac1c\ub150\ub3c4 \uc774 \ubd80\ubd84\uacfc \uc5f0\uacb0\ud574\uc11c \uc774\ud574\ud588\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uc774\ub7f0 \ucf54\ub4dc\uac00 \uc788\ub2e4\uace0 \ud558\uc790.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (player.Inventory.Items.Count &gt; 0)\n{\n    if (player.Inventory.Items&#91;0].IsUsable)\n    {\n        \/\/ ...\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ucf54\ub4dc\ub294 <code>Player<\/code>\uc758 Inventory\ub97c \ubcf4\uace0, Inventory \uc548\uc758 Items\ub97c \ubcf4\uace0, \ub2e4\uc2dc Item\uc758 \uc0c1\ud0dc\ub97c \ud655\uc778\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc678\ubd80 \ucf54\ub4dc\uac00 \uac1d\uccb4 \ub0b4\ubd80 \uad6c\uc870\ub97c \ub108\ubb34 \ub9ce\uc774 \uc54c\uace0 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\ud669\uc5d0 \ub530\ub77c\uc11c\ub294 \ub2e4\uc74c\ucc98\ub7fc \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (player.Inventory.HasUsableItem())\n{\n    \/\/ ...\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ub294 \uc544\uc608<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>player.UseAvailableItem();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc98\ub7fc \ub9cc\ub4e4 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \ubc29\uc2dd\uc774 \ud56d\uc0c1 \uc815\ub2f5\uc774\ub77c\ub294 \uc774\uc57c\uae30\ub294 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc911\uc694\ud55c \uac74 \uc678\ubd80\uc5d0\uc11c \uac1d\uccb4 \ub0b4\ubd80\uc758 \ub370\uc774\ud130\ub97c \uaebc\ub0b4\uc11c \ud310\ub2e8\ud558\ub294 \ucf54\ub4dc\uac00 \ub108\ubb34 \ub9ce\uc544\uc9c0\uace0 \uc788\uc9c0 \uc54a\uc740\uc9c0\ub97c \ubcf4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4\uac00 \uc790\uae30 \uc0c1\ud0dc\ub97c \ud310\ub2e8\ud560 \uc218 \uc788\ub294 \ubb38\uc81c\ub77c\uba74 \uadf8 \ucc45\uc784\uc744 \uac1d\uccb4 \ucabd\uc73c\ub85c \uc62e\uae30\ub294 \uac83\uc774 \ub354 \uc790\uc5f0\uc2a4\ub7ec\uc6b8 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Method Chaining<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Method Chaining\ub3c4 \uc790\ubb38\ud558\uba74\uc11c \uac19\uc774 \uc774\uc57c\uae30\ud588\ub358 \ubd80\ubd84\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 LINQ\uc5d0\uc11c\ub294 \uc774\ub7f0 \ucf54\ub4dc\uac00 \ud754\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>query\n    .Where(...)\n    .OrderBy(...)\n    .Select(...)\n    .ToList();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uac78 \uac00\uc9c0\uace0 &#8220;\uccb4\uc778\uc774 \uae38\uae30 \ub54c\ubb38\uc5d0 \ub098\uc05c \ucf54\ub4dc\ub2e4&#8221;\ub77c\uace0 \ud558\uba74 \uc548 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \ud615\ud0dc\uac00 \uc624\ud788\ub824 LINQ\uc758 \uc7a5\uc810\uc744 \uc0b4\ub9ac\ub294 \uacbd\uc6b0\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc81c\uac00 \ub420 \uc218 \uc788\ub294 \uac74 \uac1d\uccb4 \ub0b4\ubd80\ub97c \uacc4\uc18d \ud0c0\uace0 \ub4e4\uc5b4\uac00\ub294 \ud615\ud0dc\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>player\n    .GetInventory()\n    .GetItems()\n    .First()\n    .GetWeapon()\n    .GetDamage();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \ucf54\ub4dc\ub97c \ubcf4\uba74 <code>Player<\/code>\uac00 <code>Inventory<\/code>\ub97c \uc54c\uace0 \uc788\uc5b4\uc57c \ud558\uace0, <code>Inventory<\/code>\uc758 <code>Items<\/code>\ub3c4 \uc54c\uc544\uc57c \ud558\uace0, \uadf8 \uc548\uc758 <code>Weapon<\/code>\uae4c\uc9c0 \uc54c\uc544\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \ucf54\ub4dc\uac00 \uc5ec\ub7ec \uacf3\uc5d0 \ubc18\ubcf5\ub41c\ub2e4\uba74 \uac1d\uccb4 \uad6c\uc870\uac00 \uc678\ubd80\ub85c \ub108\ubb34 \ub9ce\uc774 \ub178\ucd9c\ub41c \uac83\uc740 \uc544\ub2cc\uc9c0 \ud655\uc778\ud574\ubcfc \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Method Chaining \uc790\uccb4\uac00 \ubb38\uc81c\uac00 \uc544\ub2c8\ub77c \uc5b4\ub5a4 \ubaa9\uc801\uc73c\ub85c \uccb4\uc778\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\ub294\uc9c0\ub97c \ubd10\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Closure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Closure\ub294 \ucc98\uc74c\uc5d0\ub294 \uadf8\ub0e5 Lambda\uc640 \ube44\uc2b7\ud55c \uac1c\ub150\uc73c\ub85c \uc0dd\uac01\ud558\uae30 \uc26c\uc6e0\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uc815\ud655\ud788\ub294 \ud568\uc218\uac00 \ub9cc\ub4e4\uc5b4\uc9c4 \ubc14\uae65 \ud658\uacbd\uc744 \uacc4\uc18d \ucc38\uc870\ud560 \uc218 \uc788\ub294 \ud2b9\uc131\uc5d0 \uac00\uae5d\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int value = 10;\n\nFunc&lt;int&gt; GetValue = () =&gt; value;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>GetValue<\/code>\uac00 \uc678\ubd80\uc758 <code>value<\/code>\ub97c \ucc38\uc870\ud558\uace0 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JavaScript\uc5d0\uc11c\ub294 \uc774\ub7f0 \uc2dd\uc73c\ub85c \ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function CreateCounter()\n{\n    let count = 0;\n\n    return function()\n    {\n        count++;\n        return count;\n    };\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>CreateCounter()<\/code>\uac00 \ub05d\ub09c \ub4a4\uc5d0\ub3c4 \ubc18\ud658\ub41c \ud568\uc218\ub294 <code>count<\/code>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \ud2b9\uc131\uc774 Callback\uc774\ub098 Event Handler, Lambda, LINQ \ub4f1\uc5d0\uc11c \ub9ce\uc774 \uc0ac\uc6a9\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc774\uac83\ub3c4 \ud3b8\ub9ac\ud558\ub2e4\uace0 \ubb34\uc870\uac74 \uc88b\uc740 \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int damage = 100;\n\nAction attack = () =&gt;\n{\n    enemy.TakeDamage(damage);\n};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code>attack<\/code>\uc774 <code>damage<\/code>\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\ub2e4\ub294 \uc0ac\uc2e4\uc774 \ud568\uc218\uc758 \uc778\uc790\ub9cc \ubd10\uc11c\ub294 \ubcf4\uc774\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\ub4dc\uac00 \ucee4\uc9c0\uba74 \uc774\ub7f0 \uc678\ubd80 \uc0c1\ud0dc \uc758\uc874\uc131\uc774 \ucd94\uc801\ud558\uae30 \uc5b4\ub824\uc6cc\uc9c8 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Lambda\ub97c \uc0ac\uc6a9\ud560 \ub54c\ub3c4 &#8220;\uc774 \ucf54\ub4dc\uac00 \uc5b4\ub5a4 \uc678\ubd80 \ubcc0\uc218\ub97c \uc7a1\uace0 \uc788\ub294\uac00?&#8221;\ub97c \uc0dd\uac01\ud560 \ud544\uc694\uac00 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">SOLID\ub97c \ub2e4\uc2dc \ubcf4\uac8c \ub41c \ubd80\ubd84<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SOLID\ub294 \uac1c\ubc1c \uacf5\ubd80\ub97c \ud558\uba74\uc11c \uc6cc\ub099 \ub9ce\uc774 \ubd24\ub358 \ub0b4\uc6a9\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uc774\ubc88\uc5d0\ub294 \uac01\uac01\uc758 \uc6d0\uce59\uc744 \uc678\uc6b0\ub294 \uac83\ubcf4\ub2e4 Code Smell\uacfc \uac19\uc774 \ubcf4\ub2c8 \uc870\uae08 \ub2e4\ub974\uac8c \uc774\ud574\ub410\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>S -&gt; Single Responsibility Principle\nO -&gt; Open\/Closed Principle\nL -&gt; Liskov Substitution Principle\nI -&gt; Interface Segregation Principle\nD -&gt; Dependency Inversion Principle\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 SRP\ub97c \ub2e8\uc21c\ud788 &#8220;\ud074\ub798\uc2a4 \ud558\ub098\uc5d0\ub294 \ucc45\uc784 \ud558\ub098&#8221;\ub77c\uace0 \uc678\uc6b0\uba74 \uc560\ub9e4\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c\ub294 \ubcc0\uacbd\uc758 \uc774\uc720\uac00 \uc5ec\ub7ec \uac1c\uac00 \ub418\uace0 \uc788\ub294\uc9c0\ub97c \ubcf4\ub294 \ud3b8\uc774 \uc774\ud574\ud558\uae30 \uc27d\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Player<\/code> \ud558\ub098\uac00 \uc774\ub3d9\ub3c4 \ud558\uace0 \uc804\ud22c\ub3c4 \ud558\uace0 \uc800\uc7a5\ub3c4 \ud558\uace0 \ub124\ud2b8\uc6cc\ud06c\ub3c4 \ucc98\ub9ac\ud55c\ub2e4\uace0 \ud574\ubcf4\uc790.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Player\n-&gt; Movement\n-&gt; Combat\n-&gt; Save\n-&gt; Network\n-&gt; UI\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uc0c1\ud0dc\uc5d0\uc11c\ub294 \uc774\ub3d9 \ub85c\uc9c1\uc744 \uc218\uc815\ud560 \ub54c\ub3c4 <code>Player<\/code>\ub97c \uc218\uc815\ud558\uace0 \uc800\uc7a5 \ub85c\uc9c1\uc744 \uc218\uc815\ud560 \ub54c\ub3c4 <code>Player<\/code>\ub97c \uc218\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uad6c\uc870\uac00 \uacc4\uc18d \ucee4\uc9c0\uba74 \ucc45\uc784\uc774 \uc11e\uc600\ub2e4\uace0 \ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OCP\ub3c4 \ube44\uc2b7\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \ubb34\uae30 \uc885\ub958\uac00 \ub298\uc5b4\ub0a0 \ub54c\ub9c8\ub2e4 \uae30\uc874 \ucf54\ub4dc\uc5d0 <code>if<\/code>\ub97c \uacc4\uc18d \ucd94\uac00\ud574\uc57c \ud55c\ub2e4\uba74 \ud655\uc7a5\ud558\uae30 \ubd88\ud3b8\ud574\uc9c4\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (weaponType == Sword)\n{\n}\nelse if (weaponType == Bow)\n{\n}\nelse if (weaponType == Gun)\n{\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\ud669\uc5d0 \ub530\ub77c\uc11c\ub294 \ub2e4\ud615\uc131\uc744 \uc0ac\uc6a9\ud558\ub294 \ud3b8\uc774 \ub098\uc744 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IWeapon\n-&gt; Sword\n-&gt; Bow\n-&gt; Gun\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">LSP\ub294 \uc0c1\uc18d \uad00\uacc4\uc5d0\uc11c \ubd80\ubaa8 \ud0c0\uc785\uc73c\ub85c \uc0ac\uc6a9\ud558\ub358 \uac1d\uccb4\ub97c \uc790\uc2dd \uac1d\uccb4\ub85c \ubc14\uafe8\uc744 \ub54c \uae30\uc874 \ucf54\ub4dc\uc758 \uc758\ubbf8\uac00 \uae68\uc9c0\uc9c0 \uc54a\uc544\uc57c \ud55c\ub2e4\ub294 \ub0b4\uc6a9\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ISP\ub294 \ud558\ub098\uc758 \uac70\ub300\ud55c \uc778\ud130\ud398\uc774\uc2a4\ub97c \ub9cc\ub4e4\uc5b4\uc11c \ud544\uc694 \uc5c6\ub294 \uae30\ub2a5\uae4c\uc9c0 \uad6c\ud604\ud558\uac8c \ub9cc\ub4e4\uc9c0 \uc54a\ub294 \ucabd\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DIP\ub294 \uad6c\uccb4\uc801\uc778 \uad6c\ud604\uc5d0 \uc9c1\uc811 \uc758\uc874\ud558\uae30\ubcf4\ub2e4\ub294 \ucd94\uc0c1\ud654\uc5d0 \uc758\uc874\ud558\ub3c4\ub85d \ub9cc\ub4dc\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \ub193\uace0 \ubcf4\ub2c8 SOLID\uac00 \uac01\uac01 \ub530\ub85c \uc874\uc7ac\ud558\ub294 \uaddc\uce59\uc774\ub77c\uae30\ubcf4\ub2e4\ub294 \ucf54\ub4dc\ub97c \uc218\uc815\ud558\ub2e4\uac00 \ubd80\ub52a\ud788\ub294 \ubb38\uc81c\ub97c \uc124\uba85\ud558\ub294 \uae30\uc900\uc5d0 \uac00\uae5d\ub2e4\ub294 \uc0dd\uac01\uc774 \ub4e4\uc5c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dependency Injection<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">DI\ub3c4 \uacb0\uad6d DIP\uc640 \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player\n{\n    private Weapon weapon = new Sword();\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \uc791\uc131\ud558\uba74 <code>Player<\/code>\uac00 <code>Sword<\/code>\ub77c\ub294 \uad6c\uccb4\uc801\uc778 \uad6c\ud604\uc744 \uc9c1\uc811 \uc54c\uace0 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Player\n{\n    private IWeapon weapon;\n\n    public Player(IWeapon weapon)\n    {\n        this.weapon = weapon;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uc2dd\uc73c\ub85c \ub9cc\ub4e4\uba74 <code>Player<\/code>\uac00 \uad6c\uccb4\uc801\uc778 \ubb34\uae30\ub97c \uc9c1\uc811 \uc0dd\uc131\ud558\uc9c0 \uc54a\uc544\ub3c4 \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Player\n-&gt; IWeapon\n-&gt; Sword \/ Bow \/ Gun\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">DI\ub97c \ub2e8\uc21c\ud788 \uc0dd\uc131\uc790\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc774\ub77c\uace0 \uc774\ud574\ud558\uba74 \ubd80\uc871\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1d\uccb4\uac00 \uc790\uae30 \uc758\uc874\uc131\uc744 \uc9c1\uc811 \ub9cc\ub4e4\uc5b4\ub0b4\ub294 \ub300\uc2e0 \uc678\ubd80\uc5d0\uc11c \ud544\uc694\ud55c \uac83\uc744 \uc804\ub2ec\ubc1b\ub3c4\ub85d \ub9cc\ub4dc\ub294 \uac83\uc774 \ud575\uc2ec\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Unity\uc5d0\uc11c Singleton\uc744 \uc4f0\ub294 \uac83\uacfc DI\ub97c \uc4f0\ub294 \uac83<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unity\uc5d0\uc11c\ub294 Singleton\uc744 \uc815\ub9d0 \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GameManager.Instance\nAudioManager.Instance\nNetworkManager.Instance\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud3b8\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c \uc791\uc740 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c\ub294 \ucda9\ubd84\ud788 \uc2e4\uc6a9\uc801\uc77c \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc81c\ub294 \ud504\ub85c\uc81d\ud2b8\uac00 \ucee4\uc9c0\uba74\uc11c \ubaa8\ub4e0 \ucf54\ub4dc\uac00 Singleton\uc744 \uc9c1\uc811 \ucc38\uc870\ud558\uae30 \uc2dc\uc791\ud560 \ub54c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Player -&gt; GameManager\nEnemy -&gt; GameManager\nUI -&gt; GameManager\nNetwork -&gt; GameManager\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \ub418\uba74 \ub204\uac00 \ubb34\uc5c7\uc5d0 \uc758\uc874\ud558\ub294\uc9c0 \ucd94\uc801\ud558\uae30 \uc5b4\ub824\uc6cc\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DI\ub97c \uc0ac\uc6a9\ud558\uba74 \ucd5c\uc18c\ud55c \uc758\uc874\uc131\uc774 \uac1d\uccb4\uc758 \uad6c\uc131 \uacfc\uc815\uc5d0\uc11c \ub4dc\ub7ec\ub098\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Player -&gt; IGameManager\nEnemy -&gt; IGameManager\nUI -&gt; IGameManager\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub807\ub2e4\uace0 Singleton\uc744 \ubb34\uc870\uac74 \uc81c\uac70\ud574\uc57c \ud55c\ub2e4\ub294 \uc774\uc57c\uae30\ub294 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Singleton\uc774 \ubb38\uc81c\uac00 \ub418\ub294 \uc0c1\ud669\uacfc \uadf8\ub807\uc9c0 \uc54a\uc740 \uc0c1\ud669\uc744 \uad6c\ubd84\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d \uc774\uac83\ub3c4 \uac19\uc740 \uc774\uc57c\uae30\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc220 \uc790\uccb4\ubcf4\ub2e4 \uadf8 \uae30\uc220 \ub54c\ubb38\uc5d0 \ucf54\ub4dc\uac00 \uc5b4\ub5a4 \uc0c1\ud0dc\uac00 \ub418\ub294\uc9c0\ub97c \ubcf4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Zenject<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Unity\uc5d0\uc11c DI\ub97c \uad6c\uc131\ud558\ub2e4 \ubcf4\uba74 \uac1d\uccb4\uac00 \ub9ce\uc544\uc9c0\uace0 \uc758\uc874 \uad00\uacc4\ub3c4 \ubcf5\uc7a1\ud574\uc9c8 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \ubd80\ubd84\uc744 \uad00\ub9ac\ud558\uae30 \uc704\ud574 Zenject \uac19\uc740 DI Framework\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8\uc801\uc73c\ub85c\ub294 \uc5b4\ub5a4 \uc778\ud130\ud398\uc774\uc2a4\uc5d0 \uc5b4\ub5a4 \uad6c\ud604\uc744 \uc0ac\uc6a9\ud560\uc9c0 Container\uc5d0 \ub4f1\ub85d\ud574\ub450\uace0 \ud544\uc694\ud55c \uac1d\uccb4\uac00 \ub9cc\ub4e4\uc5b4\uc9c8 \ub54c \uc5f0\uacb0\ud574\uc8fc\ub294 \ubc29\uc2dd\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Container.Bind&lt;IWeapon&gt;()\n    .To&lt;Sword&gt;()\n    .AsSingle();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Player\n{\n    &#91;Inject]\n    private IWeapon weapon;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uc2dd\uc73c\ub85c \uad6c\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Installer\n-&gt; Binding\n-&gt; Container\n-&gt; Object Construction\n-&gt; Injection\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc774\uac83\ub3c4 \ud504\ub85c\uc81d\ud2b8 \ud06c\uae30\ub97c \uc0dd\uac01\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc791\uc740 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c DI Framework\uae4c\uc9c0 \uac00\uc838\uc624\uba74 \uc624\ud788\ub824 \uad6c\uc870\uac00 \ubcf5\uc7a1\ud574\uc9c8 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DI\uac00 \ud544\uc694\ud558\ub2e4\uace0 \ud574\uc11c \ubc18\ub4dc\uc2dc Zenject\uae4c\uc9c0 \ud544\uc694\ud55c \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">UniRx\ub97c \ubcf4\uba74\uc11c \uc0dd\uac01\ud55c \uac83<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx\ub294 Unity\uc5d0\uc11c Reactive Programming\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud574\uc8fc\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874 Unity \ucf54\ub4dc\uc5d0\uc11c\ub294 \uc0c1\ud0dc\ub97c \uacc4\uc18d \ud655\uc778\ud558\ub294 \ubc29\uc2dd\uc774 \ud754\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Update\n-&gt; \uc0c1\ud0dc \ud655\uc778\n-&gt; \uc870\uac74 \ud655\uc778\n-&gt; \ud568\uc218 \ud638\ucd9c\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Reactive Programming\uc5d0\uc11c\ub294 \uac12\uc774 \ubcc0\ud558\ub294 \uac83\uc744 \ud558\ub098\uc758 \ud750\ub984\uc73c\ub85c \ubcf4\uace0 \uadf8 \ubcc0\ud654\uc5d0 \ubc18\uc751\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>health\n    .Where(x =&gt; x &lt;= 0)\n    .Subscribe(_ =&gt; Die());\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ucf54\ub4dc\ub294 \uccb4\ub825\uc744 \uacc4\uc18d \ud655\uc778\ud558\ub294 \ub300\uc2e0 \ud2b9\uc815 \uc870\uac74\uc774 \ub418\uc5c8\uc744 \ub54c <code>Die()<\/code>\ub97c \ud638\ucd9c\ud558\ub294 \ud615\ud0dc\ub85c \ud45c\ud604\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Health\n-&gt; Observable\n-&gt; Where\n-&gt; Subscribe\n-&gt; Die\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uad6c\uc870\uac00 \ud544\uc694\ud55c \uacf3\uc5d0\uc11c\ub294 \uc0c1\ub2f9\ud788 \uae54\ub054\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc18\ub300\ub85c \ubaa8\ub4e0 \uc774\ubca4\ud2b8\ub97c Reactive Stream\uc73c\ub85c \ubc14\uafd4\uc57c \ud55c\ub2e4\uace0 \uc0dd\uac01\ud558\uba74 \ucf54\ub4dc\uac00 \ub354 \ubcf5\uc7a1\ud574\uc9c8 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c UniRx\ub3c4 \uacb0\uad6d \uc6a9\ub3c4\ub97c \ubcf4\uace0 \uc120\ud0dd\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Subscription\uacfc Dispose<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Reactive Programming\uc744 \uc0ac\uc6a9\ud560 \ub54c\ub294 \uad6c\ub3c5\uc758 \uc0dd\uba85\uc8fc\uae30\ub97c \uac19\uc774 \ubd10\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var subscription = observable.Subscribe(...);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uad6c\ub3c5\uc744 \ud588\ub294\ub370 \ub354 \uc774\uc0c1 \ud544\uc694\ud558\uc9c0 \uc54a\uc740 \uc0c1\ud0dc\uc5d0\uc11c\ub3c4 \uacc4\uc18d \uc0b4\uc544 \uc788\ub2e4\uba74 \uc774\ubca4\ud2b8\uac00 \uacc4\uc18d \uc804\ub2ec\ub420 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unity\uc5d0\uc11c\ub294 \ud2b9\ud788 \uac1d\uccb4\uc758 \uc0dd\uba85\uc8fc\uae30\uc640 \uad00\ub828\ud574\uc11c \ubb38\uc81c\uac00 \uc0dd\uae38 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 GameObject\uac00 \uc0ac\ub77c\uc84c\ub294\ub370 Subscription\uc774 \uacc4\uc18d \ub0a8\uc544 \uc788\ub294 \uacbd\uc6b0\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UniRx\uc5d0\uc11c\ub294 \ub2e4\uc74c\ucc98\ub7fc \uad00\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>observable\n    .Subscribe(...)\n    .AddTo(this);\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c Reactive Programming\uc5d0\uc11c\ub294 Observable\uc744 \ub9cc\ub4dc\ub294 \uac83\ub9cc\ud07c \uad6c\ub3c5\uc774 \uc5b8\uc81c \uc2dc\uc791\ub418\uace0 \uc5b8\uc81c \ub05d\ub098\ub294\uc9c0\ub3c4 \uc911\uc694\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uacb0\uad6d \ucf54\ub4dc \ud488\uc9c8\uc744 \uc5b4\ub5bb\uac8c \ubd10\uc57c \ud558\ub294\uac00<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uc790\ubb38\uc744 \ub4e3\uace0 \ub098\uc11c \uac00\uc7a5 \ud06c\uac8c \ubc14\ub010 \ubd80\ubd84\uc740 \uc5ec\uae30\uc600\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\uc804\uc5d0\ub294 \uc88b\uc740 \ucf54\ub4dc\ub97c \uc0dd\uac01\ud560 \ub54c \ub514\uc790\uc778 \ud328\ud134\uc774\ub098 SOLID \uac19\uc740 \uac83\uc744 \uba3c\uc800 \ub5a0\uc62c\ub838\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7f0\ub370 \uc9c0\uae08\uc740 \uc870\uae08 \ub2e4\ub974\uac8c \uc0dd\uac01\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uc774\ub7f0 \uc2dd\uc73c\ub85c \ud310\ub2e8\ud558\uba74 \uc548 \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if\uac00 \ub9ce\ub2e4 -&gt; \ub098\uc05c \ucf54\ub4dc\nSingleton -&gt; \ub098\uc05c \ucf54\ub4dc\nLambda -&gt; \uc88b\uc740 \ucf54\ub4dc\nDI -&gt; \uc88b\uc740 \ucf54\ub4dc\nUniRx -&gt; \uc88b\uc740 \ucf54\ub4dc\nMethod Chain -&gt; \ub098\uc05c \ucf54\ub4dc\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \ubcf4\uba74 \uaddc\uce59\uc744 \uc9c0\ud0a4\ub294 \uac83 \uc790\uccb4\uac00 \ubaa9\uc801\uc774 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c \uba3c\uc800 \ubd10\uc57c \ud558\ub294 \uac74 \uc774\ub7f0 \ubd80\ubd84\uc774\ub77c\uace0 \uc0dd\uac01\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uc774 \ucf54\ub4dc\ub294 \uc218\uc815\ud558\uae30 \uc5b4\ub824\uc6b4\uac00?\n\ud14c\uc2a4\ud2b8\ud558\uae30 \uc5b4\ub824\uc6b4\uac00?\n\ucc45\uc784\uc774 \uc11e\uc5ec \uc788\ub294\uac00?\n\ub2e4\ub978 \ucf54\ub4dc\uc640 \ub108\ubb34 \uac15\ud558\uac8c \uc5f0\uacb0\ub418\uc5b4 \uc788\ub294\uac00?\n\uac1d\uccb4\uc758 \ub0b4\ubd80 \uad6c\uc870\ub97c \uc678\ubd80\uc5d0\uc11c \ub108\ubb34 \ub9ce\uc774 \uc54c\uace0 \uc788\ub294\uac00?\n\uc791\uc740 \ubcc0\uacbd \ub54c\ubb38\uc5d0 \uc5ec\ub7ec \uacf3\uc744 \uac19\uc774 \uc218\uc815\ud574\uc57c \ud558\ub294\uac00?\n\uac1d\uccb4\uc758 \uc0dd\uba85\uc8fc\uae30\ub97c \ucd94\uc801\ud558\uae30 \uc5b4\ub824\uc6b4\uac00?\n\ubd88\ud544\uc694\ud55c \ube44\uc6a9\uc744 \ub9cc\ub4e4\uace0 \uc788\ub294\uac00?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc81c\uac00 \ud655\uc778\ub418\uba74 \uadf8\ub54c \ubc29\ubc95\uc744 \uc120\ud0dd\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Guard Clause\uac00 \ud544\uc694\ud560 \uc218\ub3c4 \uc788\uace0, \uba54\uc11c\ub4dc\ub97c \ubd84\ub9ac\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc778\ud130\ud398\uc774\uc2a4\uac00 \ud544\uc694\ud560 \uc218\ub3c4 \uc788\uace0 DI\uac00 \ud544\uc694\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5b4\ub5a4 \uacbd\uc6b0\uc5d0\ub294 \uadf8\ub0e5 \uc9c0\uae08 \uad6c\uc870\ub97c \uc720\uc9c0\ud558\ub294 \uac83\uc774 \ub354 \ub098\uc744 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uac8c \uc911\uc694\ud55c \ubd80\ubd84\uc778 \uac83 \uac19\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc790\ubb38\uc744 \ubc1b\uace0 \ub098\uc11c \uc815\ub9ac\ud55c \uac83<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d Code Smell, SOLID, DI, Closure, Reactive Programming \uac19\uc740 \ub0b4\uc6a9\uc744 \ub530\ub85c \uc678\uc6b0\ub294 \uac83\ubcf4\ub2e4 \ucf54\ub4dc\ub97c \ubcf4\ub294 \uae30\uc900\uc744 \ub9cc\ub4dc\ub294 \uac8c \ub354 \uc911\uc694\ud558\ub2e4\uace0 \uc0dd\uac01\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uc774 \ucf54\ub4dc\uc758 \ucc45\uc784\uc740 \ubb34\uc5c7\uc778\uac00?\n\ub204\uac00 \uc774 \ucf54\ub4dc\ub97c \ubcc0\uacbd\ud558\uac8c \ub418\ub294\uac00?\n\ubb34\uc5c7\uc5d0 \uc758\uc874\ud558\uace0 \uc788\ub294\uac00?\n\ubcc0\uacbd\ud588\uc744 \ub54c \uc5b4\ub514\uae4c\uc9c0 \uc601\ud5a5\uc774 \uac00\ub294\uac00?\n\uac1d\uccb4\uc758 \ub0b4\ubd80\ub97c \uc678\ubd80\uc5d0\uc11c \ub108\ubb34 \ub9ce\uc774 \uc54c\uace0 \uc788\uc9c0\ub294 \uc54a\uc740\uac00?\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uc9c8\ubb38\uc744 \ud558\ub2e4 \ubcf4\uba74 Code Smell\uc774 \ubcf4\uc774\uace0, \uadf8\ub2e4\uc74c\uc5d0 SOLID\ub098 \ucea1\uc290\ud654 \uac19\uc740 \uac1c\ub150\uc744 \uc801\uc6a9\ud560 \uc774\uc720\uac00 \uc0dd\uae34\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DI\ub3c4 \ub9c8\ucc2c\uac00\uc9c0\uace0 Zenject\ub3c4 \ub9c8\ucc2c\uac00\uc9c0\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud544\uc694\ud574\uc11c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\uc9c0, \uc88b\uc740 \uae30\uc220\uc774\ub2c8\uae4c \ub123\ub294 \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1c\ubc1c\ud558\uba74\uc11c \uacb0\uad6d \uacc4\uc18d \ub9c8\uc8fc\uce58\ub294 \ubb38\uc81c\ub294 \ube44\uc2b7\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucf54\ub4dc\uac00 \ucee4\uc84c\uc744 \ub54c \uc218\uc815\ud558\uae30 \uc5b4\ub824\uc6cc\uc9c0\uace0, \ucc45\uc784\uc774 \uc11e\uc774\uace0, \uc758\uc874\uc131\uc774 \ubcf5\uc7a1\ud574\uc9c0\uace0, \ubcc0\uacbd\uc758 \uc601\ud5a5 \ubc94\uc704\uac00 \ucee4\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc88b\uc740 \uc124\uacc4\ub77c\ub294 \uac83\ub3c4 \uacb0\uad6d \uc774\ub7f0 \ubb38\uc81c\ub97c \uc904\uc774\ub294 \ubc29\ud5a5\uc73c\ub85c \uac00\ub294 \uac83\uc774\ub77c\uace0 \uc774\ud574\ud588\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uba85\ud655\ud55c \ucc45\uc784\n-&gt; \ud544\uc694\ud55c \ub9cc\ud07c\uc758 \ucd94\uc0c1\ud654\n-&gt; \uc801\uc808\ud55c \uc758\uc874\uc131\n-&gt; \ub0ae\uc740 \uacb0\ud569\ub3c4\n-&gt; \ub192\uc740 \uc751\uc9d1\ub3c4\n-&gt; \ubcc0\uacbd\ud558\uae30 \uc26c\uc6b4 \ucf54\ub4dc\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uc790\ubb38\uc5d0\uc11c \uac00\uc7a5 \uae30\uc5b5\uc5d0 \ub0a8\uc740 \uac74 \ud2b9\uc815 \ud328\ud134 \ud558\ub098\uac00 \uc544\ub2c8\ub77c <strong>\ucf54\ub4dc\uc5d0 \ubb38\uc81c\uac00 \ubcf4\uc600\uc744 \ub54c \ubb34\uc870\uac74 \uaddc\uce59\uc744 \uc801\uc6a9\ud558\ub294 \uac8c \uc544\ub2c8\ub77c, \uc65c \ubb38\uc81c\uac00 \ub418\ub294\uc9c0\ub97c \uba3c\uc800 \uc0dd\uac01\ud574\uc57c \ud55c\ub2e4\ub294 \uac83<\/strong>\uc774\uc5c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uad6d \uc124\uacc4\ub294 \uc815\ub2f5\uc744 \ub9de\ud788\ub294 \ubb38\uc81c\uac00 \uc544\ub2c8\ub77c \ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \ubc1c\uc0dd\ud558\ub294 \ubcc0\uacbd\uacfc \ubcf5\uc7a1\uc131\uc744 \uc5bc\ub9c8\ub098 \uc801\uc740 \ube44\uc6a9\uc73c\ub85c \ub2e4\ub8f0 \uc218 \uc788\ub290\ub0d0\uc758 \ubb38\uc81c\uc5d0 \uac00\uae5d\ub2e4\uace0 \uc0dd\uac01\ud55c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ucf54\ub4dc \ud488\uc9c8\uacfc \uc124\uacc4\uc5d0 \ub300\ud574 \uc790\ubb38\ubc1b\uace0 \uc815\ub9ac\ud55c \ub0b4\uc6a9 \uc774\ubc88\uc5d0 \uac1c\ubc1c\uacfc \uad00\ub828\ud574\uc11c \uc790\ubb38\uc744 \ubc1b\uc73c\uba74\uc11c \ucf54\ub4dc \ud488\uc9c8\uc5d0 \ub300\ud55c \uc774\uc57c\uae30\ub3c4 \uac19\uc774 \ub098\uc654\ub2e4. \ucc98\uc74c\uc5d0\ub294 \uadf8\ub0e5 \ucf54\ub4dc\ub97c \uae54\ub054\ud558\uac8c \uc791\uc131\ud558\ub294 \ubc29\ubc95 \uc815\ub3c4\ub97c \uc0dd\uac01\ud558\uace0 \uc788\uc5c8\ub2e4. \ubcc0\uc218 \uc774\ub984\uc744 \uc798 \uc9d3\ub294\ub2e4\uac70\ub098, \ud568\uc218\ub97c \uc801\ub2f9\ud788 \ub098\ub208\ub2e4\uac70\ub098 \ud558\ub294 \uc815\ub3c4\ub2e4. \uadf8\ub7f0\ub370 \uc774\uc57c\uae30\ub97c \ub4e3\ub2e4 \ubcf4\ub2c8 \uadf8\ub7f0 \uac83\ubcf4\ub2e4 \uc870\uae08 \ub354 \uadfc\ubcf8\uc801\uc778 \ubd80\ubd84\uc774 \uc788\uc5c8\ub2e4. \ucf54\ub4dc\uac00 \uc9c0\uae08 \uc815\uc0c1\uc801\uc73c\ub85c \ub3d9\uc791\ud558\ub294 \uac83\uacfc \ub098\uc911\uc5d0 \uc218\uc815\ud558\uae30 \uc88b\uc740 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[],"class_list":["post-2071","post","type-post","status-publish","format-standard","hentry","category-dev-notes"],"_links":{"self":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/2071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2071"}],"version-history":[{"count":3,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/2071\/revisions"}],"predecessor-version":[{"id":2104,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/2071\/revisions\/2104"}],"wp:attachment":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}