{"componentChunkName":"component---src-templates-post-template-jsx","path":"/works/posts/2023-07-30--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"dbeef219-b292-5509-9543-ec416cf9bd25","html":"<h2>✔️ NocoDB?</h2>\n<ul>\n<li>Aritable 의 대체 오픈소스로, MySql, MariaDB, PostgreSql, SqlServer, Sqlite, Amazon Aurora 등 관계형 데이터베이스를 스마트 스프레드 시트로 변경하여 사용 가능한 툴이다.</li>\n<li><strong>DB 데이터 CRUD를 위한 어드민 페이지 대체용</strong>으로 아주 적합하다.</li>\n</ul>\n<br/>\n<br/>\n<h2>✔️ 설치하기</h2>\n<h3>1. docker로 설치하기</h3>\n<p>1.1. docker image pull</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">$ docker pull nocodb/nocodb</code></pre></div>\n<p>1.2. docker run</p>\n<ul>\n<li>DB(<code class=\"language-text\">d=nocodb</code>)가 없을 경우, DB계정(<code class=\"language-text\">u=user</code>)은 데이터베이스 및 테이블 생성 권한이 있어야 한다.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\">$ docker run -d --name nocodb-mysql <span class=\"token punctuation\">\\</span>\n-v <span class=\"token string\">\"<span class=\"token variable\"><span class=\"token variable\">$(</span><span class=\"token builtin class-name\">pwd</span><span class=\"token variable\">)</span></span>\"</span>/nocodb:/usr/app/data/ <span class=\"token punctuation\">\\</span> <span class=\"token comment\"># 볼륨 마운트</span>\n-p <span class=\"token number\">18080</span>:8080 <span class=\"token punctuation\">\\</span>\n-e <span class=\"token assign-left variable\">NC_DB</span><span class=\"token operator\">=</span><span class=\"token string\">\"mysql2://host.docker.internal:3306?u=user&amp;p=user_password&amp;d=nocodb\"</span> <span class=\"token punctuation\">\\</span>\nnocodb/nocodb:latest</code></pre></div>\n<br/>\n<h3>2. K8S로 설치하기</h3>\n<ul>\n<li>NocoDB를 구성하기 위해서는 DB가 필요하기 때문에 mysql 컨테이너와 함께 pod를 구성하도록 한다.</li>\n<li>만약 별도로 DB가 구성되어 있다면, DB 컨테이너를 제거하고 NocoDB 컨테이너의 env 필드를 수정한다.</li>\n<li>deployment.yaml</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">apiVersion</span><span class=\"token punctuation\">:</span> apps/v1\n<span class=\"token key atrule\">kind</span><span class=\"token punctuation\">:</span> Deployment\n<span class=\"token key atrule\">metadata</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> noco<span class=\"token punctuation\">-</span>deploy\n  <span class=\"token key atrule\">namespace</span><span class=\"token punctuation\">:</span> noco\n  <span class=\"token key atrule\">labels</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">app</span><span class=\"token punctuation\">:</span> noco<span class=\"token punctuation\">-</span>deploy\n<span class=\"token key atrule\">spec</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">selector</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">matchLabels</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">app</span><span class=\"token punctuation\">:</span> noco<span class=\"token punctuation\">-</span>deploy\n  <span class=\"token key atrule\">replicas</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span>\n  <span class=\"token key atrule\">minReadySeconds</span><span class=\"token punctuation\">:</span> <span class=\"token number\">10</span>\n  <span class=\"token key atrule\">template</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">metadata</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">labels</span><span class=\"token punctuation\">:</span>\n        <span class=\"token key atrule\">app</span><span class=\"token punctuation\">:</span> noco<span class=\"token punctuation\">-</span>deploy\n    <span class=\"token key atrule\">spec</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">containers</span><span class=\"token punctuation\">:</span>\n        <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> noco<span class=\"token punctuation\">-</span>mysql\n          <span class=\"token key atrule\">image</span><span class=\"token punctuation\">:</span> mysql<span class=\"token punctuation\">:</span>5.7.40<span class=\"token punctuation\">-</span>debian <span class=\"token comment\"># 상황에 맞게 이미지 주소 수정</span>\n          <span class=\"token key atrule\">imagePullPolicy</span><span class=\"token punctuation\">:</span> Always\n          <span class=\"token key atrule\">env</span><span class=\"token punctuation\">:</span>\n            <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> MYSQL_ROOT_PASSWORD\n              <span class=\"token key atrule\">value</span><span class=\"token punctuation\">:</span> root\n          <span class=\"token key atrule\">ports</span><span class=\"token punctuation\">:</span>\n            <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">containerPort</span><span class=\"token punctuation\">:</span> <span class=\"token number\">3306</span>\n\n        <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> noco<span class=\"token punctuation\">-</span>deploy\n          <span class=\"token key atrule\">image</span><span class=\"token punctuation\">:</span> noco <span class=\"token comment\"># 상황에 맞게 이미지 주소 수정</span>\n          <span class=\"token key atrule\">imagePullPolicy</span><span class=\"token punctuation\">:</span> Always\n          <span class=\"token key atrule\">livenessProbe</span><span class=\"token punctuation\">:</span>\n            <span class=\"token key atrule\">httpGet</span><span class=\"token punctuation\">:</span>\n              <span class=\"token key atrule\">path</span><span class=\"token punctuation\">:</span> /dashboard\n              <span class=\"token key atrule\">port</span><span class=\"token punctuation\">:</span> <span class=\"token number\">8080</span>\n            <span class=\"token key atrule\">initialDelaySeconds</span><span class=\"token punctuation\">:</span> <span class=\"token number\">60</span>\n            <span class=\"token key atrule\">periodSeconds</span><span class=\"token punctuation\">:</span> <span class=\"token number\">5</span>\n            <span class=\"token key atrule\">failureThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span>\n          <span class=\"token key atrule\">resources</span><span class=\"token punctuation\">:</span>\n            <span class=\"token key atrule\">limits</span><span class=\"token punctuation\">:</span>\n              <span class=\"token key atrule\">cpu</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span>\n              <span class=\"token key atrule\">memory</span><span class=\"token punctuation\">:</span> 1Gi\n            <span class=\"token key atrule\">requests</span><span class=\"token punctuation\">:</span>\n              <span class=\"token key atrule\">cpu</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span>\n              <span class=\"token key atrule\">memory</span><span class=\"token punctuation\">:</span> 1Gi\n          <span class=\"token key atrule\">ports</span><span class=\"token punctuation\">:</span>\n            <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">containerPort</span><span class=\"token punctuation\">:</span> <span class=\"token number\">8080</span>\n          <span class=\"token key atrule\">env</span><span class=\"token punctuation\">:</span>\n            <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> NC_DB\n              <span class=\"token key atrule\">value</span><span class=\"token punctuation\">:</span> mysql2<span class=\"token punctuation\">:</span>//localhost<span class=\"token punctuation\">:</span>3306<span class=\"token punctuation\">?</span>u=root<span class=\"token important\">&amp;p=root&amp;d=noco</span></code></pre></div>\n<br/>\n<br/>\n<h2>✔️ 주요기능 사용해보기 (0.109.5 Releases 기준)</h2>\n<h3>1. Super Admin 계정 생성</h3>\n<ul>\n<li>처음 접속하면 super admin 계정을 생성하기 위한 sign up 화면이 뜬다.</li>\n<li>패스워드는 최소 8글자 및 한개 이상의 대문자, 숫자, 특수문자를 포함해야 한다.</li>\n<li>super admin 계정 생성 버튼을 누르면 계정 생성과 동시에 로그인이 되며, project 목록을 볼 수 있는 대시보드로 이동된다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/5b712/01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 40%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAABYlAAAWJQFJUiTwAAABX0lEQVQoz1WRPU4DMRCFc2MaDkFFzw2QKBA0uQACkY4CUUAQQpCA0O5md732+vcxb6yIYOnJsj3zzbzxYrIZVjSajPVrgJ14Lphk52r6Bg/Pd3h6u4GxE2IErJM4G5BLQUqMDZh9Vi0IC6HACGB13yHMSR7kbJICXz4fcXZ1jIvlEdrdF4SBbtdjGEYB17xpsvAhwUveInh2UgSSsN10SDEjZwZW4Pt2jfPLEyyvT9F3PxIpHVonMR6bbcTHJsDNRmBeG1s4F+HEQggVQAsxZrUsXLBg892h7x2S1C7SIpVzHUkpWbodBDhXoLUR8+ylSkLTJgUSzlEwJwjcjJPY8/pGN3so7bO4MVZzquVQtNKu97hdsfWsweyQu85zqoqxxh4u3vFDKc5UOzTGo+sGjOOAtjX6awoUz0ESrMvioKgldnko3vGNYnGZIeeVVPxZ7rTrXNHPOVx/Vv8L2Av4BVFlbJtCgJnaAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/d9199/01.png\"\n        srcset=\"/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/8ff5a/01.png 240w,\n/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/e85cb/01.png 480w,\n/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/d9199/01.png 960w,\n/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/07a9c/01.png 1440w,\n/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/29114/01.png 1920w,\n/devHistoryBlog/static/3491ca6b8026663ab1c25668c0334fe7/5b712/01.png 2692w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br/>\n<h3>2. Project 생성</h3>\n<ul>\n<li><code class=\"language-text\">New Project</code> 버튼을 클릭하여 project를 생성한다.</li>\n<li>이때 기본적으로 base DB가 생성되며, 생성된 프로젝트 내에서 기존 DB를 연결할 수 있다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/afa16/02.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 26.666666666666668%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAw0lEQVQY04WQzQrCMBCE+/6v40Xw4knPgiIKIoreTCq0idn8jbtJKuLFhWG3w+7XaTtw5ZylwVqLvu+htQaRx3fFmNlLIF93jyeP9eqJFKsn8qxOYCmlsjSOI5RSLM1egNIJ2z3xnAtQuuzmHHG7P3A6XOHJYQrlAwNlwTnHBxETvAXG+UJYLE2BRYaJbcwLw2DLjjwHhojkVnpXh/CBERFH9y11bqqHApYu3mZHmM1NTZ9q+vLJ+CkBTb9AUrSxvfC/3uVxh7WPDpMIAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"02\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/d9199/02.png\"\n        srcset=\"/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/8ff5a/02.png 240w,\n/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/e85cb/02.png 480w,\n/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/d9199/02.png 960w,\n/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/07a9c/02.png 1440w,\n/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/29114/02.png 1920w,\n/devHistoryBlog/static/eb47fb3f0d4dab48db71c0943abf5808/afa16/02.png 2602w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br/>\n<h3>3. 기존 DB 연결</h3>\n<ul>\n<li><code class=\"language-text\">Add new table</code> 옆 three-dot 메뉴버튼을 클릭하면 <code class=\"language-text\">connect to new datasource</code> 항목에서 연결할 DB 종류를 선택한다.</li>\n<li>연결할 DB 정보 기입 후 <code class=\"language-text\">test database connection</code> 버튼을 클릭하여 연결 확인 후 생성한다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/11f80/03.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 51.66666666666666%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAABYlAAAWJQFJUiTwAAABH0lEQVQoz3VSy27DMAzL///RLgN22HHAfmDYtdiy1M/4Eces6caZ26YCCMcqTVGqhtNpxs+vh50XLMuCGCO0WTGdE0JI8N7VHCPEXDgJfeScbzAIaSGVK8Rrgg+UXjH+JcyuYLZF1NfHxhhM04R1XWtxng+CFAohI5aTBD7SWlVXJDCXUtrd8K6UghCiFJvrbz2G3j7J1lqYgr4luunvLErQ+aEgSXTEBAXHcdzn1gvym1GLFkEaaEjb/HfBVsGVNuYNvLd59YItl/N1hiHEMgYN5zyGNsxGnISs80lpPRRs3O3A13fEy6vG27vBx6e7FaTIKFRpyfR78eCw/1fv41awuBFSQ0oDrhs3IMZnDvPxHt63rLXHWfxDCHco+Cwu3XESYv/qTxMAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"03\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/d9199/03.png\"\n        srcset=\"/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/8ff5a/03.png 240w,\n/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/e85cb/03.png 480w,\n/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/d9199/03.png 960w,\n/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/07a9c/03.png 1440w,\n/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/29114/03.png 1920w,\n/devHistoryBlog/static/c287835ff177af28d6e53d79bbed7fb8/11f80/03.png 2498w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>연결을 완료하면, 이미 생성된 테이블 및 데이터를 볼 수 있다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/37114/04.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 26.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAuUlEQVQY051QSQoDMQzL/z9Zul1aGGbirHYc1Q6llx4KDQhHkRc5Yd8rcmYwD4gISmnYth1EESwDMXa0PtB7txxe8DzntdYPb289RCKklOFHVZGt4RET9oOsoCHljEhpwYelVJbmkazuiLRiLnUhtFZNJJTqTedqyqLorJh2V53Lib/POc2FwE14NGpDyvs+MYYiXO+M07nhcmt4PIdNFBPGWld+gL+4IBCpraA2dZplX5nNHduf/IcXRaaGOGe2+hcAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"04\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/d9199/04.png\"\n        srcset=\"/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/8ff5a/04.png 240w,\n/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/e85cb/04.png 480w,\n/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/d9199/04.png 960w,\n/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/07a9c/04.png 1440w,\n/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/29114/04.png 1920w,\n/devHistoryBlog/static/7e3e5929305002fe793b2cd4206dc522/37114/04.png 2300w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br/>\n<h3>4. 계정&#x26;권한</h3>\n<ul>\n<li>nocoDB는 계정 관리 및 권한 관리 기능을 가지고 있다.</li>\n<li><code class=\"language-text\">Team &amp; Auth</code> 탭에서 사용자 생성 및 권한 부여를 할 수 있다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/502e42e97baf0912a65397006de11850/0f7bd/05.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 23.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA7ElEQVQY01WQ3W7DIAyF8/4PtJu9xKTdVEpXUW35rTICTQIEzKlNt3ZDOgLbsvmOq2UhOBcwzwbbtiGlhBgTAMLbu0P9Efid0fcD2rZF0zSYpgnGGO6ZYUT8NtZiHEdUsyF4H7GuC98ev2dZCW0fOZf5kwitdak755Bzxt+TBYBTKwNVITgmio9i4CZKAYfa4+X1ikknHhCLgxBCGUpExYmIEuGzN/jqNya3qMTmvu/lV5HTF5jpGz49KaRu2ZKAyTqI/hNeeNDViksmfGD/DHzGYIJ7LCSyP6VUUdd1GIbhLt7b+XCEqhVO6owbMmmCvprUgLIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"05\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/502e42e97baf0912a65397006de11850/d9199/05.png\"\n        srcset=\"/devHistoryBlog/static/502e42e97baf0912a65397006de11850/8ff5a/05.png 240w,\n/devHistoryBlog/static/502e42e97baf0912a65397006de11850/e85cb/05.png 480w,\n/devHistoryBlog/static/502e42e97baf0912a65397006de11850/d9199/05.png 960w,\n/devHistoryBlog/static/502e42e97baf0912a65397006de11850/07a9c/05.png 1440w,\n/devHistoryBlog/static/502e42e97baf0912a65397006de11850/29114/05.png 1920w,\n/devHistoryBlog/static/502e42e97baf0912a65397006de11850/0f7bd/05.png 2540w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li><code class=\"language-text\">invite</code> 버튼을 클릭하면 초대 url이 생성되며, 해당 url 을 통해 계정생성이 가능하다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/721826786fd77e290fa9840f61b1dff7/e4611/06.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 35.833333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAABYlAAAWJQFJUiTwAAAA4ElEQVQoz32RbW+EIBCE7///Qd++KGCj9sQTC4oC04W7Nqm5SvJkloGdhOUGWiGEKGCMoW1bdF2XtO97KKUwzzOh/hB9KSfUdf3bH/V2DnzMD8hpxChHrJvB1fLBg3MO7/37QM4F7ptArxkGQ7X9SDqsAp9rS2e0J43efAxQxx2MN1eBHItWmNQEvX3BWA0TldAvjazku7Dj8JYC2f+BQghobWhGC6ylhsMRz8sIJ1Ifrp/cNA0Ne8E4SpqhpHCNfd9Twzucc+lTLgOzLENRFImyLFFVVdIz0c/zPNU/GZFvbpAbXqnSy9IAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"06\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/721826786fd77e290fa9840f61b1dff7/d9199/06.png\"\n        srcset=\"/devHistoryBlog/static/721826786fd77e290fa9840f61b1dff7/8ff5a/06.png 240w,\n/devHistoryBlog/static/721826786fd77e290fa9840f61b1dff7/e85cb/06.png 480w,\n/devHistoryBlog/static/721826786fd77e290fa9840f61b1dff7/d9199/06.png 960w,\n/devHistoryBlog/static/721826786fd77e290fa9840f61b1dff7/e4611/06.png 1298w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>invite url 로 접근하면 해당 계정에 대한 sign up 이 가능해진다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/9d53e/07.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 30.83333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAABYlAAAWJQFJUiTwAAABBElEQVQY01WQzUoEMRCE8/7P42UvXj14ERYUhPWgsKxKHGcyyeSvu+xOsrPYEKanQ31dKVMrQ+v05nF8sq1PicDMSJnwbSsWV7FtAc45hBBQa90PM7VzfI6wPxmGqQMvF4f301frS7kB7URwKyHFCO89onz1roO6tgrDBxIdw8SYxFGWS9kGApEAKw8RNxellF2spe31L8aCw33A3WHF70ww25bQoeoIAmTkXAeAmyN95nWBTkvO2Own1sVjCUWck8ByM2LGTry8Bjw8+tZrrjSi0GdO0/TPZRTgx/mM1XmESE2jEWiZUqo4ypjnVYRewpdNMutABdMI/xYDab57AmNGPdM/ZhXVIFZwy/8AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"07\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/d9199/07.png\"\n        srcset=\"/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/8ff5a/07.png 240w,\n/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/e85cb/07.png 480w,\n/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/d9199/07.png 960w,\n/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/07a9c/07.png 1440w,\n/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/29114/07.png 1920w,\n/devHistoryBlog/static/ac7ce11bac01168d082fd1784bcc37cc/9d53e/07.png 2542w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br/>\n<h3>5. 쿼리 API 사용</h3>\n<ul>\n<li>생성된 테이블에 대한 쿼리를 API를 사용하여 할 수 있다.</li>\n<li>api에 대한 swagger도 제공해주는데, 이는  프로젝트 → <code class=\"language-text\">swagger: REST APIs</code> 버튼을 클릭하면 접속할 수 있다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/50517/08.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 55.00000000000001%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB9UlEQVQoz3VS7Y6bMBDk/V/n/vUh2krVtbooiUJCAhiDjW3Mt6dj5yJdf3Sl0S4SHs/MOjufDfKLQS08tB4xzzOmaSIWtN3CvmPbNnSdhvUtAnaEACJ84jm/KqtrjbpSkLLHMIxY1wXLsrBvMDZesCZCpQ3GafhC9C/WwIuJzHsH5wyM0Tw84WtN0/gkJ3TbYvQj/ldumzAQmbWOVvsEpTQJVuz7TgT4ccIe1fkVP/IGUlkoqm7NgLYf0A8kmbcEP++MZEEmaotbYXDJmeXNoKwG2vPolIfiISaEC6N4u1Y41w0OlcDHo8afosSpaXHrmT8vrog758wYmwJ/Qn0qDAlxQbGUMXg/nVDLFlVEI/EQTZpF20FbSzh0fY9Ma02rHQw/eiIw2FfF/KJC3Tr8/pmjfEjciwbFTeCaV+m7EZpnfYJqqdC5mKHmhodE8tparJE2EDbkFng7zrjUCsdK41gqfBQSJ865dKjdBuEDyn58Ehpaiuri89hDSEuJpH7kVmm98Arfru8kLEn4YJYlDvdb6reuQTNayMmhMipu2SaFkTDmt6wrZlrdSBoVkg+2kzj/+g5Rlagfd4jygbIoUm/qCqoRMIyt539ZtBoJo9KoKqnct6Ry8J6PNWAyParTgRl16KRExzcphUjdaAVHh5MfMFiDv8kATJVr+HESAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"08\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/d9199/08.png\"\n        srcset=\"/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/8ff5a/08.png 240w,\n/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/e85cb/08.png 480w,\n/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/d9199/08.png 960w,\n/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/07a9c/08.png 1440w,\n/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/29114/08.png 1920w,\n/devHistoryBlog/static/e1ccbde9bad849873434e3833efc80ee/50517/08.png 2060w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>API를 사용하기 위해서는 Authorization이 필요한데, 이는 프로젝트 → <code class=\"language-text\">Team &amp; Settings</code> → <code class=\"language-text\">API Tokens Management</code> 탭에서 token을 생성하여 사용하면 된다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/50517/09.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 33.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAABYlAAAWJQFJUiTwAAAA/UlEQVQoz4VQu04EMQzc//8pOmoaGiQ4UUCxT91m87ATZy72khO65kaynDiT8djDPO+IkSBSECKjFAGR4Oc3YpwKrrveCSEE5FwQU4UP0ngVjxARDNu6IaVkBSIVbJ9ixecl4vJNGOdi7957MBe4Q6wJc0WtYlwfKsjuFcOyTNi2tcmdBO0iUrHvrglRq+EvqmXpufFSM/D2XvDySvj4YjM1jOMV8+LaKNy6sRH1s44YY7RGOWcch7e6vusK1LUGMxmvlHwKruvRdleaZd0h2cgKzRqns3pv1M+PoXUTnKbRHGhBcxfs6MRn6GsZnHM2ArOOnO6C3c3/87NQ3AAnwCWKrAsJwgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"09\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/d9199/09.png\"\n        srcset=\"/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/8ff5a/09.png 240w,\n/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/e85cb/09.png 480w,\n/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/d9199/09.png 960w,\n/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/07a9c/09.png 1440w,\n/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/29114/09.png 1920w,\n/devHistoryBlog/static/a38007eb0e81ab79aceff835c491721b/50517/09.png 2060w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>생성한 token 은 swagger 페이지에서 우측에 <code class=\"language-text\">Authorize</code> 버튼 클릭 → xcToken 에 붙여넣기 → <code class=\"language-text\">Authorize</code> 버튼 클릭을 하여 사용한다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/1ffbd/10.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 57.08333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAABgElEQVQoz31SCXKDMAzk/z/MMRMI4XbAgLlsYCuJkjZpUjFiPPJ6vSvLW9cVn1LbDulY42hSJING0CtZ29mBAFjenPHwTwyrQ70MyKcG2vUoZoPUNv8dgVfXNe73O8qyRFVV0Fo/ct+bpgmm61AUBUp1h1LqKRnDe03TwDscjgiCKy6XAGmaCTEDOJnU932qpzidz5LH05mwPvI8Q5Ztmec5brcbTrTnMbhpDIZxfG97GOh2hSiKYEyHtjUf7WZE7DEzg5ZlkaZys+XjNUXbtmInDENqicY4ThtGsHg8hnMOSZJsCiWo2NoB1WTQkZJ5np8Jr1cIA8U4W1Q0AdxXa63UmDBlwph+XddLumWGXZxssuJXhaxOSGhsJsIx2Y5zJCAhcWQ5Eiv8kvi2uQn+a1nrWi5eX3G/LUdxglw19FolwkzBuJ9bOfq+3wi514YtuoeivS17pBkpDIJAFJZlhUhluOYxkjiWseE5jIiICTdcJbNW0Wjxq7OivVYSnl18AX4UT+cEZM3eAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"10\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/d9199/10.png\"\n        srcset=\"/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/8ff5a/10.png 240w,\n/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/e85cb/10.png 480w,\n/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/d9199/10.png 960w,\n/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/07a9c/10.png 1440w,\n/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/29114/10.png 1920w,\n/devHistoryBlog/static/66582fa2d6decf08081a0895fe469560/1ffbd/10.png 2108w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>curl 을 이용할 경우, xc-token 해더값에 발급한 토큰을 넣어 사용한다.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">curl</span> -X <span class=\"token string\">'GET'</span> <span class=\"token punctuation\">\\</span>\n  <span class=\"token string\">'http://localhost:18080/api/v1/db/data/v1/elsie-project/MemberTable?limit=25&amp;shuffle=0&amp;offset=0'</span> <span class=\"token punctuation\">\\</span>\n  -H <span class=\"token string\">'accept: application/json'</span> <span class=\"token punctuation\">\\</span>\n  -H <span class=\"token string\">'xc-token: KDOxfcagx7dgp0XcP07Cc0gBrAvI35eJ84ipppXS'</span></code></pre></div>\n<br/>\n<h3>6. webhook 사용</h3>\n<ul>\n<li>nocoDB에서 발생된 insert, update, delete 이벤트 감지가 필요할 경우, webhook을 이용하면 된다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/6f175/11.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 41.66666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAABYlAAAWJQFJUiTwAAABK0lEQVQoz2WR207EMAxE+/8fxgMPSHwBvIF62SRt09wzjJPNCpZIo9SVczy2p5wTYkjYdYZW/HYJwXuEEBBjbHetharYd4N5nqGUwrZt7XbOw3uLl9cLb+8eU2Fi8BG7stgWBXMzcJdjUofKHWOCnBAL416olNIkhUS5VMYVE8AgR5z2hNa6PchMzDm3ByllxNSB1mbK8l+PB0wkHH5gMnuG0gSeJ2XxfMod3hzScQi+P0b9AxwisGC9BbozWJalgaWloeaYQDGhtOPcHLvJlLTPmcfQQGMEk1SWxRjTB35dVwNIW3KP5Qjw43PG17clWEwk5sa2sAF7AGXoB50dx0FAvLdGEeS4FJmjnHVdYLR6jEOM/Gt5DPd3lWeNHOlCFifuxUR3PpbSc34A0wlyT257snoAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"11\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/d9199/11.png\"\n        srcset=\"/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/8ff5a/11.png 240w,\n/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/e85cb/11.png 480w,\n/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/d9199/11.png 960w,\n/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/07a9c/11.png 1440w,\n/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/29114/11.png 1920w,\n/devHistoryBlog/static/98169f63d3979f4e09162274d5941990/6f175/11.png 2036w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<ul>\n<li>아래 sample payload에 대한 테스트도 가능하니, 참고하여 이벤트 트리거를 개발하면 된다.</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/9e7e4/12.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 25.83333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA10lEQVQY042RTW7EIAxGc//bdNNzdFep3VVRW1VJSPgNGHg1GanqbsbwZDDmMzKT9459NyzLon5nWVeMEueZ9P3B+8sXT8+OdAq9CXFbSfagpaTEP6ru87EzpXQSQsRai/f+IijFbMixsX4evL4lziw0uQk66wgxU3KhaqxXoRYhGcN0auVRPWdNKIXWGrVWRL20TqcBemHE9VyCxy0r84/lCJnWG32gI+vLJ+5Z19lvy1oyOQaCtsbYeJX6b8VZpq7Zj3AJSrn6lLQdfjMq4C6RgehfjPgv9QCFVSNcZzEAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"12\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/d9199/12.png\"\n        srcset=\"/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/8ff5a/12.png 240w,\n/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/e85cb/12.png 480w,\n/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/d9199/12.png 960w,\n/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/07a9c/12.png 1440w,\n/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/29114/12.png 1920w,\n/devHistoryBlog/static/3b30f8e420d52d025468b74517b1ed92/9e7e4/12.png 2056w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<br/>\n<h3>7. 그외..</h3>\n<ul>\n<li>그외 더 많은 기능들을 제공하고 있으니, 더 필요한 기능들에 대해서는 아래 nocoDB 문서를 참고한다.</li>\n<li><a href=\"https://docs.nocodb.com/\">https://docs.nocodb.com/</a></li>\n</ul>","fields":{"tagSlugs":["/tags/noco-db/"],"slug":"/works/posts/2023-07-30--001"},"frontmatter":{"title":"Aritable 의 대체 오픈소스 NocoDB","tags":["nocoDB"],"date":"2023-07-30","description":""}}},"pageContext":{"slug":"/works/posts/2023-07-30--001"}},"staticQueryHashes":[]}