{"componentChunkName":"component---src-templates-blog-post-js","path":"/nodejs/swagger/","result":{"data":{"site":{"siteMetadata":{"title":"아구몬","author":"[AGUMON]","siteUrl":"https://ljlm0402.netlify.com","comment":{"disqusShortName":"","utterances":"ljlm0402/tech-blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"3670841c-bbac-5b70-9464-85ebd330e0b7","excerpt":"💎 목차 설치를 하며 코드를 보며 생각 해보며 ⚙️ 설치를 하며 ⬆ 목차 😳 코드를 보며 ▸ app.js \n  라우트 경로 지정 할때,  swaager 환경 파일 지정 ▸ /lib/swagger.js \n  응답 스키마를 정의  Models 정의  request 라우터 경로 ▸ /routes/index.js \n 경로를 통해 데이터를 요청해서 해당 응답 코드에 맞게 제공 \n Swagger UI를 통한 결과물이다. ⬆ 목차 🤔 생각해 보며 \n  유저 API,  게시글 API…","html":"<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 35.13513513513513%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAIAAACHqfpvAAAACXBIWXMAAAsTAAALEwEAmpwYAAABLElEQVQY02No32cPRB37Qahpu13LbtvOA2CRfQ5QtN8RCTlA1EMQA4jaa9950KFmk03WLOu8hZZte+yAgq17bdv22bbtBaHWvTYQBGSjagbqPOBQv9U6rd87utE9uSMwe7Zd10GHvoNe3ftdew649xz06Dvk1XvIq/+QT+9Bz7Z9dgjNbXvtuw855C82r5+XVz47oX1pWWq/e+det+MPlhy7v+TEw2WXn++48HTrpWfbLzzbsvJiWfMeS6BfEJqBbq7eYJU9MTS1OyBvQmzGNMfOA45Tj4VPOxY+9Vjoigsl+25P33ytdcbx6K4Drig2QyhgIJWttEmaYJ0+zaZphx0w8Fr2WIORVctea5CHwex2JJ0IzSD9B+3b94NIoE5waANJoPMc4I6EM+AIAJKV2UlDzL6UAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"logo\"\n        title=\"logo\"\n        src=\"/static/dd28d3d83c3bb6214546810805b6cabd/fcda8/logo.png\"\n        srcset=\"/static/dd28d3d83c3bb6214546810805b6cabd/12f09/logo.png 148w,\n/static/dd28d3d83c3bb6214546810805b6cabd/e4a3f/logo.png 295w,\n/static/dd28d3d83c3bb6214546810805b6cabd/fcda8/logo.png 590w,\n/static/dd28d3d83c3bb6214546810805b6cabd/1e043/logo.png 690w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<center>개발자가 <strong style=\"color:#93BB53; font-size: 20px;\">RESTful 웹 서비스를 설계, 빌드, 문서화</strong>를 도와주는 프레임 워크</center>\n<h2 id=\"-목차\" style=\"position:relative;\"><a href=\"#-%EB%AA%A9%EC%B0%A8\" aria-label=\" 목차 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>💎 목차</strong></h2>\n<ul>\n<li><a href=\"#%EF%B8%8F-%EC%84%A4%EC%B9%98%EB%A5%BC-%ED%95%98%EB%A9%B0\">설치를 하며</a></li>\n<li><a href=\"#-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%B3%B4%EB%A9%B0\">코드를 보며</a></li>\n<li><a href=\"#-%EC%83%9D%EA%B0%81%ED%95%B4-%EB%B3%B4%EB%A9%B0\">생각 해보며</a></li>\n</ul>\n<h2 id=\"️-설치를-하며\" style=\"position:relative;\"><a href=\"#%EF%B8%8F-%EC%84%A4%EC%B9%98%EB%A5%BC-%ED%95%98%EB%A9%B0\" aria-label=\"️ 설치를 하며 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>⚙️ 설치를 하며</strong></h2>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">$ npm install express\n\n$ npm install swagger-jsdoc\n\n$ npm install swagger-ui-express</code></pre></div>\n<br />\n<p><strong><a href=\"#-%EB%AA%A9%EC%B0%A8\">⬆ 목차</a></strong></p>\n<hr />\n<h2 id=\"-코드를-보며\" style=\"position:relative;\"><a href=\"#-%EC%BD%94%EB%93%9C%EB%A5%BC-%EB%B3%B4%EB%A9%B0\" aria-label=\" 코드를 보며 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>😳 코드를 보며</strong></h2>\n<h3 id=\"▸-appjs\" style=\"position:relative;\"><a href=\"#%E2%96%B8-appjs\" aria-label=\"▸ appjs permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>▸ app.js</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 120.94594594594594%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAYCAYAAAD6S912AAAACXBIWXMAAAsTAAALEwEAmpwYAAADZElEQVQ4y51Vy07bQBRlDztQSIPj+D1+25M4hqQlQELSCqkLFoVfoCL5kPIFfAGtoF/Aks9o6AJaCSGBEI8NCHR67UBFk9CoXRyNPfGc3HvuuXfGrq6ucHd3h/v7B8L9f+Hh4QG3t7e4vLzE2MXFBfb39/Hly2d83dvD7u7uP2GPzuzs7ODg4AA3NzcYOz4+Rn1pCbnMFFRJRDabRWZ6GtOEbJbw+PwScrkcxsfHsb6+juvra4wdHh5iqdGE5oQIZ6sIiwFmyyHKoQffYlBVBWKhAFEUUaC1H7IsY2pqCmtrazg/P+8RLlKEvNZCpbmCueosam8i1GKOucBF0THBXQsFSUI+n0+Jn0Oi/cnJyUFC3Q1RLBfBQweMGdBkCYYqQ1d6SA4/ET4nHiDsdr+htfIePg9Qna+gGBURhT40TYOQp8MFCYLYS6+f7K+EHg8RVefhFiPEMUXLPTDbhRMUoTIbOjNTvUYSJikvLNUhWT6RxQgDi8hc+EzHrGehRPoplLIgCClZP5LI/yTsdtFotmCHHL7rIKBILceBpqqwSEtFUdKCSBSdJBXSiGQ5eZdoX05/HyBsvluB7TnwbQOcVmY7sMISNMuBQc82L8H0fDgOA6fog8CG47kURATTtFLCD89TbjTJh5ZOH/hUbQdm4BFcWHTIsDTIGllGyA9NOYm6T8Mu6stNmDwGf70IP66Cz83B9n0YBhta2ZFFqTcacELqjtoyXB7BNlSYmgJFHm7mv/owIVwmQlEUoGgqVU3EzIyQVjWtbF+qoyNMqtxqQSetbOoSg3TTGYNmEmjVrZ5tRBocCQY1HJryMkzSLKxU4Feq8OIyaRkhWniDoMShJxI4Ohj9qSI/WUhOPTjc2IuLkJgFL4rhkl08sogblMDLMWwzmTgqDJLDNTTSViVpdGpNPe2cAWN/TwgXFvBKFsFcRpVV4DKVjE0GVtRUJ+ExPeERo1Ou16HoKqLYgxfaYD55kIYFo+gs2/x32zTftlCg6WLQQE0LorM0uqSt0tYbMlj7B2wysR+rfIjXtXlMCjnM0PybIduIsoJMJvMbo66AiYkJrK6u9gh//PyJrU9b+LixgU67jfbmZopOp4N2p00r7bVfRvLdBp3d3t7G2dlZ79Y7OTnB0dHRfyO56E5PT5Fw/QLMzqZ4VkzOjQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"1\"\n        title=\"1\"\n        src=\"/static/32533adc89d5c88f2ce4247ed847763e/fcda8/1.png\"\n        srcset=\"/static/32533adc89d5c88f2ce4247ed847763e/12f09/1.png 148w,\n/static/32533adc89d5c88f2ce4247ed847763e/e4a3f/1.png 295w,\n/static/32533adc89d5c88f2ce4247ed847763e/fcda8/1.png 590w,\n/static/32533adc89d5c88f2ce4247ed847763e/efc66/1.png 885w,\n/static/32533adc89d5c88f2ce4247ed847763e/c83ae/1.png 1180w,\n/static/32533adc89d5c88f2ce4247ed847763e/6f464/1.png 1464w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<p><code class=\"language-text\">app.use()</code> 라우트 경로 지정 할때,</p>\n<p><code class=\"language-text\">swaggerUi.serve, swaggerUi.setup(swaggerJSDoc()</code> swaager 환경 파일 지정</p>\n<br />\n<hr />\n<h3 id=\"▸-libswaggerjs\" style=\"position:relative;\"><a href=\"#%E2%96%B8-libswaggerjs\" aria-label=\"▸ libswaggerjs permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>▸ /lib/swagger.js</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 426.3513513513514%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"2\"\n        title=\"2\"\n        src=\"/static/dc644e75416c682654de1840d8b7cd09/fcda8/2.png\"\n        srcset=\"/static/dc644e75416c682654de1840d8b7cd09/12f09/2.png 148w,\n/static/dc644e75416c682654de1840d8b7cd09/e4a3f/2.png 295w,\n/static/dc644e75416c682654de1840d8b7cd09/fcda8/2.png 590w,\n/static/dc644e75416c682654de1840d8b7cd09/efc66/2.png 885w,\n/static/dc644e75416c682654de1840d8b7cd09/c83ae/2.png 1180w,\n/static/dc644e75416c682654de1840d8b7cd09/78612/2.png 1260w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<ul>\n<li><code class=\"language-text\">components</code> 응답 스키마를 정의</li>\n<li><code class=\"language-text\">definitions</code> Models 정의</li>\n<li><code class=\"language-text\">apis</code> request 라우터 경로</li>\n</ul>\n<br />\n<hr />\n<h3 id=\"▸-routesindexjs\" style=\"position:relative;\"><a href=\"#%E2%96%B8-routesindexjs\" aria-label=\"▸ routesindexjs permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>▸ /routes/index.js</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 590px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 93.24324324324323%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAACXBIWXMAAAsTAAALEwEAmpwYAAACoElEQVQ4y52UW07bQBSGvQOECLn4Ph7bceIkBCJVpKkSBEVIfYQ4dAEsgi4D9pFHNgMSL4AEQeX2wANC/D1nghMSJUWtpV8zY898/s85M6M9Pj7i5eUF/Ly9vSn9y5POf319xdPTEzQGPjw84Pfd3Uj39/dzdff+fbplBrO05+dn/Do8RPtrEz92trGz/R2dTmesjY2J8QaNP2pzcxPNZhMHBwcYDAbQ+A+7u7tYWlyEJwQc20ahkIdh6DD0AvQ89XUdpqnT+wKy2eyE8vR9YWEBrVYL5+fn0G6JmvT2kTNdlKorCMsVVKsl1OsV1MoRalGImNpGo4ZSKYJtO3CcsQSZYCi7PT09JeDtLZJkD7pjwY/X4AgJ0zDIkfkuS7WGMRzbFIFlWUrcZyg75XSMgN3uHvIUUhBXYNnuaLKdth9kTb1jYC6XmwImXSxnM4iqPvyiQDGSCGOJoCzhCmcEsWb8YCYw6SXIZJYQr0VYWS9jtRZRbpxxeKY1AfvYnwPsIkMOZeChVA/heJRs3yW3HrxAQIYCwnMVeDr8uSFnljO0SCAoSQjpKogfETAcArl1U9fmZFFmO6SQPSkQrQQKyLkMKxKyyGCh8qlySu4V2JnncDDMYYGq7EkJP/QISK4in4AhFadIQC4Wwz0lTkVarNkOkwSiVMO3TgvNL3WsNVbRWG/SwjKKcQ2eH8J1xTBU0/o85F6vpzZuMQxItGVCH5Jc2qrC5sz9mMp1XQUcnxQ6ensUcs6nMKsxHDpmwvcR1VbJWaCA6cmYpfSktNvtscP9n/vI0oUgAy4IVdmj6hKUzyk7+Jt4Dl8aW1tbODs7g8ZXzsnJCY6PjiZ0lPaPjz8Vz+33+7i6uoLGl+PNzQ0uLy9xcXHxX+K119fX6qL9Ax6UE02ro0w8AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"3\"\n        title=\"3\"\n        src=\"/static/2cfc36afd40004de155131098260843a/fcda8/3.png\"\n        srcset=\"/static/2cfc36afd40004de155131098260843a/12f09/3.png 148w,\n/static/2cfc36afd40004de155131098260843a/e4a3f/3.png 295w,\n/static/2cfc36afd40004de155131098260843a/fcda8/3.png 590w,\n/static/2cfc36afd40004de155131098260843a/efc66/3.png 885w,\n/static/2cfc36afd40004de155131098260843a/c83ae/3.png 1180w,\n/static/2cfc36afd40004de155131098260843a/21b4d/3.png 1280w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span>\n<br /></p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">/**\n * @swagger         { swagger 지정 }\n * /:               { 요청 경로 }\n *  get:            { 요청 메소드 }\n *   summary: text  { 간략 설명 }\n *   tags: [Index]  { 태그 }\n *   responses:     { 응답 데이터 swagger 참고}\n *       200:\n *           $ref: &#39;#/components/res/Ok&#39;\n *       204:\n *           $ref: &#39;#/components/res/NoContent&#39;\n *       500:\n *           $ref: &#39;#/components/res/InternalServerError&#39;\n */</code></pre></div>\n<p>경로를 통해 데이터를 요청해서 해당 응답 코드에 맞게 제공</p>\n<br />\n<p><img src=\"/b02532f304b00843fab6becdb3f28bad/4.gif\">\n<br /></p>\n<p>Swagger UI를 통한 결과물이다.</p>\n<br />\n<p><strong><a href=\"#-%EB%AA%A9%EC%B0%A8\">⬆ 목차</a></strong></p>\n<hr />\n<h2 id=\"-생각해-보며\" style=\"position:relative;\"><a href=\"#-%EC%83%9D%EA%B0%81%ED%95%B4-%EB%B3%B4%EB%A9%B0\" aria-label=\" 생각해 보며 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><strong>🤔 생각해 보며</strong></h2>\n<p><img src=\"/455df5e63329ee4c0397ac33ce63e2d6/5.gif\">\n<br /></p>\n<ul>\n<li><code class=\"language-text\">USER</code> 유저 API, <code class=\"language-text\">BOARD</code> 게시글 API 예시입니다.</li>\n<li>소스를 이해하고 개선하면서 추후에는 <code class=\"language-text\">DATABASE</code>도 연동해보시길 바랍니다.</li>\n<li>혹여 더 좋은 방법이 있으시면 공유도 부탁드립니다.</li>\n</ul>\n<br />\n<p><strong><a href=\"#-%EB%AA%A9%EC%B0%A8\">⬆ 목차</a></strong></p>\n<hr />\n<br />\n<blockquote>\n<p>출처</p>\n<p><a href=\"https://github.com/bynodejs/swagger\" target=\"_blank\">GitHub > swagger</a></p>\n</blockquote>\n<h1 id=\"여러분의-댓글이-큰힘이-됩니다-๑̀ㅂ́و✧\" style=\"position:relative;\"><a href=\"#%EC%97%AC%EB%9F%AC%EB%B6%84%EC%9D%98-%EB%8C%93%EA%B8%80%EC%9D%B4-%ED%81%B0%ED%9E%98%EC%9D%B4-%EB%90%A9%EB%8B%88%EB%8B%A4-%E0%B9%91%CC%80%E3%85%82%CC%81%D9%88%E2%9C%A7\" aria-label=\"여러분의 댓글이 큰힘이 됩니다 ๑̀ㅂ́و✧ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>여러분의 댓글이 큰힘이 됩니다. (๑•̀ㅂ•́)و✧</h1>","frontmatter":{"title":" RESTful 개발 도구 📋 ▻ swagger ","date":"October 01, 2019"}}},"pageContext":{"slug":"/nodejs/swagger/","previous":{"fields":{"slug":"/etc/vscode/"},"frontmatter":{"title":" 비쥬얼 스튜디오 코드 📇 ▻ EXTENSIONS ","category":"VS Code"}},"next":{"fields":{"slug":"/etc/chrome/"},"frontmatter":{"title":" 구글 크롬 🌐 ▻ EXTENSIONS ","category":"Chrome"}}}},"staticQueryHashes":["3128451518","3956431471"]}