{"id":2511,"date":"2017-01-23T07:11:56","date_gmt":"2017-01-23T07:11:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2511"},"modified":"2025-06-13T21:23:18","modified_gmt":"2025-06-14T04:23:18","slug":"bluebird-promises-swagger-nodejs","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/bluebird-promises-swagger-nodejs\/","title":{"rendered":"Node.js\uc758 \ube14\ub8e8\ubc84\ub4dc \ud504\ub85c\ubbf8\uc2a4\uc640 \uc2a4\uc6e8\uac70"},"content":{"rendered":"<p style=\"text-align: center\"><img decoding=\"async\" style=\"max-width: 30%\" src=\"\/wp-content\/original-assets\/2017\/january\/bluebird-promises-swagger-nodejs\/swagger-logo.png\" alt=\"Swagger Logo\" align=\"middle\" \/><\/p>\n<p>\ucd5c\uadfc\uc5d0 \uc800\ub294 <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/node.js-swagger-monitor-document-changes-couchbase-mobile\/\" target=\"_blank\" rel=\"noopener noreferrer\">Swagger\ub97c \uc0ac\uc6a9\ud55c Node.js<\/a> \uc5d0 \ub300\ud55c \uac04\ub2e8\ud55c \ub9ac\uc2a4\ub108\ub97c \uad6c\ucd95\ud558\uae30 \uc704\ud574 <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/current\/guides\/sync-gateway\/index.html?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\" target=\"_blank\" rel=\"noopener noreferrer\">\ub3d9\uae30\ud654 \uac8c\uc774\ud2b8\uc6e8\uc774<\/a> \ud53c\ub4dc\ub97c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \uadf8 \ubc84\uc804\uc5d0\uc11c\ub294 \ub3d9\uae30\uc2dd \ud638\ucd9c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ub4e0 \uc791\uc5c5\uc744 \uc218\ud589\ud588\uc2b5\ub2c8\ub2e4. \ubcf4\ub2e4 \uc644\ubcbd\ud55c \uc194\ub8e8\uc158\uc744 \uad6c\ucd95\ud558\uae30 \uc704\ud574 \ub178\ub825 \uc911\uc774\ubbc0\ub85c \uc57d\uc18d\uc744 \uc0ac\uc6a9\ud558\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4. \uc800\ub294 <a href=\"https:\/\/www.npmjs.com\/package\/bluebird\" target=\"_blank\" rel=\"noopener noreferrer\">\ube14\ub8e8\ubc84\ub4dc<\/a> \uc57d\uc18d \ub77c\uc774\ube0c\ub7ec\ub9ac. \ube14\ub8e8\ubc84\ub4dc\ub294 \uae30\ubcf8 \uc81c\uacf5 \ubc84\uc804\uc5d0 \ube44\ud574 \uba87 \uac00\uc9c0 \uba4b\uc9c4 \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"the-problem\">\ubb38\uc81c<\/h2>\n<p>\ud55c \uac00\uc9c0 \ubb38\uc81c\ub97c \ud574\uacb0\ud558\ub294\ub370 \uc2dc\uac04\uc774 \uc880 \uac78\ub838\uc2b5\ub2c8\ub2e4. \ube14\ub8e8\ubc84\ub4dc\uc5d0\ub294 \ud3b8\ub9ac\ud55c \uae30\ub2a5\uc774 \uc788\uc2b5\ub2c8\ub2e4. <code>\ubc18\ud658<\/code>. \uc8fc\uc5b4\uc9c4 \uac12\uc73c\ub85c \ud574\uacb0\ub418\ub294 \ud504\ub85c\ubbf8\uc2a4\ub97c \ub9cc\ub4dc\ub294 \uac83\uc744 \uc904\uc5ec \ubd80\ub974\ub294 \ub9d0\uc785\ub2c8\ub2e4. \uc774\ub807\uac8c \uc0ac\uc6a9\ud558\uba74 \ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"javascript\"><code>doSomething()\r\n.return(\"Unrelated value\");<\/code><\/pre>\n<p>\ud558\uc9c0\ub9cc \uc774 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud560 \ub54c \uacc4\uc18d \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4:<\/p>\n<pre><code>TypeError: doSomething().return is not a function<\/code><\/pre>\n<p>\ub354 \ubcf5\uc7a1\ud55c \uad6c\uc870\ub294 \uc798 \uc791\ub3d9\ud588\uae30 \ub54c\ubb38\uc5d0 \ucc98\uc74c\uc5d0\ub294 \uc815\ub9d0 \ub2f9\ud669\uc2a4\ub7ec\uc6e0\uc2b5\ub2c8\ub2e4.<\/p>\n<h2 id=\"the-solution\">\uc194\ub8e8\uc158<\/h2>\n<p>\ube14\ub8e8\ubc84\ub4dc\ub294 \ud45c\uc900 \ud504\ub85c\ubbf8\uc2a4 \uad6c\ud604\uc744 \ub300\uccb4\ud560 \uc218 \uc788\ub3c4\ub85d \ub9cc\ub4e4\uc5b4\uc84c\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 <a href=\"https:\/\/www.npmjs.com\/package\/swagger-client\" target=\"_blank\" rel=\"noopener noreferrer\">Swagger JS \ud074\ub77c\uc774\uc5b8\ud2b8<\/a> \ub294 <a href=\"https:\/\/www.npmjs.com\/package\/q\" target=\"_blank\" rel=\"noopener noreferrer\">Q<\/a> \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uba85\uc2dc\uc801\uc73c\ub85c \ud504\ub85c\ubbf8\uc2a4\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc989, \ub3d9\uae30\ud654 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc5d4\ub4dc\ud3ec\uc778\ud2b8\uc5d0 \ub300\ud55c \ud638\ucd9c\ub85c \ubc18\ud658\ub418\ub294 \uc57d\uc18d\uc774 Q \ubc84\uc804\uc73c\ub85c \ub300\uccb4\ub418\uace0 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. Bluebird\uc640 Q\ub294 \ud575\uc2ec API\uc758 \uc0c1\ub2f9 \ubd80\ubd84\uc744 \uacf5\uc720\ud558\uae30 \ub54c\ubb38\uc5d0 \ubb34\uc2a8 \uc77c\uc774 \uc77c\uc5b4\ub098\uace0 \uc788\ub294\uc9c0 \uc54c\uc544\ub0b4\uae30 \uc704\ud574 \uc57d\uac04\uc758 \uc870\uc0ac\uac00 \ud544\uc694\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \uc218 \uc788\ub294 \uba87 \uac00\uc9c0 \ubc29\ubc95\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ud6c4 <code>\ubc18\ud658<\/code> \uac00 \ub108\ubb34 \uac04\ub2e8\ud55c \ub8e8\ud2f4\uc774\uae30 \ub54c\ubb38\uc5d0, \uc800\ub294 \uadf8\ub0e5 \ub3d9\ub4f1\ud55c \uc218\uc900\uc758 <code>\ub2e4\uc74c<\/code> \ud638\ucd9c\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc6d0\ud558\ub294 \uacbd\uc6b0 \uc2dc\ub3c4\ud574 \ubcfc \uc218 \uc788\ub294 \uba87 \uac00\uc9c0 \ub300\uc548\uc774 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<ul>\n<li><code>\uc57d\uc18d\ud558\uae30<\/code> Swagger\uc758 \uae30\ubcf8 \uc9c0\uc6d0 \ub300\uc2e0 Swagger \uc0ac\uc6a9<\/li>\n<li>\"bluebird-q\" \ud504\ub85c\uc81d\ud2b8\ub97c \uc0ac\uc6a9\ud558\uc5ec Q\ub97c \ube14\ub8e8\ubc84\ub4dc\ub85c \ubc14\uafb8\uae30<\/li>\n<li>\ub2e4\uc74c\uc73c\ub85c \ud1b5\ud654\ub97c \ub9c8\ubb34\ub9ac\ud569\ub2c8\ub2e4. <code>Promise.resolve()<\/code><\/li>\n<\/ul>\n<h2 id=\"postscript\">\ud3ec\uc2a4\ud2b8 \uc2a4\ud06c\ub9bd\ud2b8<\/h2>\n<p>\ub354 \ub9ce\uc740 \ub9ac\uc18c\uc2a4\ub97c \ud655\uc778\ud558\uc138\uc694. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/developers\/community\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\" target=\"_blank\" rel=\"noopener noreferrer\">\uac1c\ubc1c\uc790 \ud3ec\ud138<\/a> \ud2b8\uc704\ud130\uc5d0\uc11c \ud314\ub85c\uc6b0\ud558\uc138\uc694 <a href=\"https:\/\/twitter.com\/CouchbaseDev\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"citation\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uac1c\ubc1c<\/span><\/a>.<\/p>\n<p>\uc9c8\ubb38\uc5d0 \ub300\ud55c \ub2f5\ubcc0\uc744 \uac8c\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/?utm_source=blogs&amp;utm_medium=link&amp;utm_campaign=blogs\" target=\"_blank\" rel=\"noopener noreferrer\">\ud3ec\ub7fc<\/a>. \uadf8\ub9ac\uace0 \ub2e4\uc74c\uc5d0\ub3c4 \uc801\uadf9\uc801\uc73c\ub85c \ucc38\uc5ec\ud569\ub2c8\ub2e4. <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/couchbase\" target=\"_blank\" rel=\"noopener noreferrer\">\uc2a4\ud0dd \uc624\ubc84\ud50c\ub85c<\/a>.<\/p>\n<p>\ub2e4\uc74c \uc8fc\uc18c\uc5d0\uc11c \uc800\ub97c \uac1c\uc778\uc801\uc73c\ub85c \ud314\ub85c\uc6b0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/twitter.com\/HodGreeley\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"citation\">\ud638\ub4dc\uadf8\ub9b4\ub9ac<\/span><\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Recently I wrote about using Node.js with Swagger to build a simple listener for the Sync Gateway changes feed. In that version I did everything using synchronous calls. I&#8217;m working to build a more complete solution, so I decided to [&hellip;]<\/p>","protected":false},"author":73,"featured_media":2748,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1810,1822],"tags":[1790],"ppma_author":[9042],"class_list":["post-2511","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-mobile","category-node-js","tag-swagger"],"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>Bluebird Promises and Swagger in Node.js - The Couchbase Blog<\/title>\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\/bluebird-promises-swagger-nodejs\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bluebird Promises and Swagger in Node.js\" \/>\n<meta property=\"og:description\" content=\"Recently I wrote about using Node.js with Swagger to build a simple listener for the Sync Gateway changes feed. In that version I did everything using synchronous calls. I&#8217;m working to build a more complete solution, so I decided to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/bluebird-promises-swagger-nodejs\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-23T07:11:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:23:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"360\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hod Greeley, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@HodGreeley\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hod Greeley, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/\"},\"author\":{\"name\":\"Hod Greeley, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/9b62593c8a13531e53d52fcd5aabbca4\"},\"headline\":\"Bluebird Promises and Swagger in Node.js\",\"datePublished\":\"2017-01-23T07:11:55+00:00\",\"dateModified\":\"2025-06-14T04:23:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/\"},\"wordCount\":285,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png\",\"keywords\":[\"Swagger\"],\"articleSection\":[\"Couchbase Mobile\",\"Node.js\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/\",\"name\":\"Bluebird Promises and Swagger in Node.js - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png\",\"datePublished\":\"2017-01-23T07:11:55+00:00\",\"dateModified\":\"2025-06-14T04:23:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png\",\"width\":360,\"height\":360,\"caption\":\"Swagger Logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bluebird Promises and Swagger in Node.js\"}]},{\"@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\/9b62593c8a13531e53d52fcd5aabbca4\",\"name\":\"Hod Greeley, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/21eb69cb5d4a401fb23b149e4f4e9e87\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/52d0018695c0ced0d1c68cf64a6195c81dbac03dce5983f98eb209e7c84350df?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/52d0018695c0ced0d1c68cf64a6195c81dbac03dce5983f98eb209e7c84350df?s=96&d=mm&r=g\",\"caption\":\"Hod Greeley, Developer Advocate, Couchbase\"},\"description\":\"Hod Greeley is a Developer Advocate for Couchbase, living in Silicon Valley. He has over two decades of experience as a software engineer and engineering manager. He has worked in a variety of software fields, including computational physics and chemistry, computer and network security, finance, and mobile. Prior to joining Couchbase in 2016, Hod led developer relations for mobile at Samsung. Hod holds a Ph.D. in chemical physics from Columbia University.\",\"sameAs\":[\"https:\/\/hod.greeley.org\/blog\",\"https:\/\/x.com\/HodGreeley\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/hod-greeley\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Bluebird Promises and Swagger in Node.js - The Couchbase Blog","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\/bluebird-promises-swagger-nodejs\/","og_locale":"ko_KR","og_type":"article","og_title":"Bluebird Promises and Swagger in Node.js","og_description":"Recently I wrote about using Node.js with Swagger to build a simple listener for the Sync Gateway changes feed. In that version I did everything using synchronous calls. I&#8217;m working to build a more complete solution, so I decided to [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/bluebird-promises-swagger-nodejs\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-23T07:11:55+00:00","article_modified_time":"2025-06-14T04:23:18+00:00","og_image":[{"width":360,"height":360,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png","type":"image\/png"}],"author":"Hod Greeley, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@HodGreeley","twitter_misc":{"Written by":"Hod Greeley, Developer Advocate, Couchbase","Est. reading time":"2\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/"},"author":{"name":"Hod Greeley, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/9b62593c8a13531e53d52fcd5aabbca4"},"headline":"Bluebird Promises and Swagger in Node.js","datePublished":"2017-01-23T07:11:55+00:00","dateModified":"2025-06-14T04:23:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/"},"wordCount":285,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png","keywords":["Swagger"],"articleSection":["Couchbase Mobile","Node.js"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/","url":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/","name":"Bluebird Promises and Swagger in Node.js - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png","datePublished":"2017-01-23T07:11:55+00:00","dateModified":"2025-06-14T04:23:18+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/01\/Swagger-Logo.png","width":360,"height":360,"caption":"Swagger Logo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/bluebird-promises-swagger-nodejs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Bluebird Promises and Swagger in Node.js"}]},{"@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\/9b62593c8a13531e53d52fcd5aabbca4","name":"\ud638\ub4dc \uadf8\ub9b4\ub9ac, \uac1c\ubc1c\uc790 \uc639\ud638\uc790, \uce74\uc6b0\uce58\ubca0\uc774\uc2a4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/21eb69cb5d4a401fb23b149e4f4e9e87","url":"https:\/\/secure.gravatar.com\/avatar\/52d0018695c0ced0d1c68cf64a6195c81dbac03dce5983f98eb209e7c84350df?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/52d0018695c0ced0d1c68cf64a6195c81dbac03dce5983f98eb209e7c84350df?s=96&d=mm&r=g","caption":"Hod Greeley, Developer Advocate, Couchbase"},"description":"\ud638\ub4dc \uadf8\ub808\uc774\ub9ac\ub294 \uc2e4\ub9ac\ucf58\ubc38\ub9ac\uc5d0 \uac70\uc8fc\ud558\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\uc785\ub2c8\ub2e4. \uadf8\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4 \ubc0f \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1 \uad00\ub9ac\uc790\ub85c\uc11c 20\ub144 \uc774\uc0c1\uc758 \uacbd\ub825\uc744 \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub294 \uc804\uc0b0 \ubb3c\ub9ac\ud559 \ubc0f \ud654\ud559, \ucef4\ud4e8\ud130 \ubc0f \ub124\ud2b8\uc6cc\ud06c \ubcf4\uc548, \uae08\uc735, \ubaa8\ubc14\uc77c \ub4f1 \ub2e4\uc591\ud55c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \ubd84\uc57c\uc5d0\uc11c \uc77c\ud574 \uc654\uc2b5\ub2c8\ub2e4. 2016\ub144 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \ud569\ub958\ud558\uae30 \uc804\uc5d0\ub294 \uc0bc\uc131\uc5d0\uc11c \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc790 \uad00\uacc4\ub97c \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. \uceec\ub7fc\ube44\uc544 \ub300\ud559\uad50\uc5d0\uc11c \ud654\ud559 \ubb3c\ub9ac\ud559 \ubc15\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4.","sameAs":["https:\/\/hod.greeley.org\/blog","https:\/\/x.com\/HodGreeley"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/hod-greeley\/"}]}},"authors":[{"term_id":9042,"user_id":73,"is_guest":0,"slug":"hod-greeley","display_name":"Hod Greeley, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/52d0018695c0ced0d1c68cf64a6195c81dbac03dce5983f98eb209e7c84350df?s=96&d=mm&r=g","author_category":"","last_name":"Greeley","first_name":"Hod","job_title":"","user_url":"https:\/\/hod.greeley.org\/blog","description":"\ud638\ub4dc \uadf8\ub808\uc774\ub9ac\ub294 \uc2e4\ub9ac\ucf58\ubc38\ub9ac\uc5d0 \uac70\uc8fc\ud558\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc758 \uac1c\ubc1c\uc790 \uc639\ud638\uc790\uc785\ub2c8\ub2e4. \uadf8\ub294 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4 \ubc0f \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1 \uad00\ub9ac\uc790\ub85c\uc11c 20\ub144 \uc774\uc0c1\uc758 \uacbd\ub825\uc744 \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub294 \uc804\uc0b0 \ubb3c\ub9ac\ud559 \ubc0f \ud654\ud559, \ucef4\ud4e8\ud130 \ubc0f \ub124\ud2b8\uc6cc\ud06c \ubcf4\uc548, \uae08\uc735, \ubaa8\ubc14\uc77c \ub4f1 \ub2e4\uc591\ud55c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \ubd84\uc57c\uc5d0\uc11c \uc77c\ud574 \uc654\uc2b5\ub2c8\ub2e4. 2016\ub144 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4\uc5d0 \ud569\ub958\ud558\uae30 \uc804\uc5d0\ub294 \uc0bc\uc131\uc5d0\uc11c \ubaa8\ubc14\uc77c \uac1c\ubc1c\uc790 \uad00\uacc4\ub97c \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. \uceec\ub7fc\ube44\uc544 \ub300\ud559\uad50\uc5d0\uc11c \ud654\ud559 \ubb3c\ub9ac\ud559 \ubc15\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2511","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\/73"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2511"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2511\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/2748"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=2511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2511"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}