{"id":7785,"date":"2019-11-07T06:13:23","date_gmt":"2019-11-07T14:13:23","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7785"},"modified":"2025-06-13T19:40:23","modified_gmt":"2025-06-14T02:40:23","slug":"asp-net-core-microservices-getting-started","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-microservices-getting-started\/","title":{"rendered":"ASP.NET \ud575\uc2ec \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4: \uc2dc\uc791\ud558\uae30"},"content":{"rendered":"<div class=\"paragraph\">\n<p>ASP.NET \ud575\uc2ec \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4: \uc804\uccb4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\/\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc758 \ub2e8\uc77c \"\uc218\uc9c1\" \uc870\uac01\uc744 \ub2f4\ub2f9\ud558\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_why_asp_net_core_microservices\">\uc65c ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc778\uac00?<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ub9ce\uc740 <a href=\"https:\/\/microservices.io\/\">\uc758\uacac \ubc0f \uad8c\uc7a5 \uc0ac\ud56d<\/a> \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uac00 \ubb34\uc5c7\uc778\uc9c0, \uc5b8\uc81c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc640 \ubaa8\ub180\ub9ac\uc2a4\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294\uc9c0 \ub4f1\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<\/div>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 <a href=\"https:\/\/t.co\/3xYWUgP2QW\">pic.twitter.com\/3xYWUgP2QW<\/a><\/p>\n<p>- \ub370\uc774\ube44\ub4dc \ub2d0 \ud83e\udd53\ud83e\udd51 (@reverentgeek) <a href=\"https:\/\/twitter.com\/reverentgeek\/status\/884470574667501569?ref_src=twsrc%5Etfw\">2017\ub144 7\uc6d4 10\uc77c<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<div class=\"paragraph\">\n<p>\uc774 \uae00\uc5d0\uc11c\ub294 \uc774\ub7ec\ud55c \uc9c8\ubb38\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \ub2e4\ub8e8\uc9c0\ub294 \uc54a\uaca0\uc2b5\ub2c8\ub2e4. \ub300\uc2e0 \ub2e4\uc74c\uacfc \uac19\uc740 \uc9c8\ubb38\ub9cc \ub2e4\ub8e8\uaca0\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/chrisrichardson.net\/post\/antipatterns\/2019\/04\/09\/antipattern-flying-before-walking.html\">\ub0a0\uae30 \uc804\uc5d0 \uac77\uae30<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc6b0\ub9ac\uac00 \ud0d0\uc0c9\ud558\uace0 \uc788\ub2e4\uace0 \uac00\uc815\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/microservices-architecture-in-couchbase\/\">\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98<\/a>\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\uc73c\uba70, \ud2b9\uc815 \uc0ac\uc6a9 \uc0ac\ub840\uc5d0 \ub300\ud574 \ub2e4\uad6d\uc5b4 \uc9c0\uc18d\uc131\uc744 \ud65c\uc6a9\ud558\uc5ec NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4(Couchbase)\ub97c \uc0ac\uc6a9\ud558\uace0\uc790 \ud569\ub2c8\ub2e4. \uc774 \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 <a href=\"https:\/\/microservices.io\/patterns\/data\/database-per-service.html\">\uc11c\ube44\uc2a4\ubcc4 \ub370\uc774\ud130\ubca0\uc774\uc2a4<\/a> \ud328\ud134\uc744 \uc0ac\uc6a9\ud558\uace0, Docker(docker-compose)\ub97c \uc0ac\uc6a9\ud558\uc5ec ASP.NET \ucf54\uc5b4 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc6a9 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uad00\ub9ac\ud569\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/proof-of-concept-move-relational\/\">\uac1c\ub150 \uc99d\uba85<\/a>.<\/p>\n<\/div>\n<div class=\"sidebarblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>Couchbase\uc640 \uac19\uc740 NoSQL \ubb38\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 <a href=\"https:\/\/resources.couchbase.com\/sdr\/couchbase-use-cases\">\ub04a\uc784\uc5c6\uc774 \ud655\uc7a5\ub418\ub294 \ub2e4\uc591\ud55c \uc0ac\uc6a9 \uc0ac\ub840<\/a> \ud504\ub85c\ud544 \uad00\ub9ac, \ucf58\ud150\uce20 \uad00\ub9ac, \uac1c\uc778\ud654 \ub4f1 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 Couchbase Server\ub97c \uc0ac\uc6a9\ud558\uc9c0\ub9cc, \uc5ec\uae30\uc11c\uc758 \uae30\ubcf8 \uc0ac\ud56d\uc744 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc758 \ub2e4\ub978 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\ub3c4 \uc801\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc0ac\uc6a9 \uc911 <strong>ASP.NET Core<\/strong> \ud06c\ub85c\uc2a4 \ud50c\ub7ab\ud3fc \uc624\ud508 \uc18c\uc2a4 \ud504\ub808\uc784\uc6cc\ud06c\uc774\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \ub610\ud55c, <a href=\"https:\/\/visualstudio.microsoft.com\/\">Visual Studio<\/a> (\ud544\uc218\ub294 \uc544\ub2c8\uc9c0\ub9cc)\ub294 Docker \ubc0f <a href=\"https:\/\/docs.docker.com\/compose\/\">\ub3c4\ucee4-\ucef4\ud3ec\uc988<\/a>. \ud558\uc9c0\ub9cc \uc5ec\uae30\uc11c \uc124\uba85\ud55c \uae30\ubcf8 \uc0ac\ud56d\uc744 \uc6d0\ud558\ub294 \uc6f9 \ud504\ub808\uc784\uc6cc\ud06c\ub098 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\uc5d0 \uc801\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_step_1_create_a_new_solution\">1\ub2e8\uacc4: \uc0c8 \uc194\ub8e8\uc158 \ub9cc\ub4e4\uae30<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 Visual Studio\ub97c \uc0ac\uc6a9\ud558\uc9c0\ub9cc, Visual Studio Code \ub610\ub294 \uc77c\ubc18 \uba85\ub839\uc904\uc5d0\uc11c\ub3c4 \ub3d9\uc77c\ud55c \ud6a8\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4(\uc57d\uac04\uc758 \uc791\uc5c5\ub9cc \ub354\ud558\uba74).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc0c8 ASP.NET Core \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc800\ub294 HelloMicroservice(\uadf8\ub9ac\uace0 <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/126MicroserviceDocker\/src\/HelloMicroservice\">\uc804\uccb4 \uc18c\uc2a4 \ucf54\ub4dc\ub294 \uae43\ud5c8\ube0c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/a> \ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12601-visual-studio-new-project.png\" alt=\"New project in Visual Studio\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc758 \uacbd\uc6b0 Visual Studio\uc5d0\uc11c\ub3c4 \uc774\ub7ec\ud55c \uacb0\uc815\uc744 \ub0b4\ub838\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 MVC(\ud45c\uc2dc \ubaa9\uc801\uc73c\ub85c \uba87 \uac00\uc9c0 \uae30\ubcf8 HTML\uc744 \uc0dd\uc131\ud558\uc9c0\ub9cc \ub300\uc2e0 API \ud504\ub85c\uc81d\ud2b8\ub97c \uc27d\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4)<\/li>\n<li>ASP.NET Core 3(\uc791\uc131 \uc2dc\uc810\uc758 \ucd5c\uc2e0 ASP.NET Core)<\/li>\n<li>HTTPS \uad6c\uc131(\ubc18\ub4dc\uc2dc \ud544\uc694\ud55c \uac83\uc740 \uc544\ub2c8\uc9c0\ub9cc \uc88b\uc740 \uc544\uc774\ub514\uc5b4)<\/li>\n<li>Docker \uc9c0\uc6d0 \uc0ac\uc6a9<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12602-visual-studio-wizard.png\" alt=\"Visual Studio new project wizard\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uc2dc\uc810\uc5d0\uc11c \uc544\uc8fc \uae30\ubcf8\uc801\uc778 ASP.NET Core \ud504\ub85c\uc81d\ud2b8\uac00 \ub9cc\ub4e4\uc5b4\uc84c\uc744 \uac83\uc785\ub2c8\ub2e4. \ub2e4\uc74c\uc73c\ub85c \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\uacfc \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ucd94\uac00\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_step_2_add_docker_compose_support\">2\ub2e8\uacc4: \ub3c4\ucee4 \ucef4\ud3ec\uc988 \uc9c0\uc6d0 \ucd94\uac00\ud558\uae30<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc73c\ub85c <strong>\ud504\ub85c\uc81d\ud2b8<\/strong>\ub97c \ud074\ub9ad\ud558\uace0 \"\ucd94\uac00\"\ub97c \ud074\ub9ad\ud55c \ub2e4\uc74c \"\ucee8\ud14c\uc774\ub108 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\ud130 \uc9c0\uc6d0\"\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12603-add-container-orch.png\" alt=\"Add Container O\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ud504\ub85c\uc81d\ud2b8\uc758 \uc720\uc77c\ud55c \ubaa9\uc801\uc740 ASP.NET \ud575\uc2ec \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc758 \uac1c\ub150 \uc99d\uba85\uc744 \uc704\ud55c \uac1c\ubc1c\uc744 \uc2dc\uc791\ud558\ub294 \uac83\uc784\uc744 \uba85\uc2ec\ud558\uc138\uc694. \ub85c\uceec \uba38\uc2e0 \uac1c\ubc1c\uc5d0\ub294 Kubernetes\ubcf4\ub2e4 Docker-compose\uac00 \ub354 \ub2e4\ub8e8\uae30 \uc27d\uc2b5\ub2c8\ub2e4. \uadf8\ub807\uae30 \ub54c\ubb38\uc5d0 \uacb0\uad6d\uc5d0\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ud558\uace0 \uc2f6\uc744 \uc218\ub3c4 \uc788\uc9c0\ub9cc \"Docker Compose\" \uc635\uc158\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4. <strong>\ubc30\ud3ec<\/strong> \ub97c \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub85c \uc804\ud658\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12604-docker-compose.png\" alt=\"Docker Compose\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub610\ud55c \ub098\uc911\uc5d0 \ubc30\ud3ec\ud560 \uc608\uc815\uc774\uae30 \ub54c\ubb38\uc5d0 Linux\ub97c \uc120\ud0dd\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ub2e8\uacc4\ub97c \uc644\ub8cc\ud558\uba74 \uc194\ub8e8\uc158\uc5d0 \"docker-compose\" \ud56d\ubaa9\uc774 \ucd94\uac00\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12605-docker-compose-project.png\" alt=\"Docker Compose in Visual Studio\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>docker-compose.yml \ud30c\uc77c\uc744 \uc0b4\ud3b4\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ub0b4\uc6a9\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <strong>\ud558\ub098<\/strong> \uc11c\ube44\uc2a4\uc5d0 \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4: <code>\ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4<\/code>. \ub610\ud55c \uc774\uc81c Visual Studio \ub3c4\uad6c \ubaa8\uc74c\uc5d0 \"Docker \uc791\uc131\"\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12606-docker-compose-button.png\" alt=\"Docker Compose button\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uc2dc\uc810\uc5d0\uc11c CTRL+F5\ub97c \ub20c\ub7ec \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Visual Studio\ub294 Docker Compose\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud504\ub85c\uc81d\ud2b8\uc758 \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud558\uace0 Docker \ub0b4\uc5d0\uc11c \uc2e4\ud589\ud569\ub2c8\ub2e4. \ube0c\ub77c\uc6b0\uc800\uac00 \uc790\ub3d9\uc73c\ub85c \uc5f4\ub9ac\uace0 \ud45c\uc900 \"\uc2dc\uc791\" \ud654\uba74\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12607-asp-net-basic.png\" alt=\"ASP.NET Welcome\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc9c4\uc804\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc73c\ub85c \ud574\uc57c \ud560 \uc77c\uc740 docker-compose\ub85c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \uc2e4\ud589\ud558\uace0 ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud558\ub3c4\ub85d \ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \ub2e4\uc74c \ub2e8\uacc4\uac00 \uc644\ub8cc\ub418\uba74 ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc758 \uc544\uc8fc \uae30\ubcf8\uc801\uc778 \ucd5c\uc18c\ud55c\uc758 \uc178\uc744 \uac16\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_step_3_add_database_orchestration_to_docker_compose\">3\ub2e8\uacc4: \ub3c4\ucee4 \ucef4\ud3ec\uc988\uc5d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158 \ucd94\uac00\ud558\uae30<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub294 <a href=\"https:\/\/hub.docker.com\/_\/couchbase\">\ub3c4\ucee4 \ud5c8\ube0c\uc5d0\uc11c \uacf5\uc2dd \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0 \uc81c\uacf5<\/a>. \uc774 \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \uc544\ub798\uc5d0 \ub2e4\ub978 \uc11c\ube44\uc2a4\ub97c \ucd94\uac00\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <code>\uc11c\ube44\uc2a4:<\/code> \ub97c docker-compose.yml \ud30c\uc77c\uc5d0 \ucd94\uac00\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-Docker\" data-lang=\"Docker\">services:\r\n  couchbase:\r\n    image: couchbase:enterprise-6.0.3\r\n    volumes:\r\n    - \".\/couchbase:\/opt\/couchbase\/var\" # local folder where couchbase data stored\r\n    ports:\r\n    - \"8091:8091\" # Allows local access to mgmt UI<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud544\uc694\ud55c \uae30\ubcf8 \uc0ac\ud56d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4:<\/code> \uc774\ub807\uac8c \ud558\uba74 \"couchbase\"\ub77c\ub294 \uc11c\ube44\uc2a4 \uc815\uc758\uac00 \uc2dc\uc791\ub429\ub2c8\ub2e4(\uc6d0\ud558\ub294 \uacbd\uc6b0 \ub2e4\ub978 \uc774\ub984\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc74c).<\/li>\n<li><code>\uc774\ubbf8\uc9c0: \uce74\uc6b0\uce58\ubca0\uc774\uc2a4:\uc5d4\ud130\ud504\ub77c\uc774\uc988-6.0.3<\/code> \uc774 \uc11c\ube44\uc2a4\uc5d0 \uc0ac\uc6a9\ud560 \uc774\ubbf8\uc9c0\uc785\ub2c8\ub2e4. \uc774\uc640 \uac19\uc740 \ud0dc\uadf8\ub97c \uba85\uc2dc\uc801\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\uc73c\uba70, \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \uc6d0\ud558\ub294 \uc774\ubbf8\uc9c0\uac00 \uc544\ub2cc '\ucd5c\uc2e0' \uc774\ubbf8\uc9c0\uac00 \uae30\ubcf8\uac12\uc73c\ub85c \uc124\uc815\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><code>\ud3ec\ud2b8:<\/code> \ub178\ucd9c\ud560 \ud3ec\ud2b8 \ubc88\ud638\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. <em>\uc678\ubd80<\/em> \ub85c \uc124\uc815\ud569\ub2c8\ub2e4. 8091\ub9cc \ub178\ucd9c\ud558\uace0 \uc788\ub294\ub370, \uc774\ub294 Couchbase UI \ud3ec\ud2b8 \ubc88\ud638\uc774\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4(\ucc38\uc870: <a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/install-ports.html\">\ub124\ud2b8\uc6cc\ud06c \ubc0f \ubc29\ud654\ubcbd \uc694\uad6c \uc0ac\ud56d<\/a>)<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub9ac\uace0 <code>\ubcfc\ub968:<\/code> \uac00 \ubc18\ub4dc\uc2dc \ud544\uc694\ud55c \uac83\uc740 \uc544\ub2d9\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ubcfc\ub968\uc744 \uc0ac\uc6a9\ud558\uba74 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc774\ubbf8\uc9c0 \uc2e4\ud589\uc774 \uc911\uc9c0\ub418\ub354\ub77c\ub3c4 \ub370\uc774\ud130 \ud30c\uc77c\uc5d0 \uc788\ub294 <code>\/opt\/couchbase\/var<\/code> \ub294 \ud638\uc2a4\ud2b8 \ucef4\ud4e8\ud130(\ub0b4 \ucef4\ud4e8\ud130\uc758 \ud30c\uc77c \uc2dc\uc2a4\ud15c)\uc5d0 \uc800\uc7a5\ub418\uba70 \ub2e4\uc74c\uc5d0 \uc774\ubbf8\uc9c0\ub97c \uc2e4\ud589\ud560 \ub54c \ub2e4\uc2dc \ub9c8\uc6b4\ud2b8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc989, \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \ub123\uc740 \ubaa8\ub4e0 \ub370\uc774\ud130\ub294 \ub2e4\uc74c\uc5d0 \uc774\ubbf8\uc9c0\ub97c \uc2e4\ud589\ud560 \ub54c\uc5d0\ub3c4 \uadf8\ub300\ub85c \uc720\uc9c0\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>CTRL+F5\ub97c \ub20c\ub7ec \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\uba74 Docker Compose\uac00 \ub2e4\uc74c\uc744 \ud3ec\ud568\ud55c \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4. <em>\ub458 \ub2e4<\/em> \ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 <em>\uadf8\ub9ac\uace0<\/em> \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc774\ubbf8\uc9c0. \uc774 \ub450 \uc774\ubbf8\uc9c0\ub294 Docker \ub0b4\ubd80\uc5d0\uc11c \ub098\ub780\ud788 \uc2e4\ud589\ub41c\ub2e4\ub294 \uc810 \uc678\uc5d0\ub294 \uc11c\ub85c \uad00\ub828\uc774 \uc5c6\uc2b5\ub2c8\ub2e4(\uc544\uc9c1). \uba85\ub839\uc904\uc744 \uc5f4\uace0 \ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uba74 <code>\ub3c4\ucee4 PS<\/code>\ub97c \uc785\ub825\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ub0b4\uc6a9\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\" data-lang=\"PowerShell\">PS C:\\WINDOWS\\system32&gt; docker ps\r\nIMAGE                        COMMAND      CREATED   STATUS  PORTS          NAMES\r\nhellomicroservice:dev        \"tail -f\u00e2\u20ac\u00a6\"   8 min\u00e2\u20ac\u00a6    Up 8\u00e2\u20ac\u00a6   0.0.0.0...     dockercompose1524\u00e2\u20ac\u00a656534_hellomicroservice_1\r\ncouchbase:enterprise-6.0.3   \"\/entryp\u00e2\u20ac\u00a6\"   8 min\u00e2\u20ac\u00a6    Up 8\u00e2\u20ac\u00a6   8092-8096...   dockercompose1524\u00e2\u20ac\u00a656534_couchbase_1\r\nPS C:\\WINDOWS\\system32&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>(\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc758 \ub108\ube44\uc5d0 \uad00\ub828 \uc815\ubcf4\ub97c \ub9de\ucd94\uae30 \uc704\ud574 \uc704\uc758 \ud14d\uc2a4\ud2b8\ub97c \ub9ce\uc774 \uc798\ub77c\ub0c8\uc2b5\ub2c8\ub2e4).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_step_4_configuration_changes\">4\ub2e8\uacc4: \uad6c\uc131 \ubcc0\uacbd<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc8fc\uc2dd\uc744 \uc0ac\uc6a9\ud588\uae30 \ub54c\ubb38\uc5d0 <code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4:\uc5d4\ud130\ud504\ub77c\uc774\uc988-6.0.3<\/code> Docker \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud558\ub354\ub77c\ub3c4 \uc5ec\uc804\ud788 Couchbase UI(https:\/\/localhost:8091)\ub97c \uc5f4\uace0 \ud074\ub7ec\uc2a4\ud130\ub97c \uc218\ub3d9\uc73c\ub85c \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4. \uc790\ub3d9\ud654\ub97c \uc704\ud55c \uba87 \uac00\uc9c0 \uc635\uc158\uc740 \ub9c8\uc9c0\ub9c9\uc5d0 \ub098\uc624\ub294 '\ub2e4\uc74c \ub2e8\uacc4'\ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12608-cluster-setup.png\" alt=\"Set up Couchbase Cluster\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub9ce\uc740 <a href=\"https:\/\/docs.couchbase.com\/server\/current\/getting-started\/start-here.html\">\uc774 \uacfc\uc815\uc744 \uc548\ub0b4\ud558\ub294 \ubb38\uc11c<\/a>\uc5d0 \ub300\ud55c \uc124\uba85\uc774 \uc788\uc73c\ubbc0\ub85c \uc5ec\uae30\uc11c\ub294 \ubc18\ubcf5\ud558\uc9c0 \uc54a\uaca0\uc2b5\ub2c8\ub2e4. \uc800\ub294 '\uad00\ub9ac\uc790' \ubc0f '\ube44\ubc00\ubc88\ud638' \uc790\uaca9 \uc99d\uba85\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c <a href=\"https:\/\/docs.couchbase.com\/server\/current\/manage\/manage-buckets\/create-bucket.html\">\ubc84\ud0b7 \uc0dd\uc131<\/a> \ud638\ucd9c <strong>\ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4<\/strong>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ubc84\ud0b7\uc744 \uc0dd\uc131\ud55c \ud6c4 \ub2e4\uc74c \ub2e8\uacc4\ub294 ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud558\ub3c4\ub85d \ud558\ub294 \uac83\uc785\ub2c8\ub2e4. docker-compose.yml\uc744 \uc5f4\uace0, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 <code>\ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4:<\/code> \ub85c \uc815\uc758\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-Docker\" data-lang=\"Docker\">hellomicroservice:\r\n  image: ${DOCKER_REGISTRY-}hellomicroservice\r\n  build:\r\n    context: .\r\n    dockerfile: HelloMicroservice\/Dockerfile\r\n  environment:\r\n    Couchbase__Servers__0: https:\/\/couchbase:8091\/ # Reference to the \"couchbase\" service name on line 4\r\n  depends_on:\r\n  - couchbase # Reference to the \"couchbase\" service name on line 4\r\n  command: [\".\/wait-for-it.sh\", \"https:\/\/couchbase:8091\"]<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uac01 \ubd80\ubd84\uc744 \uc138\ubd84\ud654\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>\ud658\uacbd\uc73c\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4:<\/code> \uc774\ub807\uac8c \ud558\uba74 docker-compose\uac00 \ud658\uacbd \ubcc0\uc218\ub97c \uc0dd\uc131\ud558\ub3c4\ub85d \uc9c0\uc2dc\ud569\ub2c8\ub2e4.<\/li>\n<li><code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4__\uc11c\ubc84__0<\/code> \ud658\uacbd \ubcc0\uc218\uc758 \uc774\ub984\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc11c \uc774\ub984 \uc9c0\uc815\uc774 \uc911\uc694\ud569\ub2c8\ub2e4. \uc774 \uc774\ub984\uc740 \ub098\uc911\uc5d0 \uc571\uc124\uc815.json\uacfc \uc77c\uce58\ud569\ub2c8\ub2e4.<\/li>\n<li><code>https:\/\/couchbase:8091\/<\/code> ASP.NET Core\uac00 couchbase \uc11c\ube44\uc2a4\uc5d0 \uc5f0\uacb0\ud558\ub294 \ub370 \ud544\uc694\ud55c URL\uc785\ub2c8\ub2e4. \uc11c\ube44\uc2a4 \uc774\ub984\uc744 \"couchbase\"\uac00 \uc544\ub2cc \ub2e4\ub978 \uc774\ub984\uc73c\ub85c \uc9c0\uc815\ud55c \uacbd\uc6b0 \uc5ec\uae30\uc5d0\ub3c4 \ud574\ub2f9 \uc774\ub984\uc744 \uc0ac\uc6a9\ud558\uc138\uc694.<\/li>\n<li><code>depends_on<\/code> \uc774\uac83\uc774 \ub3c4\ucee4 \ucef4\ud3ec\uc988\uac00 \uc11c\ube44\uc2a4\ub97c \uc2dc\uc791\ud560 \uc21c\uc11c\ub97c \ud30c\uc545\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.<\/li>\n<li><code>\uba85\ub839<\/code> \uc11c\ube44\uc2a4\uac00 \uc2dc\uc791\ub418\uba74 \uc2e4\ud589\ud560 \uba85\ub839\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uc608\uc81c\uc5d0\uc11c\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/vishnubob\/wait-for-it\"><code>wait-for-it.sh<\/code><\/a>\ub294 \uc9c0\uc815\ub41c \ud638\uc2a4\ud2b8\/\ud3ec\ud2b8\uac00 \uc0ac\uc6a9 \uac00\ub2a5\ud574\uc9c8 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9ac\ub294 \uc2a4\ud06c\ub9bd\ud2b8\uc785\ub2c8\ub2e4. \uc2a4\ud1a1 CouchBase Server Docker \uc774\ubbf8\uc9c0\uc5d0\uc11c\ub294 CouchBase Server\uac00 \uc2e4\uc81c\ub85c \uc2dc\uc791\ub418\ub294 \ub370 \uba87 \ucd08\uac00 \uac78\ub9ac\ubbc0\ub85c \uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub294 \uadf8 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub838\ub2e4\uac00 \uc9c4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sidebarblock\">\n<div class=\"content\">\n<div class=\"paragraph\">\n<p>\ub300\uae30 \uc911 \uc0ac\uc6a9 <strong>\ub294 \uc120\ud0dd \uc0ac\ud56d\uc785\ub2c8\ub2e4.<\/strong>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc9c0\ub9cc, \uac1c\ubc1c\uc774 \ud55c\ucc3d \uc9c4\ud589 \uc911\uc774\ub77c\uba74 \uc774 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud558\uba74 \uace8\uce6b\uac70\ub9ac\ub97c \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. (\ucc38\uace0\ub85c \uc800\ub294 wait-for-it.sh\ub97c <a href=\"https:\/\/github.com\/couchbaselabs\/blog-source-code\/tree\/master\/Groves\/126MicroserviceDocker\/src\/HelloMicroservice\">\uc0d8\ud50c GitHub \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac<\/a>).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c, ASP.NET Core \ud504\ub85c\uc81d\ud2b8\uac00 Couchbase\uc640 \ub300\ud654\ud558\ub3c4\ub85d \ud558\uae30 \uc704\ud574 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/dependency-injection-aspnet-couchbase\/\">\uc885\uc18d\uc131 \uc8fc\uc785 \ud655\uc7a5<\/a> \uc5d0\uc11c<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\" data-lang=\"C#\">services.AddCouchbase(Configuration.GetSection(\"Couchbase\"));<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uad6c\uc131\uc740 \uae30\ubcf8\uc801\uc73c\ub85c appsettings.json\uc5d0\uc11c \uac00\uc838\uc635\ub2c8\ub2e4. <strong>\uadf8\ub7ec\ub098<\/strong>\uc758 \ud658\uacbd \ubcc0\uc218\uac00 <code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4__\uc11c\ubc84__0<\/code> \ub294 docker-compose.yml\uc5d0 \uc815\uc758\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. ASP.NET Core\ub294 \ud658\uacbd \ubcc0\uc218\ub97c \uac80\uc0ac\ud558\uace0 \ud574\ub2f9 \uac12\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc571 \uc124\uc815\uc744 \uc7ac\uc815\uc758\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c <em>\uac12<\/em> \uc740 \"\uc11c\ubc84\"\uc758 \uacbd\uc6b0 appsettings.json(\ub610\ub294 appsettings.Development.json)\uc5d0 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\" data-lang=\"JavaScript\">{\r\n  \"Logging\": {\r\n    \"LogLevel\": {\r\n      \"Default\": \"Debug\",\r\n      \"System\": \"Information\",\r\n      \"Microsoft\": \"Information\"\r\n    }\r\n  },\r\n  \"Couchbase\" : {\r\n    \"Username\": \"Administrator\",\r\n    \"Password\": \"password\",\r\n    \"Servers\" : [\"https:\/\/thiswillbeoverwritten\"]\r\n  }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7ec\ub098 \uc0ac\uc6a9\uc790 \uc774\ub984\/\ube44\ubc00\ubc88\ud638\ub294 \uc5ec\uc804\ud788 \uc571 \uc124\uc815\uc5d0\uc11c \uc77d\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_step_5_using_the_database\">5\ub2e8\uacc4: \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc0ac\uc6a9<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud560 \uc218 \uc788\ub294\uc9c0 \ud655\uc778\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ub9e4\uc6b0 \uac04\ub2e8\ud55c <code>\uc0bd\uc785<\/code> \uadf8\ub9ac\uace0 <code>Get<\/code> \ub97c <code>\ud648\ucee8\ud2b8\ub864\ub7ec<\/code> <code>\uc0c9\uc778<\/code> \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\" data-lang=\"C#\">public IActionResult Index()\r\n{\r\n    var id = Guid.NewGuid().ToString();\r\n\r\n    _bucket.Insert(new Document&lt;dynamic&gt;\r\n    {\r\n        Id = id,\r\n        Content = new\r\n        {\r\n            hello = \"microservice\",\r\n            foo = Path.GetRandomFileName()\r\n        }\r\n    });\r\n\r\n    var doc = _bucket.Get&lt;dynamic&gt;(id);\r\n\r\n    return View(doc);\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ubdf0\uc5d0 \ud574\ub2f9\ud558\ub294 \uba87 \uac00\uc9c0 \ubcc0\uacbd \uc0ac\ud56d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <code>Index.cshtml<\/code>:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\" data-lang=\"C#\">@model Couchbase.IOperationResult&lt;dynamic&gt;\r\n@{\r\n    ViewData[&quot;Title&quot;] = &quot;Home Page&quot;;\r\n}\r\n\r\n&lt;div class=&quot;text-center&quot;&gt;\r\n    &lt;h1 class=&quot;display-4&quot;&gt;\ud658\uc601&lt;\/h1&gt;\r\n    &lt;p&gt;\uc790\uc138\ud788 \uc54c\uc544\ubcf4\uae30 &lt;a href=&quot;https:\/\/docs.microsoft.com\/aspnet\/core&quot;&gt;building Web apps with ASP.NET Core&lt;\/a&gt;.&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;p&gt;Created a new document:&lt;\/p&gt;\r\n&lt;ul&gt;\r\n    &lt;li&gt;ID: @Model.Id&lt;\/li&gt;\r\n    &lt;li&gt;Document: @Model.Value&lt;\/li&gt;\r\n&lt;\/ul&gt;<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c ASP.NET \ucf54\uc5b4 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc758 \uae30\ubcf8 \uc0ac\ud56d\uc774 \uc900\ube44\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc11c\ube44\uc2a4\ub97c \uc2e4\ud589\ud558\ub824\uba74 Ctrl+F5\ub97c \ub204\ub974\uc138\uc694. \ube0c\ub77c\uc6b0\uc800\uac00 \uc5f4\ub9ac\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \ud654\uba74\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12609-asp-net-core-microservice.png\" alt=\"ASP.NET Core Microservices in action\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub300\uc2e0 \uc624\ub958 \uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub418\ub294 \uacbd\uc6b0 Couchbase Server\ub97c \uc62c\ubc14\ub974\uac8c \uc124\uc815\ud588\ub294\uc9c0, \uc62c\ubc14\ub978 \uc774\ub984\uc758 \ubc84\ud0b7\uc744 \uc0dd\uc131\ud588\ub294\uc9c0, appsettings.json\uc5d0\uc11c \uc62c\ubc14\ub978 \ub85c\uadf8\uc778 \uc790\uaca9 \uc99d\uba85\uc744 \uc0ac\uc6a9\ud588\ub294\uc9c0, docker-compose.yml\uc774 \uc704\uc758 \uc608\uc81c\uc640 \uc77c\uce58\ud558\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_next_steps\">\ub2e4\uc74c \ub2e8\uacc4<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774\uc81c ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \uac1c\ubc1c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub294 ASP.NET Core \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 Docker \uc774\ubbf8\uc9c0\uac00 \uacb0\uacfc\ubb3c\uc774 \ub429\ub2c8\ub2e4. \uc870\uc9c1\uc5d0\uc11c \ubc30\ud3ec\ud560 \uc704\uce58\/\ubc29\ubc95\uc5d0 \ub530\ub77c \ub2e4\uc74c \ub2e8\uacc4\ub294 \ud06c\uac8c \ub2ec\ub77c\uc9d1\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uac83\uc740 \uc2dc\uc791\uc5d0 \ubd88\uacfc\ud558\uba70, \ub354 \uc0b4\ud3b4\ubd10\uc57c \ud560 \uba87 \uac00\uc9c0 \uc0ac\ud56d\uc774 \ub354 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>\ubcfc\ub968<\/strong>. Visual Studio\ub97c \uc644\uc804\ud788 \ub2eb\uc2b5\ub2c8\ub2e4. \uba87 \ucd08 \ud6c4 Docker \uc774\ubbf8\uc9c0\uac00 \uc0ac\ub77c\uc9d1\ub2c8\ub2e4( <code>\ub3c4\ucee4 PS<\/code> \ub97c \ub2e4\uc2dc \uc785\ub825\ud558\uc5ec \ud655\uc778\ud569\ub2c8\ub2e4.) \uc774\uc81c Visual Studio\ub97c \uc5f4\uace0 CTRL+F5\ub97c \ub2e4\uc2dc \ub204\ub985\ub2c8\ub2e4. \ubcfc\ub968\uc744 \uc0ac\uc6a9\ud588\uc73c\ubbc0\ub85c Couchbase\uc5d0 \uc800\uc7a5\ud55c \ub370\uc774\ud130\uac00 \uc5ec\uc804\ud788 \ub0a8\uc544 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4. \uc774\uac83\uc774 \uac1c\ubc1c\uc744 \uc704\ud574 \uc6d0\ud558\ub294 \uac83\uc774\ub77c\uba74 \uc88b\uc740 \uc0c1\ud0dc\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>\uc790\ub3d9\ud654<\/strong>. \ub370\uc774\ud130\ub97c \ub9e4\ubc88 \uc9c0\uc6b0\uace0 \ub2e4\uc2dc \uc0dd\uc131\ud558\ub294 \uac83\uc744 \uc6d0\ud55c\ub2e4\uba74 \uc0ac\uc6a9\uc790 \uc9c0\uc815 Docker \uc774\ubbf8\uc9c0\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubd10\uc57c \ud569\ub2c8\ub2e4. \ub610\ud55c \ud6cc\ub96d\ud55c <a href=\"https:\/\/github.com\/brantburnett\/couchbasefakeit\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ud398\uc774\ud06c\uc787 \ud504\ub85c\uc81d\ud2b8<\/a>\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc5ec\ub7ec \ub3c4\uad6c, \ubcc0\uc218, \uc2a4\ud06c\ub9bd\ud2b8 \ub4f1\uc774 \ud3ec\ud568\ub41c Couchbase Server\ub97c \ucd08\uae30\ud654\ud558\uace0 \uc778\ub371\uc2a4\uc640 \uac00\uc9dc \ub370\uc774\ud130\ub85c \ucc44\uc6b8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud55c \uc608\ub294 <a href=\"https:\/\/gist.github.com\/brantburnett\/2330ebfb3b75a0ceb86be456e0a50f39\">\ube0c\ub780\ud2b8 \ubc84\ub137\uc774 \uc800\uc640 \uacf5\uc720\ud55c \uc694\uc810<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><strong>Kubernetes<\/strong>. \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84(\ub610\ub294 \uc2e4\uc81c\ub85c \ubaa8\ub4e0 \ub370\uc774\ud130\ubca0\uc774\uc2a4)\ub97c \ucee8\ud14c\uc774\ub108\uc5d0 \ubc30\ud3ec\ud560 \uacc4\ud68d\uc774\ub77c\uba74, Kubernetes\uc640 <a href=\"https:\/\/operatorhub.io\/\">\ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc624\ud37c\ub808\uc774\ud130<\/a>\ub97c \uc0ac\uc6a9\ud558\uba74 Kubernetes \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc5d0\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ud6e8\uc52c \uc27d\uac8c \uad00\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9ce\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubca4\ub354\uac00 Kubernetes Operators\ub97c \ub9cc\ub4e4\uc5c8\uc73c\uba70, Couchbase\ub294 NoSQL \ubca4\ub354 \uc911 \ucd5c\ucd08\ub85c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/cloud\/kubernetes\/\">\ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc790\uc728 \uc6b4\uc601\uc790<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_special_thanks\">\ud2b9\ubcc4 \uac10\uc0ac<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc740 Couchbase \ucee4\ubba4\ub2c8\ud2f0\uc758 \uc5c4\uccad\ub09c \ub3c4\uc6c0\uc774 \uc5c6\uc5c8\ub2e4\uba74 \ubd88\uac00\ub2a5\ud588\uc744 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub355\ubd84\uc5d0 <a href=\"https:\/\/twitter.com\/btburnett3\">\ube0c\ub79c\ud2b8 \ubc84\ub137<\/a> \ud68c\uc0ac\uc758 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uac1c\ubc1c \ud504\ub85c\uc138\uc2a4\ub97c \uc800\uc640 \uacf5\uc720\ud574 \uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \uacfc\uc815\uc744 \ud568\uaed8 \uc9c4\ud589\ud55c \uce98\ube48 \uc568\ub7f0\uc5d0\uac8c \uac10\uc0ac\ub4dc\ub9bd\ub2c8\ub2e4. <a href=\"https:\/\/www.twitch.tv\/matthewdgroves\">Twitch \ub77c\uc774\ube0c \ucf54\ub529 \uc2a4\ud2b8\ub9bc<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/github.com\/CalvinAllen\/docker-playground\">\uae30\ub2e4\ub9bc\uc744 \uc18c\uac1c\ud569\ub2c8\ub2e4.<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>ASP.NET Core Microservices: applications that will be responsible for a single &#8220;vertical&#8221; slice of an overall application\/service architecture. Why ASP.NET Core microservices? There are a lot of opinions and recommendations about what microservices are, when to use microservices vs a [&hellip;]<\/p>","protected":false},"author":71,"featured_media":7804,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,10126,1816,2322],"tags":[1519,1896,2103],"ppma_author":[8937],"class_list":["post-7785","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-asp-dotnet","category-couchbase-server","category-kubernetes","tag-docker","tag-docker-compose","tag-microservices"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ASP.NET Core Microservices: Getting Started - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"ASP.NET Core Microservices will be responsible for a single &quot;vertical&quot; slice of an overall application\/service architecture.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-microservices-getting-started\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ASP.NET Core Microservices: Getting Started\" \/>\n<meta property=\"og:description\" content=\"ASP.NET Core Microservices will be responsible for a single &quot;vertical&quot; slice of an overall application\/service architecture.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-microservices-getting-started\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-07T14:13:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:40:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"410\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"ASP.NET Core Microservices: Getting Started\",\"datePublished\":\"2019-11-07T14:13:23+00:00\",\"dateModified\":\"2025-06-14T02:40:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/\"},\"wordCount\":1621,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png\",\"keywords\":[\"docker\",\"docker-compose\",\"microservices\"],\"articleSection\":[\".NET\",\"ASP.NET\",\"Couchbase Server\",\"Kubernetes\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/\",\"name\":\"ASP.NET Core Microservices: Getting Started - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png\",\"datePublished\":\"2019-11-07T14:13:23+00:00\",\"dateModified\":\"2025-06-14T02:40:23+00:00\",\"description\":\"ASP.NET Core Microservices will be responsible for a single \\\"vertical\\\" slice of an overall application\/service architecture.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png\",\"width\":1024,\"height\":410,\"caption\":\"Tiltshift, outside Waterloo station https:\/\/www.flickr.com\/photos\/cloudsoup\/2148928955\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ASP.NET Core Microservices: Getting Started\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ASP.NET Core Microservices: Getting Started - The Couchbase Blog","description":"ASP.NET Core Microservices will be responsible for a single \"vertical\" slice of an overall application\/service architecture.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-microservices-getting-started\/","og_locale":"ko_KR","og_type":"article","og_title":"ASP.NET Core Microservices: Getting Started","og_description":"ASP.NET Core Microservices will be responsible for a single \"vertical\" slice of an overall application\/service architecture.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-microservices-getting-started\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-11-07T14:13:23+00:00","article_modified_time":"2025-06-14T02:40:23+00:00","og_image":[{"width":1024,"height":410,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png","type":"image\/png"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"9\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"ASP.NET Core Microservices: Getting Started","datePublished":"2019-11-07T14:13:23+00:00","dateModified":"2025-06-14T02:40:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/"},"wordCount":1621,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png","keywords":["docker","docker-compose","microservices"],"articleSection":[".NET","ASP.NET","Couchbase Server","Kubernetes"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/","url":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/","name":"ASP.NET Core Microservices: Getting Started - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png","datePublished":"2019-11-07T14:13:23+00:00","dateModified":"2025-06-14T02:40:23+00:00","description":"ASP.NET Core Microservices will be responsible for a single \"vertical\" slice of an overall application\/service architecture.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/126-hero-microservices-tilt-shift.png","width":1024,"height":410,"caption":"Tiltshift, outside Waterloo station https:\/\/www.flickr.com\/photos\/cloudsoup\/2148928955"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ASP.NET Core Microservices: Getting Started"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"\ub9e4\ud29c \uadf8\ub85c\ube0c\uc2a4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves\ub294 \ucf54\ub529\uc744 \uc88b\uc544\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. C#, jQuery, PHP \ub4f1 \ubb34\uc5c7\uc774\ub4e0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \uc81c\ucd9c\ud560 \uc815\ub3c4\ub85c \ucf54\ub529\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4. 90\ub144\ub300\uc5d0 \ubd80\ubaa8\ub2d8\uc758 \ud53c\uc790 \uac00\uac8c\ub97c \uc704\ud574 QuickBASIC POS \uc571\uc744 \ub9cc\ub4e0 \uc774\ud6c4\ub85c \uc804\ubb38\uc801\uc73c\ub85c \ucf54\ub529\uc744 \ud574\uc654\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc758 \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \uad00\ub9ac\uc790\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uac00\uc871\uacfc \ud568\uaed8 \ucd95\uad6c \uacbd\uae30\ub97c \uad00\ub78c\ud558\uace0 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c5\ub2c8\ub2e4. \uadf8\ub294 .NET\uc758 AOP, .NET\uc758 \ud504\ub85c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, Pluralsight \uc800\uc790, Microsoft MVP\uc758 \uc800\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","first_name":"Matthew","last_name":"Groves","user_url":"https:\/\/crosscuttingconcerns.com","author_category":"","description":"Matthew D. Groves\ub294 \ucf54\ub529\uc744 \uc88b\uc544\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4.  C#, jQuery, PHP \ub4f1 \ubb34\uc5c7\uc774\ub4e0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \uc81c\ucd9c\ud560 \uc815\ub3c4\ub85c \ucf54\ub529\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4.  90\ub144\ub300\uc5d0 \ubd80\ubaa8\ub2d8\uc758 \ud53c\uc790 \uac00\uac8c\ub97c \uc704\ud574 QuickBASIC POS \uc571\uc744 \ub9cc\ub4e0 \uc774\ud6c4\ub85c \uc804\ubb38\uc801\uc73c\ub85c \ucf54\ub529\uc744 \ud574\uc654\uc2b5\ub2c8\ub2e4.  \ud604\uc7ac Couchbase\uc758 \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \uad00\ub9ac\uc790\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uac00\uc871\uacfc \ud568\uaed8 \ucd95\uad6c \uacbd\uae30\ub97c \uad00\ub78c\ud558\uace0 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c5\ub2c8\ub2e4.  \uadf8\ub294 .NET\uc758 AOP, .NET\uc758 \ud504\ub85c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, Pluralsight \uc800\uc790, Microsoft MVP\uc758 \uc800\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/7785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=7785"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/7785\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/7804"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=7785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=7785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=7785"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=7785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}