{"id":13147,"date":"2022-04-26T20:13:45","date_gmt":"2022-04-27T03:13:45","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=13147"},"modified":"2025-06-13T23:04:15","modified_gmt":"2025-06-14T06:04:15","slug":"build-a-python-microservice-with-couchbase-part-3","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/build-a-python-microservice-with-couchbase-part-3\/","title":{"rendered":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub85c \ud30c\uc774\uc36c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uad6c\ucd95\ud558\uae30 - 3\ubd80"},"content":{"rendered":"<h2><span style=\"font-weight: 400;\">\uc694\uc57d<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">\uc9c0\ub09c \ub450 \ucc28\ub840\uc5d0 \uac78\uce5c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-python-microservice-with-couchbase-part-1\/\" target=\"_blank\" rel=\"noopener\">\uc774 \uc2dc\ub9ac\uc988<\/a>\uc5d0\uc11c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ub9cc\ub4dc\ub294 \uc6d0\ub3d9\ub825\uc5d0 \ub300\ud574 \ub17c\uc758\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c Couchbase\uac00 \uc774\ub7ec\ud55c \uc544\ud0a4\ud14d\ucc98\uc5d0 \uc0ac\uc6a9\ud558\uae30\uc5d0 \uc644\ubcbd\ud55c \ub370\uc774\ud130 \uc800\uc7a5\uc18c\uc778 \uc774\uc720\ub3c4 \uc0b4\ud3b4\ubd24\uc2b5\ub2c8\ub2e4. \ub610\ud55c \uc0d8\ud50c \uc0ac\uc6a9\uc790 \ud504\ub85c\ud544 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc758 \uc138 \uac00\uc9c0 \ubcc0\ud615\uc744 \uc0b4\ud3b4\ubd24\uc2b5\ub2c8\ub2e4. \ub450 \uac1c\ub294 Python\uc73c\ub85c \uc791\uc131\ub418\uc5c8\uace0, \ud558\ub098\ub294 \ube44\uad50\ub97c \uc704\ud574 Node.js\ub85c \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \uc2dc\ub9ac\uc988\uc758 \ub9c8\uc9c0\ub9c9 \ubd80\ubd84\uc5d0\uc11c\ub294 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc2a4\ud0a4\ub9c8\uc5d0 \ub300\ud55c \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud558\ub294 \ud55c \uac00\uc9c0 \ubc29\ubc95\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <\/span><\/p>\n<h2><span style=\"font-weight: 400;\">\ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud558\ub294 \uc774\uc720\ub294 \ubb34\uc5c7\uc778\uac00\uc694?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">\uc548\uc815\uc801\uc778 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \ucd9c\uc2dc\ud558\ub824\uba74 \uc5c4\uaca9\ud55c \ud14c\uc2a4\ud2b8\uac00 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. \uc88b\uc740 \ud14c\uc2a4\ud2b8 \uc804\ub7b5\uc5d0\ub294 \ub9ce\uc740 \uc694\uc18c\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc9c0\ub09c 10\ub144 \ub3d9\uc548 '\ub370\ube0c\uc635\uc2a4'\ub77c\ub294 \uc6a9\uc5b4\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c \ubc0f \ud14c\uc2a4\ud2b8\uc5d0 \uc0ac\uc6a9\ub418\ub294 \ub3c4\uad6c \uc138\ud2b8\uc640 \uc2e0\uc18d\ud558\uace0 \ubbfc\ucca9\ud55c \uac1c\ubc1c\uc744 \ub2ec\uc131\ud558\uae30 \uc704\ud574 \uac16\ucdb0\uc57c \ud558\ub294 \ubb38\ud654\uc640 \ud504\ub85c\uc138\uc2a4 \ubc0f \uc808\ucc28\ub97c \ubaa8\ub450 \uc9c0\uce6d\ud558\ub294 \ub370 \uc790\uc8fc \uc0ac\uc6a9\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc6a9\uc5b4\uc640 \uad00\uacc4\uc5c6\uc774 \uc790\ub3d9\ud654\uc640 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\uc774\ub77c\ub294 \ud55c \uac00\uc9c0 \uacf5\ud1b5\uc810\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ub450 \uac00\uc9c0\ub294 \ubcc4\ub3c4\uc758 \ube14\ub85c\uadf8 \uc2dc\ub9ac\uc988\uac00 \ub420 \uc218 \uc788\uc73c\ubbc0\ub85c \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130 \uc0dd\uc131\uc740 DevOps\uc640 \uc560\uc790\uc77c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c \ubc0f \ud14c\uc2a4\ud2b8\uc758 \ud544\uc218 \uc694\uc18c\ub77c\ub294 \uc810\uc744 \uc81c\uc678\ud558\uace0\ub294 \uc790\uc138\ud788 \ub2e4\ub8e8\uc9c0 \uc54a\uaca0\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc800\ub294 \uac1c\uc778\uc801\uc73c\ub85c \uc88b\uc740 \uac1c\ubc1c \ub370\uc774\ud130 \uc138\ud2b8\uac00 \uc5c6\ub2e4\ub294 \ud568\uc815\uc5d0 \ube60\uc84c\uc5c8\uc2b5\ub2c8\ub2e4. \ud3b8\uc758\uc0c1 \ucf54\ub4dc\uc5d0 \ub300\ud55c \ub2e8\uc704 \ud14c\uc2a4\ud2b8\ub97c \ud560 \uc218 \uc788\ub3c4\ub85d \uc6d0\ud558\ub294 \uc2a4\ud0a4\ub9c8\uc5d0 \ub9de\uac8c \uc77c\ubd80 \ub370\uc774\ud130\ub97c \uc218\ub3d9\uc73c\ub85c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ub2e4\uc74c \ub0a0, \uc791\uc740 \ub370\uc774\ud130 \uc138\ud2b8\uc5d0\uc11c\ub294 \uc798 \uc791\ub3d9\ud558\ub358 \ucf54\ub4dc\uac00 \uc218\ucc9c \uac1c\uc758 \ub808\ucf54\ub4dc\uc640 \ubcf4\ub2e4 \uc2e4\uc81c\uc801\uc778 \ub370\uc774\ud130\uac00 \uc788\ub294 \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uc2e4\ud589\ud588\uc744 \ub54c\ub294 \uc81c\ub300\ub85c \uc791\ub3d9\ud558\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc744 \uae68\ub2ec\uc558\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Python \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud55c JSON \ub370\uc774\ud130 \uc0dd\uc131\ud558\uae30<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">\ud14c\uc2a4\ud2b8 \ub370\uc774\ud130\ub97c \ud14c\uc2a4\ud2b8 \ub610\ub294 \uac1c\ubc1c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub85c \uac00\uc838\uc624\ub294 \ubc29\ubc95\uc5d0\ub294 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ud55c \uac00\uc9c0 \ubc29\ubc95\uc740 \uac00\ub2a5\ud558\uba74 \ud504\ub85c\ub355\uc158 \ub370\uc774\ud130\ub97c \ubcf5\uc0ac\ud558\uc5ec \uc0b4\uade0\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ub9ac\uc18c\uc2a4\uc5d0 \ub530\ub77c \uc5ec\ub7ec \uac1c\ubc1c \ubc0f \ud14c\uc2a4\ud2b8 \ud658\uacbd\uc5d0 \ub300\ud55c \uc804\uccb4 \ud504\ub85c\ub355\uc158 \uc0ac\ubcf8\uc744 \ubcf4\uc720\ud558\ub294 \uac83\uc774 \ubd88\uac00\ub2a5\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud50c\ub7ab\ud3fc\uc758 \ud06c\uae30\ub97c \uc801\uc808\ud558\uac8c \uc870\uc815\ud558\uace0 \uaddc\uc815 \uc900\uc218 \ubc0f \ubcf4\uc548\uc0c1\uc758 \uc774\uc720\ub85c \ubbfc\uac10\ud55c \ub370\uc774\ud130\ub97c \uc81c\uac70\ud558\ub3c4\ub85d \uc8fc\uc758\ub97c \uae30\uc6b8\uc5ec\uc57c \ud569\ub2c8\ub2e4. \ud68c\uadc0 \ubc0f \uc0ac\uc804 \ud504\ub85c\ub355\uc158 \ud14c\uc2a4\ud2b8 \ud658\uacbd\uc5d0\ub294 \uc644\uc804\ud55c \ud504\ub85c\ub355\uc158 \uc0ac\ubcf8\uc774 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \ub2e8\uc704 \ud14c\uc2a4\ud2b8 \ubc0f \uac1c\ubc1c\uc744 \uc704\ud574 \ucd5c\uc18c\ud55c\uc758 \ub370\uc774\ud130 \uc138\ud2b8\ub85c \ud569\uc131 \ubc0f \ubb34\uc791\uc704 \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud558\ub294 \uac83\uc774 \uc77c\ubc18\uc801\uc73c\ub85c \uc801\ud569\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uad00\uacc4\ud615 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ubaa8\ub4e0 \ub370\uc774\ud130 \uad6c\uc870\uac00 \uc874\uc7ac\ud574\uc57c \ud558\uae30 \ub54c\ubb38\uc5d0 \ud14c\uc774\ube14\uc758 \ud558\uc704 \uc9d1\ud569\uc73c\ub85c \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc778\uc2a4\ud134\uc2a4\ub97c \ub9cc\ub4dc\ub294 \uac83\uc774 \uc5b4\ub824\uc6b8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc Couchbase\uc758 JSON \ubb38\uc11c \ud615\uc2dd\uc744 \uc0ac\uc6a9\ud558\uba74 \ud6e8\uc52c \ub354 \uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc0d8\ud50c\uc744 \uc0b4\ud3b4\ubcf4\uba74, \uc2a4\ud0a4\ub9c8\ub294 Couchbase\uc758 \ubc94\uc704\uc640 \uceec\ub809\uc158\uc744 \uc911\uc2ec\uc73c\ub85c \uad6c\ucd95\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\uac83\ub4e4\uc740 \ub354 \ub9ce\uc740 \uceec\ub809\uc158\uacfc \ubc94\uc704\ub97c \uac00\uc9c4 \ub354 \ud070 \uc2a4\ud0a4\ub9c8\uc758 \uc77c\ubd80\uac00 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774 \uc11c\ube44\uc2a4 \uc608\uc81c\uc5d0\uc11c\ub294 \ud0a4, \uc0ac\uc6a9\uc790 \ud504\ub85c\ud544 \ubc0f \uc0ac\uc6a9\uc790 \uc774\ubbf8\uc9c0\uc5d0 \uc561\uc138\uc2a4\ud558\ub294 \ub370 \ud544\uc694\ud55c \uceec\ub809\uc158\ub9cc \uc788\uc73c\uba74 \uc791\ub3d9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\ube14\ub85c\uadf8 \uc2dc\ub9ac\uc988\uc758 \ub450 \ubc88\uc9f8 \ud30c\ud2b8\uc5d0\uc11c\ub294 JMeter\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc131\ub2a5 \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud588\uc2b5\ub2c8\ub2e4. \uc131\ub2a5 \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud558\ub824\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ucd5c\uc18c \uc218\ucc9c \uac1c\uc758 \ub808\ucf54\ub4dc\uac00 \uc788\uc5b4\uc57c JMeter\uc5d0 \ud14c\uc2a4\ud2b8 \uc0dd\uc131\uc744 \uc704\ud55c \ud569\ub9ac\uc801\uc778 \ub370\uc774\ud130 \uc138\ud2b8\ub97c \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub294 \ub2e8\uc21c\ud788 \ud504\ub85c\ud544 \uc694\uc18c\ub97c \uac00\uc838\uc640 REST API\ub97c \ud1b5\ud574 \ubc18\ud658\ud569\ub2c8\ub2e4. \ub2e4\ub978 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\uc131 \uc694\uc18c\uac00 \ub370\uc774\ud130\ub97c \uc18c\ube44\ud558\uace0 \uacb0\uacfc\ub97c \uc0ac\uc6a9\ud558\uc5ec \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1\uc744 \uc218\ud589\ud55c\ub2e4\uace0 \uac00\uc815\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc138 \uac00\uc9c0 \ud504\ub85c\ud544 \uceec\ub809\uc158\uc744 \ub2e4\uc2dc \uc0b4\ud3b4\ubcf4\uc790\uba74 \ub2e4\uc74c\uc740 <\/span><span style=\"font-weight: 400;\">user_data<\/span><span style=\"font-weight: 400;\"> \uc218\uc9d1. \uc774 \uc11c\ube44\uc2a4\ub294 \uc0ac\uc9c4 \ud544\ub4dc\uc5d0 \uc0ac\uc9c4 \ub808\ucf54\ub4dc\ub97c \ucc38\uc870\ud558\ub294 ID\uac00 \uc788\ub294\uc9c0 \uc5ec\ubd80\ub97c \uac15\uc81c\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc11c\ube44\uc2a4\ub294 \ud504\ub85c\ud544 \ub370\uc774\ud130 \ub610\ub294 \uc0ac\uc9c4 \ub370\uc774\ud130\ub9cc \ubc18\ud658\ud569\ub2c8\ub2e4. \uc5c5\uc2a4\ud2b8\ub9bc\uc5d0\uc11c \uc774\ub97c \uc18c\ube44\ud558\ub294 \uac83\uc774 \ubb34\uc5c7\uc774\ub4e0 \ud574\ub2f9 \ub85c\uc9c1\uc744 \ucc98\ub9ac\ud55c\ub2e4\ub294 \uac00\uc815\uc785\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"decode-attributes:false lang:js decode:true\">{\r\n\u00a0\u00a0\"record_id\": 1,\r\n\u00a0\u00a0\"name\": \"Michael Jones\",\r\n\u00a0\u00a0\"nickname\": \"mjones\",\r\n\u00a0\u00a0\"picture\": \"\",\r\n\u00a0\u00a0\"user_id\": \"michaeljones2104\",\r\n\u00a0\u00a0\"email\": \"michael.jones@example.com\",\r\n\u00a0\u00a0\"email_verified\": \"True\",\r\n\u00a0\u00a0\"first_name\": \"Michael\",\r\n\u00a0\u00a0\"last_name\": \"Jones\",\r\n\u00a0\u00a0\"address\": \"0208 River Parkway\",\r\n\u00a0\u00a0\"city\": \"Strongdol\",\r\n\u00a0\u00a0\"state\": \"IL\",\r\n\u00a0\u00a0\"zip_code\": \"29954\",\r\n\u00a0\u00a0\"phone\": \"363-555-9036\",\r\n\u00a0\u00a0\"date_of_birth\": \"10\/27\/1958\"\r\n}<\/pre>\n<p>user_images \uceec\ub809\uc158\uc740 \ub808\ucf54\ub4dc ID(\uc0ac\uc6a9\uc790 \ud504\ub85c\ud544\uc5d0\uc11c \ucc38\uc870\ud560 \uc218 \uc788\uc74c), \uc5ec\ub7ec \uc774\ubbf8\uc9c0 \ucf54\ub371\uc744 \uc9c0\uc6d0\ud560 \uc218 \uc788\ub294 \uc774\ubbf8\uc9c0 \uc720\ud615 \ud544\ub4dc, Base64\ub85c \uc778\ucf54\ub529\ub41c \uc774\ubbf8\uc9c0 \uc790\uccb4\ub85c \uac04\ub2e8\ud569\ub2c8\ub2e4. \uc2dc\ub9ac\uc988\uc758 \uccab \ubc88\uc9f8 \uae00\uc5d0\uc11c \uc5b8\uae09\ud588\ub4ef\uc774 Couchbase\ub294 \ubc14\uc774\ub108\ub9ac \ubb38\uc11c\ub97c \uc9c0\uc6d0\ud558\uc9c0\ub9cc, \uc0d8\ud50c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c\ub294 \uc774\uc2dd\uc131\uacfc \ud655\uc7a5\uc131\uc744 \uc704\ud574 JSON\uc744 \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \uc774 \uacbd\uc6b0 \ub370\uc774\ud130\ub97c \uac00\uc838\uc624\ub294 \ub370 \ud544\uc694\ud55c \ub124\ud2b8\uc6cc\ud06c \ub300\uc5ed\ud3ed\uacfc \ub514\ucf54\ub529\uc744 \uc704\ud55c \ud504\ub85c\uc138\uc11c \uc8fc\uae30\uac00 \uc57d\uac04 \ucd94\uac00\ub429\ub2c8\ub2e4.<\/p>\n<pre class=\"decode-attributes:false lang:js decode:true\">{\r\n\u00a0\u00a0\"record_id\": 1,\r\n\u00a0\u00a0\"type\": \"jpeg\",\r\n\u00a0\u00a0\"image\": \"AAAAD\u2026\"\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">\uae30\ubcf8 <\/span><em><span style=\"font-weight: 400;\">\uc11c\ube44\uc2a4_\uc778\uc99d<\/span><\/em><span style=\"font-weight: 400;\"> \uceec\ub809\uc158\uc5d0\ub294 \uc778\uc99d \ud1a0\ud070\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0\ub9cc \ub2e4\ub978 \uc778\uc99d \ud544\ub4dc\ub97c \ud3ec\ud568\ud558\ub3c4\ub85d \uc27d\uac8c \ud655\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"decode-attributes:false lang:js decode:true\">{\r\n\u00a0\u00a0\"record_id\": 1,\r\n\u00a0\u00a0\"token\": \"6j6nW3KD0ZXodBv1\"\r\n}<\/pre>\n<h3><span style=\"font-weight: 400;\">\ubb34\uc791\uc704 \uc0d8\ud50c JSON \ub370\uc774\ud130 \uc0dd\uc131<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\ub77c\ub294 \uc720\ud2f8\ub9ac\ud2f0\ub97c \uc791\uc131\ud588\uc2b5\ub2c8\ub2e4. <\/span><span style=\"font-weight: 400;\">cb_perf<\/span><span style=\"font-weight: 400;\"> \ub97c \uc0ac\uc6a9\ud558\uc5ec \ubb34\uc791\uc704 \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud558\uace0 \uc774\ub97c Couchbase\uc5d0 \uc0bd\uc785\ud569\ub2c8\ub2e4. \uc774 \uc720\ud2f8\ub9ac\ud2f0\ub294 \ub610\ud55c \ud50c\ub7ab\ud3fc\uc758 Python \uae30\ub2a5\uc744 \uce21\uc815\ud558\uae30 \uc704\ud574 \uba87 \uac00\uc9c0 \uc131\ub2a5 \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud569\ub2c8\ub2e4. YCSB\uc640 \uac19\uc740 \ub3c4\uad6c\ub294 \ube44\ud604\uc2e4\uc801\uc778 \uc2a4\ud0a4\ub9c8\ub97c \uc0ac\uc6a9\ud558\uae30 \ub54c\ubb38\uc5d0 \uc6d0\uc2dc \uc131\ub2a5\uc744 \uce21\uc815\ud558\ub294 \uac83\uc774 \uc720\uc77c\ud55c \ubaa9\ud45c\uc785\ub2c8\ub2e4. \uc800\ub294 \uc784\uc758\uc758 JSON\uc744 \uac00\uc838\uc640\uc11c \ubb34\uc791\uc704 \ud569\uc131 \ub370\uc774\ud130\uc640 \ud568\uaed8 \uc0bd\uc785\ud560 \uc218 \uc788\ub294 \uae30\ub2a5\uc774 \ud544\uc694\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc0d8\ud50c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud574 \ub2e4\uc74c \uc2a4\ud0a4\ub9c8\ub97c \ucd94\uac00\ud588\uc2b5\ub2c8\ub2e4. <\/span><span style=\"font-weight: 400;\">cb_perf<\/span><span style=\"font-weight: 400;\"> \ub97c \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ub4e0 Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \ud14c\uc2a4\ud2b8 \ub370\uc774\ud130 \uc138\ud2b8\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 <\/span><span style=\"font-weight: 400;\">cb_perf<\/span><span style=\"font-weight: 400;\"> \uc720\ud2f8\ub9ac\ud2f0\ub294 JSON \uc2a4\ud0a4\ub9c8 \uc815\uc758 \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uac01 \uceec\ub809\uc158\uc5d0 \ub300\ud574 JSON \ub370\uc774\ud130 \uad6c\uc870\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uac01 JSON \uac12\uc5d0 \ub300\ud574 \ub79c\ub364\ub77c\uc774\uc800 \ub370\uc774\ud130 \uc720\ud615\uc5d0 \ub9e4\ud551\ub418\ub294 \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec Jinja2 \ud45c\ud604\uc2dd\uc744 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uac01 \ub808\ucf54\ub4dc\uac00 \ub2ec\ub77c\uc9d1\ub2c8\ub2e4. \uc0dd\uc131\ud560 \uc778\ub371\uc2a4\ub97c \uc815\uc758\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc608\uc5d0\uc11c\ub294 \uba87 \uac1c\uc758 \ud544\ub4dc\uc5d0 \uae30\ubcf8 \uc778\ub371\uc2a4\uc640 \ubcf4\uc870 \uc778\ub371\uc2a4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\uc5ec\uae30\uc5d0\ub294 \ub2e4\uc74c\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4. <\/span><em><span style=\"font-weight: 400;\">RECORD_ID<\/span><\/em><span style=\"font-weight: 400;\"> \ub294 ID \ud544\ub4dc\uc774\uba70 \uc694\uccad\ub41c \uc804\uccb4 \ub808\ucf54\ub4dc \uc218\ub97c \ub36e\uc5b4\uc4f0\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4(\uc6d0\ud558\ub294 \ub9cc\ud07c\uc758 \ub808\ucf54\ub4dc\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub3c4\ub85d).<\/span><\/p>\n<pre class=\"decode-attributes:false lang:js decode:true\">{\r\n\"name\": \"user_data\",\r\n\"schema\": {\r\n\u00a0\u00a0\"record_id\": \"record_id\",\r\n\u00a0\u00a0\"name\": \"{{ rand_first }} {{ rand_last }}\",\r\n\u00a0\u00a0\"nickname\": \"{{ rand_nickname }}\",\r\n\u00a0\u00a0\"picture\": \"\",\r\n\u00a0\u00a0\"user_id\": \"{{ rand_username }}\",\r\n\u00a0\u00a0\"email\": \"{{ rand_email }}\",\r\n\u00a0\u00a0\"email_verified\": \"{{ rand_bool }}\",\r\n\u00a0\u00a0\"first_name\": \"{{ rand_first }}\",\r\n\u00a0\u00a0\"last_name\": \"{{ rand_last }}\",\r\n\u00a0\u00a0\"address\": \"{{ rand_address }}\",\r\n\u00a0\u00a0\"city\": \"{{ rand_city }}\",\r\n\u00a0\u00a0\"state\": \"{{ rand_state }}\",\r\n\u00a0\u00a0\"zip_code\": \"{{ rand_zip_code }}\",\r\n\u00a0\u00a0\"phone\": \"{{ rand_phone }}\",\r\n\u00a0\u00a0\"date_of_birth\": \"{{ rand_dob_1 }}\"\r\n\u00a0\u00a0},\r\n\"idkey\": \"record_id\",\r\n\"primary_index\": true,\r\n\"override_count\": false,\r\n\"indexes\": [\r\n\u00a0\u00a0\"record_id\",\r\n\u00a0\u00a0\"nickname\",\r\n\u00a0\u00a0\"user_id\"\r\n\u00a0\u00a0]\r\n},<\/pre>\n<p>\uc6b0\ub9ac\ub294 <em>cb_perf<\/em> \ub79c\ub364\ub77c\uc774\uc800 \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774\ubbf8\uc9c0 \uceec\ub809\uc158\uc5d0 \uc784\uc758\uc758 JPEG \uc774\ubbf8\uc9c0\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4(RGB \uac12\uc758 \uc784\uc758 \ub9f5\uc744 \uc0dd\uc131\ud558\uc5ec \uc784\uc758\uc758 \uc0c9\uc0c1\uc73c\ub85c \uc774\ubbf8\uc9c0\ub97c \ub9cc\ub4ed\ub2c8\ub2e4). \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758\ud569\ub2c8\ub2e4:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><em>record_id \uc124\uc815<\/em> \ub97c \uc774\ubbf8\uc9c0 ID\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<\/li>\n<li>ID \ud544\ub4dc\uc5d0 \uae30\ubcf8 \ubc0f \ubcf4\uc870 \uc778\ub371\uc2a4\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.<\/li>\n<li>\uc694\uccad\ub41c \ub808\ucf54\ub4dc \uc218\uc640 \ub3d9\uc77c\ud55c \uc591\uc758 \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc720\ud2f8\ub9ac\ud2f0\uc758 <i>\uae30\ubcf8 \ubc30\uce58 \ud06c\uae30 <\/i>\ube44\ub3d9\uae30 \uc791\uc5c5\uc758 \uacbd\uc6b0(\uae30\ubcf8\uac12\uc740 100) \ubb38\uc11c\uac00 \ub300\uc6a9\ub7c9(\ubb38\uc11c\ub2f9 \uc57d 70KiB)\uc774\ubbc0\ub85c 10\uc73c\ub85c \uc124\uc815\ud569\ub2c8\ub2e4. \uad11\uc5ed \ub124\ud2b8\uc6cc\ud06c\ub098 \uc778\ud130\ub137\uc744 \ud1b5\ud574 \ub370\uc774\ud130\ub97c \ub85c\ub4dc\ud558\ub294 \uacbd\uc6b0 \ubcd1\ubaa9 \ud604\uc0c1\uc744 \uc77c\uc73c\ud0a4\uace0 \uc2f6\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uac12\uc740 \ud074\ub77c\uc6b0\ub4dc VPC \ub610\ub294 \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ub370\uc774\ud130 \uc13c\ud130\uc640 \uac19\uc774 \ucc98\ub9ac\ub7c9\uc774 \ub9ce\uc740 \uc0ac\uc124 \ub124\ud2b8\uc6cc\ud06c\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13149\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/04\/image1-3.png\" alt=\"Sample random image generated by cb_perf\" width=\"214\" height=\"214\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image1-3.png 128w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image1-3-65x65.png 65w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image1-3-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image1-3-20x20.png 20w\" sizes=\"auto, (max-width: 214px) 100vw, 214px\" \/><\/p>\n<pre class=\"decode-attributes:false lang:js decode:true\">{\r\n\"name\": \"user_images\",\r\n\"schema\": {\r\n\u00a0\u00a0\"record_id\": \"record_id\",\r\n\u00a0\u00a0\"type\": \"jpeg\",\r\n\u00a0\u00a0\"image\": \"{{ rand_image }}\"\r\n\u00a0\u00a0},\r\n\"idkey\": \"record_id\",\r\n\"primary_index\": true,\r\n\"override_count\": false,\r\n\"batch_size\": 10,\r\n\"indexes\": [\r\n\u00a0\u00a0\"record_id\"\r\n]\r\n},<\/pre>\n<p><span style=\"font-weight: 400;\">\uc778\uc99d \ub808\ucf54\ub4dc\ub97c \ud558\ub098\ub9cc \uc0dd\uc131\ud569\ub2c8\ub2e4. <\/span><span style=\"font-weight: 400;\">\uc11c\ube44\uc2a4_\uc778\uc99d<\/span><span style=\"font-weight: 400;\"> \uceec\ub809\uc158\ub9cc \uc788\uc73c\uba74 \ub429\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"decode-attributes:false lang:js decode:true\">{\r\n\"name\": \"service_auth\",\r\n\"schema\": {\r\n\u00a0\u00a0\"record_id\": \"record_id\",\r\n\u00a0\u00a0\"token\": \"{{ rand_hash }}\"\r\n\u00a0\u00a0},\r\n\"idkey\": \"record_id\",\r\n\"primary_index\": true,\r\n\"override_count\": true,\r\n\"record_count\": 1,\r\n\"indexes\": [\r\n\u00a0\u00a0\"record_id\"\r\n]\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">\ub9c8\uc9c0\ub9c9 \ubd80\ubd84\uc5d0\uc11c\ub294 \uc774\ubbf8\uc9c0 \ub808\ucf54\ub4dc\ub97c \ud504\ub85c\ud544 \ub808\ucf54\ub4dc\uc5d0 \uc5f0\uacb0\ud569\ub2c8\ub2e4. \uc2a4\ud0a4\ub9c8 \uc815\uc758\uc758 \uc77c\ubd80\ub85c \"\ub9c1\ud06c\" \uaddc\uce59\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc2a4\ud0a4\ub9c8 \uaddc\uce59\uc740 \ub370\uc774\ud130 \ub85c\ub4dc \ud6c4\uc5d0 \uc2e4\ud589\ub429\ub2c8\ub2e4. \uc774\ubbf8\uc9c0 \ub808\ucf54\ub4dc \ud0a4 \ubaa9\ub85d\uc744 \uac00\uc838\uc624\uace0 \ud504\ub85c\ud544 \ubb38\uc11c\uc758 \uc0ac\uc9c4 \ud544\ub4dc\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc5ec \uc774\ubbf8\uc9c0 \ud0a4\uc5d0 \ub300\ud55c \ucc38\uc870\ub97c \ud3ec\ud568\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"decode-attributes:false lang:js decode:true\">\"rules\": [\r\n{\r\n\u00a0\u00a0\"name\": \"rule0\",\r\n\u00a0\u00a0\"type\": \"link\",\r\n\u00a0\u00a0\"foreign_key\": \"sample_app:profiles:user_data:picture\",\r\n\u00a0\u00a0\"primary_key\": \"sample_app:profiles:user_images:record_id\"\r\n}\r\n]<\/pre>\n<h3><span style=\"font-weight: 400;\">\uc0dd\uc131\ub41c \ub370\uc774\ud130 \ub85c\ub4dc<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Cb_perf\uc5d0\ub294 \ub370\uc774\ud130\ub97c \ub85c\ub4dc\ud558\uae30 \uc704\ud574 \uc694\uccad\ub41c \uc2a4\ud0a4\ub9c8\uc5d0\uc11c \uc9c0\uc815\ub41c \uc218\uc758 \ub808\ucf54\ub4dc\ub97c \uc0dd\uc131\ud558\ub294 \ub85c\ub4dc \ubaa8\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<pre class=\"decode-attributes:false lang:sh decode:true\">% .\/cb_perf load --host db.example.com --schema profile_demo -u developer -p password --count 1000<\/pre>\n<p><span style=\"font-weight: 400;\">\uc644\ub8cc\ub418\uba74 \ub370\uc774\ud130\uac00 \ub85c\ub4dc\ub418\uace0 \uc778\ub371\uc2a4\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. \uc774\uc81c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \uc2e4\ud589\ud558\uace0 \ud14c\uc2a4\ud2b8\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774 \uc720\ud2f8\ub9ac\ud2f0\ub294 \uc790\ub3d9\uc73c\ub85c \ubb38\uc11c ID(\ubb38\uc11c\uc758 \ub808\ucf54\ub4dc ID\uac00 \uc544\ub2cc \ubb38\uc11c \uba54\ud0c0\ub370\uc774\ud130\uc758 Couchbase \ubb38\uc11c ID)\uc640 \ucf5c\ub860 \ubc0f \ub808\ucf54\ub4dc ID\ub97c \uceec\ub809\uc158 \uc774\ub984\uc73c\ub85c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc544\ub798\uc5d0\uc11c Couchbase UI\uc5d0 \ub85c\ub4dc\ub41c \uc608\uc2dc\ub97c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13148 size-full\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/04\/image2-3.png\" alt=\"Python series - Viewing randomized JSON data document in Couchbase\" width=\"959\" height=\"588\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image2-3.png 959w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image2-3-300x184.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image2-3-768x471.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/image2-3-20x12.png 20w\" sizes=\"auto, (max-width: 959px) 100vw, 959px\" \/><\/span><\/p>\n<h3><span style=\"font-weight: 400;\">\ub2e4\uc74c \ub2e8\uacc4<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\uc774\uac83\uc73c\ub85c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\ub85c \ud30c\uc774\uc36c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uad6c\ucd95\ud558\uae30 \uc2dc\ub9ac\uc988\uac00 \ub05d\ub0ac\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc55e\uc73c\ub85c \ucd94\uac00\ub420 \uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc5c5\ub370\uc774\ud2b8\ub97c \uae30\ub300\ud574 \uc8fc\uc138\uc694. <\/span><i><span style=\"font-weight: 400;\">cb_perf <\/span><\/i><span style=\"font-weight: 400;\">\ubc0f \uae30\ud0c0 \uc8fc\uc81c\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc138\uc694. \uc774 \uc2dc\ub9ac\uc988\ub97c \uc77d\uc5b4\uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4. \uc720\uc775\ud55c \uc2dc\uac04\uc774 \ub418\uc168\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Python \ub9ac\uc18c\uc2a4 \ubc0f \ube14\ub85c\uadf8 \uc2dc\ub9ac\uc988 \ub9c1\ud06c<\/span><\/h3>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"https:\/\/github.com\/mminichino\/cbperf\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\ub0b4 GitHub\uc5d0\uc11c cb_perf \uc720\ud2f8\ub9ac\ud2f0\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc138\uc694.<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\uc774 \uc2dc\ub9ac\uc988\uc758 \uc774\uc804 \ud3ec\uc2a4\ud305\uc744 \uc77d\uc5b4\ubcf4\uc138\uc694:<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-python-microservice-with-couchbase-part-1\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">1\ubd80 - Couchbase\ub85c Python \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uad6c\ucd95\ud558\uae30<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-python-microservice-with-couchbase-part-2\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\ud30c\ud2b8 2<\/span><\/a> \uadf8\ub9ac\uace0\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-python-microservice-with-couchbase-part-3\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">\ud30c\ud2b8 3<\/span><\/a> (\ucd5c\uc885)<\/li>\n<\/ul>\n<\/li>\n<li aria-level=\"2\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud30c\uc774\uc36c SDK \ubb38\uc11c - \uc548\ub155\ud558\uc138\uc694. <a href=\"https:\/\/docs.couchbase.com\/python-sdk\/current\/hello-world\/start-using-sdk.html\" target=\"_blank\" rel=\"noopener\">Python SDK \uc2dc\uc791\ud558\uae30<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span style=\"font-weight: 400;\">\uc7ac\ubbf8\uc788\ub294 \uc0ac\uc2e4<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">\uc544\uc8fc \uba3c \uc61b\ub0a0, \ub2e4\ub978 \uae30\uc220 \uc2dc\ub300\uc5d0\ub294 Perl\uc774 \ub110\ub9ac \ud1b5\uc6a9\ub418\ub358 \uc5b8\uc5b4\uc600\uc2b5\ub2c8\ub2e4. Perl\uc740 \ud14d\uc2a4\ud2b8 \ucc98\ub9ac \uc5b8\uc5b4(\uace0\uc804\uc801\uc778 UNIX AWK\uc640 \uac19\uc740)\uc5d0\uc11c \uc720\ube44\ucffc\ud130\uc2a4 \ubc94\uc6a9 \uc5b8\uc5b4\ub85c \uc131\uc7a5\ud588\uc2b5\ub2c8\ub2e4. 1996\ub144\ubd80\ud130 2000\ub144\uae4c\uc9c0 Perl \ucee4\ubba4\ub2c8\ud2f0\ub294 \uc624\ub7ab\ub3d9\uc548 \uc774\uc5b4\uc838 \uc628 \ub09c\ub3c5\ud654 C \ub300\ud68c\ub97c \ucc28\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud558\uace0 \ub09c\ub3c5\ud654 Perl \ub300\ud68c\ub97c \uac1c\ucd5c\ud588\uc2b5\ub2c8\ub2e4. Perl\uc758 \ub290\uc2a8\ud558\uace0 \uc790\uc720\ub85c\uc6b4 \ud615\uc2dd\uc758 \uad6c\ubb38\uc740 \ud574\ub3c5\ud558\uae30 \uc5b4\ub824\uc6b4 \ud504\ub85c\uadf8\ub7a8\uc73c\ub85c \uc774\uc5b4\uc9c8 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc774\ub7ec\ud55c \ub300\ud68c\uac00 \uc5f4\ub9b0 \uac83\uc740 \ub2f9\uc5f0\ud55c \uc77c\uc785\ub2c8\ub2e4. \ubaa8\ub4e0 \ud504\ub85c\uadf8\ub798\uba38\ub294 \uc5b4\ub290 \uc21c\uac04 \uce74\ud398\uc778\uacfc \uc218\uba74 \ubd80\uc871\uc73c\ub85c \uc778\ud574 \uc790\uc2e0\uc774 \uc791\uc131\ud55c \ud504\ub85c\uadf8\ub7a8\uc744 \ubcf4\uace0 \uc5b4\ub5a4 \uae30\ub2a5\uc744 \ud558\ub294\uc9c0 \uad81\uae08\ud574\ud569\ub2c8\ub2e4.\u00a0<\/span><\/p>\n<pre class=\"decode-attributes:false lang:default decode:true\">python3 -c \"print(bytearray([ord(b'a')+b%26 for b in [19,7,0,13,10,18]]).decode('utf-8'))\"<\/pre>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Recap In the previous two installments of this series, we discussed the drivers behind creating microservices. We also looked at why Couchbase is the perfect datastore to use with such an architecture. We also looked at three variants of a [&hellip;]<\/p>","protected":false},"author":81015,"featured_media":13151,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1816,1819,9139,2201],"tags":[1261,2103,1877],"ppma_author":[9550],"class_list":["post-13147","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-couchbase-server","category-data-modeling","category-python","category-tools-sdks","tag-json","tag-microservices","tag-testing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Build A Python Microservice With Couchbase - Part 3<\/title>\n<meta name=\"description\" content=\"Python series - part 3 of building a microservice, in this post we create randomized JSON sample data for testing microservices in Couchbase.\" \/>\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\/build-a-python-microservice-with-couchbase-part-3\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build A Python Microservice With Couchbase - Part 3\" \/>\n<meta property=\"og:description\" content=\"Python series - part 3 of building a microservice, in this post we create randomized JSON sample data for testing microservices in Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/build-a-python-microservice-with-couchbase-part-3\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-27T03:13:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:04:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1341\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Michael Minichino\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Minichino\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/\"},\"author\":{\"name\":\"Michael Minichino\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/15ea6a51d53d4739913c98d25a8d7e77\"},\"headline\":\"Build A Python Microservice With Couchbase &#8211; Part 3\",\"datePublished\":\"2022-04-27T03:13:45+00:00\",\"dateModified\":\"2025-06-14T06:04:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/\"},\"wordCount\":1367,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg\",\"keywords\":[\"JSON\",\"microservices\",\"testing\"],\"articleSection\":[\"Application Design\",\"Couchbase Server\",\"Data Modeling\",\"Python\",\"Tools &amp; SDKs\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/\",\"name\":\"Build A Python Microservice With Couchbase - Part 3\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg\",\"datePublished\":\"2022-04-27T03:13:45+00:00\",\"dateModified\":\"2025-06-14T06:04:15+00:00\",\"description\":\"Python series - part 3 of building a microservice, in this post we create randomized JSON sample data for testing microservices in Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg\",\"width\":2560,\"height\":1341,\"caption\":\"Creating test data for Python microservices in Couchbase\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build A Python Microservice With Couchbase &#8211; Part 3\"}]},{\"@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\/15ea6a51d53d4739913c98d25a8d7e77\",\"name\":\"Michael Minichino\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ed87fc8ff8aedc56f9872fbd77382f29\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/Screen-Shot-2022-03-28-at-12.40.06-PM.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/Screen-Shot-2022-03-28-at-12.40.06-PM.png\",\"caption\":\"Michael Minichino\"},\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/michael-minichino\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build A Python Microservice With Couchbase - Part 3","description":"Python \uc2dc\ub9ac\uc988 - \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uad6c\ucd95\uc758 3\ubd80, \uc774 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 Couchbase\uc5d0\uc11c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud55c \ubb34\uc791\uc704 JSON \uc0d8\ud50c \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.","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\/build-a-python-microservice-with-couchbase-part-3\/","og_locale":"ko_KR","og_type":"article","og_title":"Build A Python Microservice With Couchbase - Part 3","og_description":"Python series - part 3 of building a microservice, in this post we create randomized JSON sample data for testing microservices in Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/build-a-python-microservice-with-couchbase-part-3\/","og_site_name":"The Couchbase Blog","article_published_time":"2022-04-27T03:13:45+00:00","article_modified_time":"2025-06-14T06:04:15+00:00","og_image":[{"width":2560,"height":1341,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg","type":"image\/jpeg"}],"author":"Michael Minichino","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michael Minichino","Est. reading time":"8\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/"},"author":{"name":"Michael Minichino","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/15ea6a51d53d4739913c98d25a8d7e77"},"headline":"Build A Python Microservice With Couchbase &#8211; Part 3","datePublished":"2022-04-27T03:13:45+00:00","dateModified":"2025-06-14T06:04:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/"},"wordCount":1367,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg","keywords":["JSON","microservices","testing"],"articleSection":["Application Design","Couchbase Server","Data Modeling","Python","Tools &amp; SDKs"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/","url":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/","name":"Build A Python Microservice With Couchbase - Part 3","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg","datePublished":"2022-04-27T03:13:45+00:00","dateModified":"2025-06-14T06:04:15+00:00","description":"Python \uc2dc\ub9ac\uc988 - \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uad6c\ucd95\uc758 3\ubd80, \uc774 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 Couchbase\uc5d0\uc11c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ud14c\uc2a4\ud2b8\ud558\uae30 \uc704\ud55c \ubb34\uc791\uc704 JSON \uc0d8\ud50c \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/04\/build-microservice-python-couchbase-scaled.jpg","width":2560,"height":1341,"caption":"Creating test data for Python microservices in Couchbase"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/build-a-python-microservice-with-couchbase-part-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Build A Python Microservice With Couchbase &#8211; Part 3"}]},{"@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\/15ea6a51d53d4739913c98d25a8d7e77","name":"\ub9c8\uc774\ud074 \ubbf8\ub2c8\uce58\ub178","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ed87fc8ff8aedc56f9872fbd77382f29","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/Screen-Shot-2022-03-28-at-12.40.06-PM.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/Screen-Shot-2022-03-28-at-12.40.06-PM.png","caption":"Michael Minichino"},"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/michael-minichino\/"}]}},"authors":[{"term_id":9550,"user_id":81015,"is_guest":0,"slug":"michael-minichino","display_name":"Michael Minichino","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/Screen-Shot-2022-03-28-at-12.40.06-PM.png","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/03\/Screen-Shot-2022-03-28-at-12.40.06-PM.png"},"author_category":"","last_name":"Minichino","first_name":"Michael","job_title":"","user_url":"","description":"\ub9c8\uc774\ud074 \ubbf8\ub2c8\uce58\ub178\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \uc218\uc11d \uc194\ub8e8\uc158 \uc5d4\uc9c0\ub2c8\uc5b4\uc785\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/13147","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\/81015"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=13147"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/13147\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/13151"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=13147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=13147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=13147"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=13147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}