{"id":8945,"date":"2020-07-26T14:35:38","date_gmt":"2020-07-26T21:35:38","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8945"},"modified":"2025-06-13T22:44:56","modified_gmt":"2025-06-14T05:44:56","slug":"refactoring-spring-microservices-application-to-work-with-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/refactoring-spring-microservices-application-to-work-with-couchbase\/","title":{"rendered":"\uc2a4\ud504\ub9c1 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc571\uc774 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc640 \ud568\uaed8 \uc791\ub3d9\ud558\ub3c4\ub85d \ub9ac\ud329\ud130\ub9c1\ud558\uae30"},"content":{"rendered":"<p>\uc800\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uc628\ub77c\uc778 \ud559\uc2b5 \ud50c\ub7ab\ud3fc\uc758 \uc5f4\ub82c\ud55c \ud32c\uc785\ub2c8\ub2e4. <a href=\"https:\/\/udemy.com\/\">Udemy<\/a>. \uc640\uc778 \ud55c \ubcd1 \uac00\uaca9\uc73c\ub85c \uc2ec\ub9ac\ud559, \ud0dc\uad6d \uc694\ub9ac\ubd80\ud130 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4, \uc6b4\uc601 \uccb4\uc81c, IT \uc790\uaca9\uc99d\uc5d0 \uc774\ub974\uae30\uae4c\uc9c0 \uac70\uc758 \ubaa8\ub4e0 \uac83\uc744 \ubc30\uc6b8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \ucd5c\uadfc\uc5d0 \uc800\ub294 \uc81c\ubaa9\uc774 \uae34 \uc218\uc5c5\uc744 \ub4e3\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4: <strong><a href=\"https:\/\/www.udemy.com\/course\/kubernetes-microservices\/\">\"\ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc2e4\uc2b5 - AWS \ud074\ub77c\uc6b0\ub4dc\uc5d0 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \ubc30\ud3ec\"<\/a><\/strong>. \ud6cc\ub96d\ud55c \uacfc\uc815\uc774\uba70 Kubernetes, \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, \ud074\ub77c\uc6b0\ub4dc \ubc30\ud3ec \ub4f1\uc758 \ud575\uc2ec\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uace0 \uc2f6\ub2e4\uba74 \uc801\uadf9 \ucd94\ucc9c\ud569\ub2c8\ub2e4.<\/p>\n<p>\uac15\uc758 \uc800\uc790\ub294 Kubernetes\uc5d0 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ubc30\ud3ec\ud558\uae30 \uc704\ud55c \uc218\uc5c5 \uc2e4\uc2b5 \ud504\ub85c\uc81d\ud2b8\ub85c Fleetman\uc774\ub77c\ub294 \uc791\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc81c\uacf5\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uc571\uc744 \uc0ac\uc6a9\ud558\uba74 \uc601\uad6d \uc170\ud544\ub4dc\ub77c\ub294 \ub300\ub3c4\uc2dc\ub97c \ub3cc\uc544\ub2e4\ub2c8\ub294 \ud2b8\ub7ed(\uc601\uad6d\uc2dd \ud45c\ud604\uc73c\ub85c\ub294 \ud654\ubb3c\ucc28)\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4(\ud55c \ub300\uc758 \ud2b8\ub7ed\uc740 \ub7f0\ub358\uc758 \uc911\uc2ec\ubd80\ub97c \ub2ec\ub9ac\uace0 \uc788\uc9c0\ub9cc). \uc774 \uc571\uc740 \uac01 \ud2b8\ub7ed\uc5d0 \ub300\ud55c \uc9c0\ub9ac\uc801 \uc704\uce58 \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud558\uc5ec \uba54\ubaa8\ub9ac \ub610\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ud558\uace0 \uc704\uce58 \ub370\uc774\ud130\ub97c \ud3b8\ub9ac\ud55c \uc9c0\ub3c4 \uae30\ubc18 \uc6f9 UI\uc5d0 \uc81c\uacf5\ud569\ub2c8\ub2e4. UI\uc5d0\uc11c \uac01 \ud2b8\ub7ed\uc758 \ucd5c\uc2e0 \uc704\uce58, \uc18d\ub3c4, \ud604\uc7ac \uc774\ub3d9 \uacbd\ub85c\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.  \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc6f9 \ud504\ub7f0\ud2b8\uc5d4\ub4dc \uc2a4\ud06c\ub9b0\uc0f7\uc740 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<div id=\"attachment_8946\" style=\"width: 946px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8946\" class=\"wp-image-8946 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/07\/Map1.png\" alt=\"\" width=\"936\" height=\"560\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map1.png 936w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map1-300x179.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map1-768x459.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map1-20x12.png 20w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><p id=\"caption-attachment-8946\" class=\"wp-caption-text\">\uc5ec\ub7ec \ub300\uc758 \ud2b8\ub7ed \uc704\uce58 \ubcf4\uace0\uc11c<\/p><\/div>\n<p>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucf54\ub4dc\uc758 \ub0b4\ubd80\uac00 Udemy \uac15\uc88c\uc758 \uc8fc\ub41c \ucd08\uc810\uc740 \uc544\ub2c8\uc5c8\uc9c0\ub9cc(\uc5b4\ucc28\ud53c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c \uc218\uc5c5\uc774 \uc544\ub2cc Kubernetes \uc218\uc5c5\uc774\uc5c8\uae30 \ub54c\ubb38\uc5d0), \uc800\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc544\ud0a4\ud14d\ucc98\uac00 \uc0c1\ub2f9\ud788 \ub9e4\ub825\uc801\uc774\ub77c\ub294 \uc0ac\uc2e4\uc744 \uc54c\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/DickChesterwood\/k8s-fleetman\">\uc18c\uc2a4 \ucf54\ub4dc<\/a> \uac00 \uc77c\ubc18 \ub300\uc911\uc5d0\uac8c \uacf5\uac1c\ub418\uc5c8\uc2b5\ub2c8\ub2e4.  \uc9c0\uc18d\uc131 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uacc4\uce35\uc73c\ub85c, \uc6d0\ub798 Fleetman \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ud2b8\ub7ed\uc5d0\uc11c \uc624\ub294 \uac04\ub2e8\ud55c \uc6d0\uaca9 \uce21\uc815 \ub370\uc774\ud130\ub97c JSON \ud615\uc2dd\uc73c\ub85c \uc800\uc7a5\ud558\uace0 \ucffc\ub9ac\ud558\ub294 \ub370 \ub110\ub9ac \uc0ac\uc6a9\ub418\ub294 MongoDB\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub807\ub2e4\uba74 Couchbase\ub294 \uc5b4\ub5a8\uae4c\uc694? Couchbase \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud50c\ub7ab\ud3fc\uc740 N1QL \uc5b8\uc5b4, \ubd84\uc11d, \uc774\ubca4\ud2b8 \ubc0f \uc804\uccb4 \ud14d\uc2a4\ud2b8 \uac80\uc0c9\uacfc \uac19\uc740 \ub2e4\uc591\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uae30\ub2a5\uc744 \ud1b5\ud574 \uac04\ub2e8\ud55c \uc6d0\uaca9 \ubd84\uc11d \uc218\uc9d1 \uc571\uc744 \ub354\uc6b1 \uac15\ub825\ud558\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc560\ucd08\uc5d0 Fleetman \uc571\uc774 Mongo \ub300\uc2e0 Couchbase\ub97c \uc0ac\uc6a9\ud558\ub3c4\ub85d \ub2e4\uc2dc \ubc30\uc120\ud558\ub294 \uac83\uc774 \uc5bc\ub9c8\ub098 \uc5b4\ub824\uc6b8\uae4c\uc694?  \uadf8\ub798\uc11c \uc800\ub294 \uaf64 \uc624\ub79c \uc2dc\uac04\uc744 \ub4e4\uc5ec \uc18c\uc2a4 \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\uace0 Java \ud504\ub85c\uadf8\ub798\ubc0d \uae30\uc220\uc744 \ub2e4\uc2dc \uc775\ud614\uc2b5\ub2c8\ub2e4. Fleetman\uc758 \uc544\ud0a4\ud14d\ucc98\ub97c \uc880 \ub354 \uc790\uc138\ud788 \uc0b4\ud3b4\ubcf4\ub294 \uac83\ubd80\ud130 \uc2dc\uc791\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h3><strong>\ud50c\ub9bf\ub9e8 \uc544\ud0a4\ud14d\ucc98<\/strong><\/h3>\n<p>Fleetman \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub2e4\uc591\ud55c \ubc29\ubc95\uacfc \ud504\ub85c\ud1a0\ucf5c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc11c\ub85c \ud1b5\uc2e0\ud558\ub294 \ubaa8\ub4c8(\ub610\ub294 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4)\uc758 \uc9d1\ud569\uc73c\ub85c \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc138 \uac00\uc9c0 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4: \uc704\uce58 \uc2dc\ubbac\ub808\uc774\ud130, \uc704\uce58 \ucd94\uc801\uae30, \uac8c\uc774\ud2b8\uc6e8\uc774 API\ub294 Spring Boot Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud504\ub808\uc784\uc6cc\ud06c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ud504\ub7f0\ud2b8\uc5d4\ub4dc \ubaa8\ub4c8\uc740 \ub110\ub9ac \uc0ac\uc6a9\ub418\ub294 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uac1c\ubc1c \ud504\ub808\uc784\uc6cc\ud06c\uc778 Angular\ub85c \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uba54\uc2dc\uc9d5 \uc2dc\uc2a4\ud15c\uacfc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uacc4\uce35\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc9d0\uc791\ud560 \uc218 \uc788\ub4ef\uc774, \uc774\ub7ec\ud55c \uac01 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub294 Kubernetes \ubc30\ud3ec\uc758 \uacbd\uc6b0 \ubcc4\ub3c4\uc758 \ud3ec\ub4dc\uc5d0\uc11c \uc2e4\ud589\ub429\ub2c8\ub2e4.<\/p>\n<div id=\"attachment_8953\" style=\"width: 874px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8953\" class=\"wp-image-8953\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/07\/Fleetman-Architecture-1.png\" alt=\"Depiction of Fleetman Microservices Architecture\" width=\"864\" height=\"567\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1.png 2288w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1-300x197.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1-1024x671.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1-768x503.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1-1536x1007.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1-2048x1343.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Fleetman-Architecture-1-1320x865.png 1320w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><p id=\"caption-attachment-8953\" class=\"wp-caption-text\">\ud50c\ub9bf\ub9e8 \uc544\ud0a4\ud14d\ucc98<\/p><\/div>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>\ud3ec\uc9c0\uc158 \uc2dc\ubbac\ub808\uc774\ud130<\/strong> - \ub294 \uc704\uce58 \uc88c\ud45c\uac00 \ud3ec\ud568\ub41c \uad6c\uc131 \ud30c\uc77c\uc744 \uc77d\uc5b4 \ucc28\ub7c9\uc5d0 \uc788\ub294 40\ub300\uc758 \ud2b8\ub7ed \uac01\uac01\uc5d0 \ub300\ud55c \ucc28\ub7c9 \uc6d0\uaca9 \ubd84\uc11d\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc704\uce58 \ubcf4\uace0\uc11c\ub294 \uc544\ub798\uc640 \uac19\uc774 JSON \ud615\uc2dd\uc73c\ub85c \uba54\uc2dc\uc9c0 \ub300\uae30\uc5f4\uc5d0 \uae30\ub85d\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">{time=2020-06-22T11:35:55.174-0400, lat=53.4002010, long=-1.4101460, vehicle=Factory Run D}<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>\uc704\uce58 \ucd94\uc801\uae30<\/strong> - \ub294 \ub300\uae30\uc5f4\uc5d0\uc11c \ucc28\ub7c9 \uc704\uce58\ub97c \uc18c\ube44\ud558\uace0 \uc774\ub97c Couchbase\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \ub610\ud55c \uc0c8\ub85c\uc6b4 \uc704\uce58 \ubcf4\uace0\uc11c\uc640 \uc774\uc804 \uc704\uce58 \ubcf4\uace0\uc11c\ub97c \uae30\ubc18\uc73c\ub85c \uac01 \ud2b8\ub7ed\uc758 \uc18d\ub3c4\ub97c \uacc4\uc0b0\ud569\ub2c8\ub2e4. \uc774 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub294 \ud2b9\uc815 \ud2b8\ub7ed\uc758 \ucd5c\uc2e0 \uc704\uce58, \ubaa8\ub4e0 \ud2b8\ub7ed\uc758 \ucd5c\uc2e0 \uc704\uce58, \ud2b8\ub7ed\uc758 \ubaa8\ub4e0 \uc704\uce58 \uae30\ub85d\uc744 \uac00\uc838\uc624\ub294 \uc77c\ub828\uc758 \uba54\uc11c\ub4dc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uba54\uc11c\ub4dc\ub294 REST \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud1b5\ud574 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. K8 \ud3ec\ub4dc \uc911 \ud558\ub098\uac00 \uc7ac\uc2dc\uc791\ub418\ub294 \uacbd\uc6b0 \uae30\ub85d\uc744 \uac00\uc838\uc624\ub294 \uac83\uc774 \uc720\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>API \uac8c\uc774\ud2b8\uc6e8\uc774<\/strong> - \ub294 Angular \ud504\ub7f0\ud2b8\uc5d4\ub4dc\ub97c \uc704\ud55c \uac04\ub2e8\ud55c \uac8c\uc774\ud2b8\uc6e8\uc774\uc785\ub2c8\ub2e4. \uc704\uce58 \ucd94\uc801\uae30\ub85c\ubd80\ud130 \ucd5c\uc2e0 \ucc28\ub7c9 \uc704\uce58\ub97c \uc77d\uc5b4 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 <\/strong>- \ub294 \uc9c0\ub3c4\uc5d0\uc11c \ud2b8\ub7ed\uc758 \uc704\uce58\ub97c \ubaa8\ub2c8\ud130\ub9c1\ud558\uace0 \ud2b9\uc815 \ud2b8\ub7ed \uc704\uce58\ub85c \uc774\ub3d9\ud558\uba74\uc11c \uc774\ub3d9 \uacbd\ub85c\ub97c \ud45c\uc2dc\ud560 \uc218 \uc788\ub294 Angular \uae30\ubc18 \uc571\uc785\ub2c8\ub2e4. \uc544\ub798 \uc9c0\ub3c4\uc5d0\uc11c '\ub7f0\ub358 \ub9ac\ubc84\uc0ac\uc774\ub4dc' \ud2b8\ub7ed\uc758 \uc774\ub3d9 \uacbd\ub85c\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<div id=\"attachment_8951\" style=\"width: 946px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8951\" class=\"wp-image-8951 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/07\/Map3-2.png\" alt=\"\" width=\"936\" height=\"504\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2.png 936w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2-300x162.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2-768x414.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2-20x11.png 20w\" sizes=\"auto, (max-width: 936px) 100vw, 936px\" \/><p id=\"caption-attachment-8951\" class=\"wp-caption-text\">\"\ub7f0\ub358 \ub9ac\ubc84\uc0ac\uc774\ub4dc\" \ud2b8\ub7ed \uc5ec\ud589<\/p><\/div>\n<h3><strong>Couchbase\ub85c\uc758 \ub9c8\uc774\uadf8\ub808\uc774\uc158 <\/strong><\/h3>\n<p>\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98\uc758 \ubaa8\ub4c8\uc2dd \uc811\uadfc \ubc29\uc2dd \ub355\ubd84\uc5d0 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \uc791\uc5c5\uc758 \ub300\ubd80\ubd84\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uacc4\uce35\uc744 \ucc98\ub9ac\ud558\ub294 \uc704\uce58 \ucd94\uc801\uae30 \ubaa8\ub4c8\uc5d0 \uc9d1\uc911\ud588\uc2b5\ub2c8\ub2e4. \uc6d0\ub798 Fleetman \ucf54\ub4dc\ub294 \uba87 \ub144 \uc804\uc5d0 \uc791\uc131\ub418\uc5c8\uae30 \ub54c\ubb38\uc5d0 \ubaa8\ub4e0 Java \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ucd5c\uc2e0 \ubc84\uc804\uc758 Spring Boot \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c \ub2e4\uc2dc \ucef4\ud30c\uc77c\ud558\ub294 \uac83\uc774 \uccab \ubc88\uc9f8 \ubaa9\ud45c\uc600\uc2b5\ub2c8\ub2e4. Spring \ud504\ub808\uc784\uc6cc\ud06c\ub294 \uac1c\ubc1c\uc790\uc5d0\uac8c \uc77c\ubc18 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ube60\ub974\uace0 \uc27d\uac8c \uc124\uc815\ud558\uace0 \uac1c\ubc1c\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. Spring Boot\ub294 \uc784\ubca0\ub514\ub4dc HTTP \uc11c\ubc84(Tomcat)\uc640 \ud568\uaed8 \uc81c\uacf5\ub418\uba70 XML\uc744 \ud1b5\ud55c \uad6c\uc131\uc774 \ud544\uc694 \uc5c6\ub294 Spring \ud504\ub808\uc784\uc6cc\ud06c\uc758 \ud655\uc7a5\uc785\ub2c8\ub2e4.  \ud55c \uac00\uc9c0 \uc54c\uc544\ub458 \uac83\uc740 Couchbase\uac00 Spring \ud1b5\ud569\uc5d0 \uad00\ud55c \ud55c \uc77c\ub958\ub77c\ub294 \uc810\uc785\ub2c8\ub2e4. \uc62c\ud574 6\uc6d4\uc5d0 \ucd5c\uc2e0 \ubc84\uc804 4.x\uc758 Couchbase Spring \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ucd9c\uc2dc\ub418\uc5c8\uc73c\uba70 \uc804\uccb4 \uc124\uba85\uc11c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/docs.spring.io\/spring-data\/couchbase\/docs\/4.0.1.RELEASE\/reference\/html\/#metadata\">\uc5ec\uae30<\/a>.<\/p>\n<p>\ub9c8\uc774\uadf8\ub808\uc774\uc158\uc758 \uc77c\ud658\uc73c\ub85c \uac00\uc7a5 \uba3c\uc800 \uad6c\ud604\ud574\uc57c \ud588\ub358 \uac83 \uc911 \ud558\ub098\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ubb38\uc11c\ub97c \uc800\uc7a5\ud558\uae30 \uc704\ud574 \ucf54\ub4dc\uc5d0 \ud0a4 \uc0dd\uc131\uc744 \ucd94\uac00\ud558\ub294 \uac83\uc774\uc5c8\uc2b5\ub2c8\ub2e4. Couchbase\uc758 \ubaa8\ub4e0 \ubb38\uc11c\uc5d0\ub294 \ud0a4\uac00 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. Spring Boot\ub294 \ubb38\uc11c \uc18d\uc131\uc758 \uc870\ud569 \ub610\ub294 UUID \ubb34\uc791\uc704 \uc0dd\uc131\uae30\uc640 \ud568\uaed8 @GeneratedValue \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud0a4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc800\ub294 \ud6c4\uc790\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \ucc28\ub7c9 \uc704\uce58\uc5d0 \ub300\ud55c \uc5d4\ud2f0\ud2f0 \ub9e4\ud551\uc740 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"toolbar:1 lang:java decode:true\" title=\"VehiclePosition \uc5d4\ud2f0\ud2f0 \ub9e4\ud551\">\ube44\uad50 \uac00\ub2a5\ud55c\ub97c \uad6c\ud604\ud558\ub294 \uacf5\uc6a9 \ud074\ub798\uc2a4 VehiclePosition\r\n{\r\n\r\n@NotNull\r\nId @GeneratedValue(strategy = UNIQUE)\r\nprivate String id;\r\n\r\n@NotNull\r\n\ud544\ub4dc\r\nprivate String name;\r\n\r\n@NotNull\r\n@Field\r\nprivate BigDecimal \uc704\ub3c4;\r\n\r\n@NotNull\r\n@Field\r\nprivate BigDecimal \uacbd\ub3c4;\r\n\r\n@JsonFormat(\ubaa8\uc591=JsonFormat.Shape.STRING, \ud328\ud134=\"yyyy-MM-dd'T'HH:mm:ss.SSSZ\", \uc2dc\uac04\ub300=\"UTC\")\r\nNotNull\r\n\ud544\ub4dc\r\n\ube44\uacf5\uac1c \ub0a0\uc9dc \ud0c0\uc784\uc2a4\ud0ec\ud504;\r\n\r\nprivate BigDecimal \uc18d\ub3c4;\r\n\r\n....\r\n}\r\n<\/pre>\n<p>\ub610\ud55c \ud638\uc2a4\ud2b8 \uc774\ub984, \uc0ac\uc6a9\uc790 \uc774\ub984, \ube44\ubc00\ubc88\ud638 \ubc0f \uc88c\ud45c\uc5d0 \ub300\ud55c 10\uc9c4\uc218 \uac12 \uc800\uc7a5\uc744 \ucc98\ub9ac\ud558\uae30 \uc704\ud574 \uba87 \uac00\uc9c0 \ubcc0\ud658\uae30\uac00 \ud3ec\ud568\ub41c Couchbase \uad6c\uc131 \ud074\ub798\uc2a4\ub97c \ucd94\uac00\ud574\uc57c \ud588\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c Couchbase\ub294 \uc88c\ud45c\ub97c \ubc30\uc728\uacfc \uc815\ubc00\ub3c4\uac00 \uc788\ub294 \uac1d\uccb4\ub85c \uc800\uc7a5\ud569\ub2c8\ub2e4. \uc774\ub85c \uc778\ud574 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uba87 \uac00\uc9c0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:default decode:true\">  \"lat\": {\r\n    \"scale\": 7,\r\n    \"intCompact\": 533783660,\r\n    \"precision\": 9\r\n  },\r\n<\/pre>\n<p>\ubcc0\ud658\uae30\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud2b8\ub7ed \uc704\uce58 \ub370\uc774\ud130\ub97c \ub2e4\uc74c\uacfc \uac19\uc740 \ud615\uc2dd\uc73c\ub85c \uc800\uc7a5\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\" title=\"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \uc800\uc7a5\ub41c \ucc28\ub7c9 \uc704\uce58 \ubcf4\uace0\uc11c\">{\r\n  \"name\": \"\ube60\ub978 \ubc30\uc1a11\",\r\n  \"_class\": \"com.virtualpairprogrammers.tracker.domain.VehiclePosition\",\r\n  \"lat\": \"53.3009490\",\r\n  \"speed\": \"1.333069443260374304264\",\r\n  \"\uacbd\ub3c4\": \"-1.1231240\",\r\n  \"\ud0c0\uc784\uc2a4\ud0ec\ud504\": 1595735263364\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uad6c\uc131 \ud074\ub798\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"toolbar:1 lang:java decode:true\" title=\"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uad6c\uc131 \ud074\ub798\uc2a4\">public \ud074\ub798\uc2a4 CustomCouchbaseConfig extends AbstractCouchbaseConfiguration {\r\n\r\n    \uc624\ubc84\ub77c\uc774\ub4dc\r\n    protected List getBootstrapHosts() {\r\n        \uceec\ub809\uc158.\uc2f1\uae00\ud1a4\ub9ac\uc2a4\ud2b8(\"localhost\")\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4;\r\n    }\r\n\r\n    @Override\r\n    protected String getBucketName() {\r\n        \ubc18\ud658 \"test\";\r\n    }\r\n\r\n    @Override\r\n    protected String getBucketPassword() {\r\n        \ubc18\ud658 \"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\";\r\n    }\r\n\r\n        @Override\r\n    public CouchbaseCustomConversions customConversions() {\r\n       return new CouchbaseCustomConversions(Arrays.asList(BigDecimalToString.INSTANCE, StringToBigDecimalConverter.INSTANCE));\r\n    }\r\n\r\n    WritingConverter\r\n    public enum BigDecimalToString \uad6c\ud604 Converter {\r\n        INSTANCE;\r\n        \uc624\ubc84\ub77c\uc774\ub4dc\r\n        public String convert(BigDecimal source) {\r\n            return source.toString() ;\r\n        }\r\n\r\n       }\r\n    ReadingConverter\r\n    public enum StringToBigDecimalConverter \uad6c\ud604 Converter {\r\n        \uc778\uc2a4\ud134\uc2a4;\r\n\r\n        \uc624\ubc84\ub77c\uc774\ub4dc\r\n        public BigDecimal convert(String source) {\r\n            return new BigDecimal(source);\r\n        }\r\n     }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Couchbase\ub97c \uad6c\uc131\ud558\uae30 \uc704\ud574 \ud14c\uc2a4\ud2b8 \ubc84\ud0b7\uc744 \ub9cc\ub4e4\uace0, \ubc84\ud0b7\uacfc \uc774\ub984\uc774 \uac19\uc740 RBAC \uc0ac\uc6a9\uc790\ub97c \ucd94\uac00\ud558\uace0, \uc774 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc561\uc138\uc2a4 \uad8c\ud55c\uc744 \ubd80\uc5ec\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc774 \ub450 \uc18d\uc131\uc774 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uba54\uc11c\ub4dc\uc5d0\uc11c \uc561\uc138\uc2a4 \ud328\ud134\uc73c\ub85c \uc0ac\uc6a9\ub418\ubbc0\ub85c \uc774\ub984\uacfc \ud0c0\uc784\uc2a4\ud0ec\ud504\uc5d0 \ub300\ud55c \uc778\ub371\uc2a4\ub97c \ucd94\uac00\ud588\uc2b5\ub2c8\ub2e4. \uc704\uce58 \uc800\uc7a5\uc18c \uc778\ud130\ud398\uc774\uc2a4\uc5d0\ub294 \uc774\ub984, \ud0c0\uc784\uc2a4\ud0ec\ud504 \ubc0f \ub450 \uac00\uc9c0\uc758 \uc870\ud569\uc73c\ub85c \ud2b8\ub7ed\uc744 \uac80\uc0c9\ud558\ub294 \uc138 \uac00\uc9c0 \uba54\uc11c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"toolbar:1 lang:java decode:true\" title=\"\ud3ec\uc9c0\uc158 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc778\ud130\ud398\uc774\uc2a4\">public interface PositionRepository extends CouchbasePagingAndSortingRepository {\r\n\r\n   TreeSet findByNameAndTimestampAfterOrderByTimestampAsc(String name, \ub0a0\uc9dc \ud0c0\uc784 \uc2a4\ud0ec\ud504)\r\n\r\n   List findByNameOrderByTimestampAsc(String name);\r\n\r\n   List findByTimestampAfter(Date since);\r\n\r\n}\r\n<\/pre>\n<h3><\/h3>\n<h3><strong>\uc694\uc57d<\/strong><\/h3>\n<p>\uc804\ubc18\uc801\uc73c\ub85c Couchbase\ub85c\uc758 \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc740 \ub9e4\uc6b0 \uc21c\uc870\ub86d\uac8c \uc9c4\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ubaa8\ub4e0 \ucf54\ub4dc\ub97c \ub85c\uceec\uc5d0\uc11c \ud14c\uc2a4\ud2b8\ud588\uc9c0\ub9cc, Kubernetes\uc6a9 Couchbase Autonomous Operator\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud074\ub77c\uc6b0\ub4dc\uc758 K8\uc5d0 \ucee8\ud14c\uc774\ub108\ud654\ud558\uc5ec \ubc30\ud3ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc608\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/elastic-microservices-with-kubernetes-and-spring-boot\/\">\uc5ec\uae30<\/a>.  \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uad00\uc810\uc5d0\uc11c \ub2e4\ub978 Couchbase \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uba74 \uc7a0\uc7ac\uc801\uc73c\ub85c Fleetman \uc571 \uae30\ub2a5\uc744 \ud655\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, N1QL \ub610\ub294 Analytics \uac1c\ubc1c\uc790\ub294 \ud2b9\uc815 \uae30\uac04 \ub3d9\uc548 \uc774\ub3d9\ud55c \ucd5c\ub300 \uac70\ub9ac\ub97c \uae30\uc900\uc73c\ub85c \uc0c1\uc704 5\ub300\uc758 \ud2b8\ub7ed\uc744 \ucc3e\ub294 \ucffc\ub9ac\ub97c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud2b9\uc815 \ud2b8\ub7ed\uc774 \uc81c\ud55c \uc18d\ub3c4\ub97c \ucd08\uacfc\ud560 \uacbd\uc6b0 \uc774\ubca4\ud2b8 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc5ec \uacbd\uace0\ub97c \ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610 \ub2e4\ub978 \uac1c\uc120\uc758 \uae30\ud68c\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc9c0\ub9ac\uacf5\uac04 \ucffc\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc81c\uac00 \ub9cc\ub4e0 Fleetman \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc18c\uc2a4 \ucf54\ub4dc\ub294 GitHub\uc5d0 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/github.com\/pnovok\/Fleetman\">\uc5ec\uae30<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>I\u2019m a big fan of online learning platforms, such as Udemy. For the price of a bottle of wine, you could learn pretty much anything, from psychology and Thai cooking to programming languages, operating systems and IT certifications.\u00a0 Recently, I [&hellip;]<\/p>\n","protected":false},"author":45744,"featured_media":10432,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,8683,1818,2389,6342,6343,2201],"tags":[2103,1424,1630],"ppma_author":[9095],"class_list":["post-8945","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-geospatial","category-java","category-solutions","category-spring","category-spring-boot","category-tools-sdks","tag-microservices","tag-spring","tag-spring-boot"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Refactoring Spring Microservices Apps to work with Couchbase<\/title>\n<meta name=\"description\" content=\"Migrating a Spring Boot microservices app to Couchbase can be done easily. Find out some tips, tricks and how-to in this blog that shows a vehicle tracking app.\" \/>\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\/refactoring-spring-microservices-application-to-work-with-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Refactoring Spring Microservices Apps to work with Couchbase\" \/>\n<meta property=\"og:description\" content=\"Migrating a Spring Boot microservices app to Couchbase can be done easily. Find out some tips, tricks and how-to in this blog that shows a vehicle tracking app.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/refactoring-spring-microservices-application-to-work-with-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-26T21:35:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:44:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"936\" \/>\n\t<meta property=\"og:image:height\" content=\"504\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/\"},\"author\":{\"name\":\"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/8ac9ba59b1f70850c9bf1f71afd655cd\"},\"headline\":\"Refactoring Spring Microservices Apps to work with Couchbase\",\"datePublished\":\"2020-07-26T21:35:38+00:00\",\"dateModified\":\"2025-06-14T05:44:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/\"},\"wordCount\":1116,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2020\\\/07\\\/Map3-2-1.png\",\"keywords\":[\"microservices\",\"spring\",\"spring-boot\"],\"articleSection\":[\"Application Design\",\"Geospatial\",\"Java\",\"Solutions\",\"Spring\",\"Spring Boot\",\"Tools &amp; SDKs\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/\",\"name\":\"Refactoring Spring Microservices Apps to work with Couchbase\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2020\\\/07\\\/Map3-2-1.png\",\"datePublished\":\"2020-07-26T21:35:38+00:00\",\"dateModified\":\"2025-06-14T05:44:56+00:00\",\"description\":\"Migrating a Spring Boot microservices app to Couchbase can be done easily. Find out some tips, tricks and how-to in this blog that shows a vehicle tracking app.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2020\\\/07\\\/Map3-2-1.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2020\\\/07\\\/Map3-2-1.png\",\"width\":1200,\"height\":646},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/refactoring-spring-microservices-application-to-work-with-couchbase\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Refactoring Spring Microservices Apps to work with Couchbase\"}]},{\"@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\\\/8ac9ba59b1f70850c9bf1f71afd655cd\",\"name\":\"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ad85c263d3b7299b6152eca0cb0f4c4f500d85e4d2953c6722684b7f7ab19679?s=96&d=mm&r=g6418d9373f088b2fa2f9181680ba8513\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ad85c263d3b7299b6152eca0cb0f4c4f500d85e4d2953c6722684b7f7ab19679?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ad85c263d3b7299b6152eca0cb0f4c4f500d85e4d2953c6722684b7f7ab19679?s=96&d=mm&r=g\",\"caption\":\"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase\"},\"description\":\"Pavel is a Sr. Solution Engineer at Couchbase. Previously, he worked at Teradata Corporation, Harrahs Entertainment and NCR in different roles including database management, consulting, performance engineering and technical pre-sales.\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/ko\\\/author\\\/pavel-novokshonov\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\uc2a4\ud504\ub9c1 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc571\uc774 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc640 \ud568\uaed8 \uc791\ub3d9\ud558\ub3c4\ub85d \ub9ac\ud329\ud130\ub9c1\ud558\uae30","description":"Spring Boot \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc571\uc744 Couchbase\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud558\ub294 \uac83\uc740 \uc27d\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucc28\ub7c9 \ucd94\uc801 \uc571\uc744 \ubcf4\uc5ec\uc8fc\ub294 \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c \uba87 \uac00\uc9c0 \ud301, \uc694\ub839 \ubc0f \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.","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\/refactoring-spring-microservices-application-to-work-with-couchbase\/","og_locale":"ko_KR","og_type":"article","og_title":"Refactoring Spring Microservices Apps to work with Couchbase","og_description":"Migrating a Spring Boot microservices app to Couchbase can be done easily. Find out some tips, tricks and how-to in this blog that shows a vehicle tracking app.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/refactoring-spring-microservices-application-to-work-with-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-07-26T21:35:38+00:00","article_modified_time":"2025-06-14T05:44:56+00:00","og_image":[{"width":936,"height":504,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2.png","type":"image\/png"}],"author":"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase","Est. reading time":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/"},"author":{"name":"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/8ac9ba59b1f70850c9bf1f71afd655cd"},"headline":"Refactoring Spring Microservices Apps to work with Couchbase","datePublished":"2020-07-26T21:35:38+00:00","dateModified":"2025-06-14T05:44:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/"},"wordCount":1116,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2-1.png","keywords":["microservices","spring","spring-boot"],"articleSection":["Application Design","Geospatial","Java","Solutions","Spring","Spring Boot","Tools &amp; SDKs"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/","name":"\uc2a4\ud504\ub9c1 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc571\uc774 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc640 \ud568\uaed8 \uc791\ub3d9\ud558\ub3c4\ub85d \ub9ac\ud329\ud130\ub9c1\ud558\uae30","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2-1.png","datePublished":"2020-07-26T21:35:38+00:00","dateModified":"2025-06-14T05:44:56+00:00","description":"Spring Boot \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc571\uc744 Couchbase\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud558\ub294 \uac83\uc740 \uc27d\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ucc28\ub7c9 \ucd94\uc801 \uc571\uc744 \ubcf4\uc5ec\uc8fc\ub294 \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c \uba87 \uac00\uc9c0 \ud301, \uc694\ub839 \ubc0f \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2-1.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/Map3-2-1.png","width":1200,"height":646},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/refactoring-spring-microservices-application-to-work-with-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Refactoring Spring Microservices Apps to work with Couchbase"}]},{"@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\/8ac9ba59b1f70850c9bf1f71afd655cd","name":"\ud30c\ubca8 \ub178\ubcf4\ud06c\uc1fc\ub178\ud504, \uc120\uc784 \uc194\ub8e8\uc158 \uc5d4\uc9c0\ub2c8\uc5b4, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/secure.gravatar.com\/avatar\/ad85c263d3b7299b6152eca0cb0f4c4f500d85e4d2953c6722684b7f7ab19679?s=96&d=mm&r=g6418d9373f088b2fa2f9181680ba8513","url":"https:\/\/secure.gravatar.com\/avatar\/ad85c263d3b7299b6152eca0cb0f4c4f500d85e4d2953c6722684b7f7ab19679?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ad85c263d3b7299b6152eca0cb0f4c4f500d85e4d2953c6722684b7f7ab19679?s=96&d=mm&r=g","caption":"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase"},"description":"Pavel\uc740 Couchbase\uc758 \uc120\uc784 \uc194\ub8e8\uc158 \uc5d4\uc9c0\ub2c8\uc5b4\uc785\ub2c8\ub2e4. \uc774\uc804\uc5d0\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac, \ucee8\uc124\ud305, \uc131\ub2a5 \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1, \uae30\uc220 \uc0ac\uc804 \uc601\uc5c5 \ub4f1 \ub2e4\uc591\ud55c \uc9c1\ubb34\ub97c \uc218\ud589\ud558\uba70 Teradata Corporation, Harrahs Entertainment, NCR\uc5d0\uc11c \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/pavel-novokshonov\/"}]}},"acf":[],"authors":[{"term_id":9095,"user_id":45744,"is_guest":0,"slug":"pavel-novokshonov","display_name":"Pavel Novokshonov, Sr. Solutions Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ad85c263d3b7299b6152eca0cb0f4c4f500d85e4d2953c6722684b7f7ab19679?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8945","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\/45744"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=8945"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8945\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/10432"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=8945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=8945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=8945"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=8945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}