{"componentChunkName":"component---src-templates-blog-post-js","path":"/etc/jamstack-이란/","result":{"data":{"site":{"siteMetadata":{"title":"Bottlehs Tech Blog","description":"웹·앱·AI 개발자 전병훈(bottlehs)의 기술 블로그. AI·LLM, JavaScript·Vue, Spring Boot, 알고리즘, 블록체인 실무 가이드를 다룹니다","siteUrl":"https://www.bottlehs.dev","author":{"name":"Jeon Byung Hun","summary":"개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트"},"social":{"github":"bottlehs","codepen":"bottlehs"}}},"markdownRemark":{"id":"15fd0a8e-1cf8-5353-b392-507d300bef78","excerpt":"JAMStack 이란 JAMStack Jamstack은 Javascript, API 및 Markup의 약자이며 2015 년 Netlify의 CEO 인 Mathias Biilmann…","html":"<p><img src=\"/assets/jamstack-cover.png\" alt=\"JAMStack 이란\" title=\"JAMStack 이란\"></p>\n<h2 id=\"jamstack\" style=\"position:relative;\"><a href=\"#jamstack\" aria-label=\"jamstack permalink\" class=\"anchor-header 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>JAMStack</h2>\n<p>Jamstack은 Javascript, API 및 Markup의 약자이며 2015 년 Netlify의 CEO 인 Mathias Biilmann이 처음 만들어졌습니다.</p>\n<h3 id=\"웹-개발-구조\" style=\"position:relative;\"><a href=\"#%EC%9B%B9-%EA%B0%9C%EB%B0%9C-%EA%B5%AC%EC%A1%B0\" aria-label=\"웹 개발 구조 permalink\" class=\"anchor-header 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>웹 개발 구조</h3>\n<h4 id=\"전통적인-웹\" style=\"position:relative;\"><a href=\"#%EC%A0%84%ED%86%B5%EC%A0%81%EC%9D%B8-%EC%9B%B9\" aria-label=\"전통적인 웹 permalink\" class=\"anchor-header 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>전통적인 웹</h4>\n<p>아래는 전통적인 웹 구조 이다.</p>\n<p><img src=\"/assets/jamstack-conventional-web.png\" alt=\"전통적인 웹\" title=\"전통적인 웹\"></p>\n<p>브라우저에서 데이터를 요청하면 DB 서버에 접근하여 요청한 데이터를 가져와 화면에 보여준다. 웹 개발 시 데이터 저장 및 출력을 어떻게 할지도 전부 설계를 하여 개발을 진행해야 하고, 관리도 필요하다.</p>\n<h4 id=\"serverless-웹\" style=\"position:relative;\"><a href=\"#serverless-%EC%9B%B9\" aria-label=\"serverless 웹 permalink\" class=\"anchor-header 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>Serverless 웹</h4>\n<p>아래는 서버리스 웹 구조 이다.</p>\n<p><img src=\"/assets/jamstack-serverless.png\" alt=\"Serverless 웹\" title=\"Serverless 웹\"></p>\n<p><img src=\"/assets/jamstack-serverless2.png\" alt=\"Serverless 웹\" title=\"Serverless 웹\"></p>\n<p>브라우저에서 데이터를 요청하면 DB 서버에 접근하여 요청한 데이터를 가져와 화면에 보여준다는 건 동일하다. 하지만 다른 부분은 데이터베이스 서비스 API를 사용한다는 것이다.\n즉 웹 개발 시 DB, API 구조에 대해서는 전혀 고려하지 않고 원하는 데이터를 데이터베이스 서비스에 저장하고 필요에 따라 가져다 사용하면 된다. 서버 구성에 대해 신경 쓸 필요가 없고 관리도 필요 없다.</p>\n<h3 id=\"jamstack이란\" style=\"position:relative;\"><a href=\"#jamstack%EC%9D%B4%EB%9E%80\" aria-label=\"jamstack이란 permalink\" class=\"anchor-header 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>JAMStack이란</h3>\n<ul>\n<li>동적 요소 처리를 위한 JavaScript</li>\n<li>재사용 가능한 API</li>\n<li>Prebuilt Pages</li>\n</ul>\n<p>서버 없이 배포 운영되는 모던 웹 개발 구조</p>\n<p><img src=\"/assets/jamstack-structure.png\" alt=\"JAMStack이란\" title=\"JAMStack이란\"></p>\n<h4 id=\"jjavascript\" style=\"position:relative;\"><a href=\"#jjavascript\" aria-label=\"jjavascript permalink\" class=\"anchor-header 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>J(JavaScript)</h4>\n<ul>\n<li>동적인 요소 처리</li>\n<li>Front-End 라이브러리, 프레임워크</li>\n<li>API 요청</li>\n</ul>\n<h4 id=\"aapi\" style=\"position:relative;\"><a href=\"#aapi\" aria-label=\"aapi permalink\" class=\"anchor-header 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>A(API)</h4>\n<ul>\n<li>서버 또는 DB에서 담당하던 역할</li>\n<li>추상화된 재사용 가능 API</li>\n<li>Cloud Function, Third party APIs</li>\n</ul>\n<h4 id=\"mmarkup\" style=\"position:relative;\"><a href=\"#mmarkup\" aria-label=\"mmarkup permalink\" class=\"anchor-header 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>M(Markup)</h4>\n<ul>\n<li>문서 내용의 시각적 표현</li>\n<li>빌드 시 페이지 생성\n(Prebuilt Pages)</li>\n</ul>\n<h3 id=\"jamstack의-장점\" style=\"position:relative;\"><a href=\"#jamstack%EC%9D%98-%EC%9E%A5%EC%A0%90\" aria-label=\"jamstack의 장점 permalink\" class=\"anchor-header 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>JAMStack의 장점</h3>\n<ul>\n<li>높은 안정성</li>\n<li>빠른 성능</li>\n<li>확장성 및 낮은 비용</li>\n<li>쉬운 자동화</li>\n</ul>\n<h4 id=\"높은-안정성\" style=\"position:relative;\"><a href=\"#%EB%86%92%EC%9D%80-%EC%95%88%EC%A0%95%EC%84%B1\" aria-label=\"높은 안정성 permalink\" class=\"anchor-header 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>높은 안정성</h4>\n<p>API들은 마이크로 서비스로 추상화되어 외부의 공격영역이 줄어들어 안정성이 높다.</p>\n<p><img src=\"/assets/jamstack-advantage-1.png\" alt=\"높은 안정성\" title=\"높은 안정성\"></p>\n<h4 id=\"빠른-성능\" style=\"position:relative;\"><a href=\"#%EB%B9%A0%EB%A5%B8-%EC%84%B1%EB%8A%A5\" aria-label=\"빠른 성능 permalink\" class=\"anchor-header 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>빠른 성능</h4>\n<p>배포타임에 생성해도 되는 페이지들을 요청시마다 생성할 필요가 없고, CDN 에서 받은 것 만큼 시간을 절약 할수 있다.</p>\n<p><img src=\"/assets/jamstack-advantage-2.png\" alt=\"빠른 성능\" title=\"빠른 성능\"></p>\n<h4 id=\"확장성-및-낮은-비용\" style=\"position:relative;\"><a href=\"#%ED%99%95%EC%9E%A5%EC%84%B1-%EB%B0%8F-%EB%82%AE%EC%9D%80-%EB%B9%84%EC%9A%A9\" aria-label=\"확장성 및 낮은 비용 permalink\" class=\"anchor-header 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>확장성 및 낮은 비용</h4>\n<p>배포해야할 양이 많고 세계 어디서든 서비스를 해야한다고 하면 스케일링 신경을 써야 한다. JSAMStack 은 CDN을 사용하여 데이터를 받아 올수 있기 때문에 요금제에 따라 효율적으로 CDN 서버를 구축하면 비용을 줄일수 있다.</p>\n<p><img src=\"/assets/jamstack-advantage-3.png\" alt=\"확장성 및 낮은 비용\" title=\"확장성 및 낮은 비용\"></p>\n<h4 id=\"쉬운-자동화\" style=\"position:relative;\"><a href=\"#%EC%89%AC%EC%9A%B4-%EC%9E%90%EB%8F%99%ED%99%94\" aria-label=\"쉬운 자동화 permalink\" class=\"anchor-header 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>쉬운 자동화</h4>\n<p>Netlify, AWS Lambda 등을 활용하면 배포를 자동화 할수 있다.</p>\n<p><img src=\"/assets/jamstack-advantage-4.png\" alt=\"쉬운 자동화\" title=\"쉬운 자동화\"></p>\n<h2 id=\"데이터베이스-서비스\" style=\"position:relative;\"><a href=\"#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%9C%EB%B9%84%EC%8A%A4\" aria-label=\"데이터베이스 서비스 permalink\" class=\"anchor-header 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>데이터베이스 서비스</h2>\n<h3 id=\"faunadb\" style=\"position:relative;\"><a href=\"#faunadb\" aria-label=\"faunadb permalink\" class=\"anchor-header 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>FaunaDB</h3>\n<p>FaunaDB는 GraphQL을 사용하는 트랜잭션 데이터베이스서비스</p>\n<h3 id=\"dynamodb\" style=\"position:relative;\"><a href=\"#dynamodb\" aria-label=\"dynamodb permalink\" class=\"anchor-header 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>DynamoDB</h3>\n<p>DynamoDB는 키-값 및 문서 데이터 구조를 지원하는 완전 관리 형 독점 NoSQL 데이터베이스 서비스</p>\n<h2 id=\"static-site-generator\" style=\"position:relative;\"><a href=\"#static-site-generator\" aria-label=\"static site generator permalink\" class=\"anchor-header 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>Static Site Generator</h2>\n<p>JAMStack 웹 개발에 사용되는 정적 사이트 생성기(Static Site Generator) 의 대표적인 프레임워크는 아래와 같다.</p>\n<h3 id=\"next\" style=\"position:relative;\"><a href=\"#next\" aria-label=\"next permalink\" class=\"anchor-header 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>Next</h3>\n<p><img src=\"/assets/jamstack-next-logo.png\" alt=\"Next\" title=\"Next\"></p>\n<p><a href=\"https://nextjs.org/\" title=\"https://nextjs.org/\">https://nextjs.org/</a></p>\n<p>Next.js는 서버 측 렌더링 및 React 기반 웹 애플리케이션을위한 정적 웹 사이트 생성과 같은 기능을 지원하는 오픈 소스 React 프런트 엔드 개발 웹 프레임워크</p>\n<ul>\n<li>React.js 기반의 정적 사이트 생성기</li>\n<li>더욱 빠른 페이지 로드를 위한 코드 스플리팅 자동화</li>\n<li>HMR을 지원하는 웹팩 기반 환경</li>\n<li>Express나 Node.js와 같은 http 서버와 함께 구현 가능</li>\n<li>Babel, Webpack 설정 커스터마이징 가능</li>\n</ul>\n<h3 id=\"gatsby\" style=\"position:relative;\"><a href=\"#gatsby\" aria-label=\"gatsby permalink\" class=\"anchor-header 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>Gatsby</h3>\n<p><img src=\"/assets/jamstack-gatsby-logo.png\" alt=\"Gatsby\" title=\"Gatsby\"></p>\n<p><a href=\"https://www.gatsbyjs.com/\" title=\"https://www.gatsbyjs.com/\">https://www.gatsbyjs.com/</a></p>\n<p>Gatsby.js란? Gatsbyjs는 React 기반의 정적 페이지 생성 프레임워크</p>\n<ul>\n<li>React.js 기반의 정적 사이트 생성기</li>\n<li>다양한 데이터 타입 지원</li>\n<li>거대한 플러그인 시스템</li>\n<li>GraphQL을 통한 데이터 조회</li>\n</ul>\n<h3 id=\"nuxt\" style=\"position:relative;\"><a href=\"#nuxt\" aria-label=\"nuxt permalink\" class=\"anchor-header 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>Nuxt</h3>\n<p><img src=\"/assets/jamstack-nuxt-logo.png\" alt=\"Nuxt\" title=\"Nuxt\"></p>\n<p><a href=\"https://nuxtjs.org/\" title=\"https://nuxtjs.org/\">https://nuxtjs.org/</a></p>\n<p>Nuxt.js는 Vue.js, Node.js, Webpack 및 Babel.js를 기반으로하는 무료 오픈 소스 웹 애플리케이션 프레임워크</p>\n<ul>\n<li>Vue.js 기반의 정적 사이트 생성기</li>\n<li>pages 폴더 기반의 자동 라우팅 설정</li>\n<li>코드 스플리팅</li>\n<li>서버 사이드 렌더링</li>\n<li>비동기 데이터 요청 속성</li>\n<li>ES6/ES6+ 변환</li>\n<li>웹팩을 비롯한 기타 설정</li>\n</ul>\n<h2 id=\"jamstack-생태계\" style=\"position:relative;\"><a href=\"#jamstack-%EC%83%9D%ED%83%9C%EA%B3%84\" aria-label=\"jamstack 생태계 permalink\" class=\"anchor-header 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>JAMStack 생태계</h2>\n<h3 id=\"cms-function-hosting\" style=\"position:relative;\"><a href=\"#cms-function-hosting\" aria-label=\"cms function hosting permalink\" class=\"anchor-header 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>CMS, Function, Hosting</h3>\n<h4 id=\"cms\" style=\"position:relative;\"><a href=\"#cms\" aria-label=\"cms permalink\" class=\"anchor-header 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>CMS</h4>\n<p>정적 콘텐츠 관리</p>\n<ul>\n<li>Forestry.io</li>\n<li>Netlify CMS</li>\n<li>Sanity.io</li>\n<li>Contentful</li>\n</ul>\n<h4 id=\"function\" style=\"position:relative;\"><a href=\"#function\" aria-label=\"function permalink\" class=\"anchor-header 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>Function</h4>\n<p>자동 빌드 및 배포</p>\n<ul>\n<li>AWS Lambda</li>\n<li>Azure Functions</li>\n<li>Netlify</li>\n<li>Cloud Functions</li>\n</ul>\n<h4 id=\"hosting\" style=\"position:relative;\"><a href=\"#hosting\" aria-label=\"hosting permalink\" class=\"anchor-header 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>Hosting</h4>\n<p>웹 사이트 호스팅</p>\n<ul>\n<li>Github Pages</li>\n<li>Firebase</li>\n<li>Netlify</li>\n<li>Azure</li>\n</ul>\n<h3 id=\"동적-콘텐츠\" style=\"position:relative;\"><a href=\"#%EB%8F%99%EC%A0%81-%EC%BD%98%ED%85%90%EC%B8%A0\" aria-label=\"동적 콘텐츠 permalink\" class=\"anchor-header 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>동적 콘텐츠</h3>\n<p>JAMStack 은 정정페이지를 생성하여 호스팅 하는 구조이기 때문에 동적인 콘텐츠 노출,생성에 문제점이 있다. 이러한 부분을 보완 할수 있는 다양한 서드파티 API 들이 존재하며, 필요에 따라 활용이 가능 하다.</p>\n<ul>\n<li>동적 검색 결과</li>\n<li>쇼핑몰 장바구니</li>\n<li>사용자 프로필</li>\n<li>폼 빌더</li>\n<li>실시간 댓글</li>\n</ul>\n<h3 id=\"third-party-apis\" style=\"position:relative;\"><a href=\"#third-party-apis\" aria-label=\"third party apis permalink\" class=\"anchor-header 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>Third party APIs</h3>\n<p>검색, 쇼핑, 결제 등 다양한 Third party APIs</p>\n<h4 id=\"algolia\" style=\"position:relative;\"><a href=\"#algolia\" aria-label=\"algolia permalink\" class=\"anchor-header 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>Algolia</h4>\n<p><a href=\"https://www.algolia.com/\" title=\"https://www.algolia.com/\">https://www.algolia.com/</a></p>\n<ul>\n<li>검색 API 서비스</li>\n<li>다양한 언어 및 플랫폼 지원(Android, iOS, JavaScript, Go..)</li>\n<li>빠르고 강력한 검색 기능</li>\n<li>무료 버전 제공(제한적인 검색 횟수)</li>\n</ul>\n<h4 id=\"disqus\" style=\"position:relative;\"><a href=\"#disqus\" aria-label=\"disqus permalink\" class=\"anchor-header 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>DISQUS</h4>\n<p><a href=\"https://disqus.com/\" title=\"https://disqus.com/\">https://disqus.com/</a></p>\n<ul>\n<li>댓글 서비스</li>\n<li>다양한 언어 지원</li>\n<li>무료 버전 제공(광고포함)</li>\n</ul>\n<h4 id=\"stripe\" style=\"position:relative;\"><a href=\"#stripe\" aria-label=\"stripe permalink\" class=\"anchor-header 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>Stripe</h4>\n<p><a href=\"https://stripe.com/\" title=\"https://stripe.com/\">https://stripe.com/</a></p>\n<ul>\n<li>결제 서비스</li>\n<li>다양한 언어 지원</li>\n<li>쉬운 설치</li>\n</ul>\n<h2 id=\"jamstack-현재와-한계점-및-gatsby-cloud\" style=\"position:relative;\"><a href=\"#jamstack-%ED%98%84%EC%9E%AC%EC%99%80-%ED%95%9C%EA%B3%84%EC%A0%90-%EB%B0%8F-gatsby-cloud\" aria-label=\"jamstack 현재와 한계점 및 gatsby cloud permalink\" class=\"anchor-header 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>JAMStack 현재와 한계점 및 Gatsby Cloud</h2>\n<h3 id=\"현재\" style=\"position:relative;\"><a href=\"#%ED%98%84%EC%9E%AC\" aria-label=\"현재 permalink\" class=\"anchor-header 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>현재</h3>\n<ul>\n<li>빠른 성능과 높은 안정성</li>\n<li>다양한 정적 사이트 생성기</li>\n<li>\n<p>훌륭한 생태계</p>\n<ul>\n<li>Cloud Function</li>\n<li>Third party APIs</li>\n<li>Hosting</li>\n<li>CMS</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"jamstack의-한계점\" style=\"position:relative;\"><a href=\"#jamstack%EC%9D%98-%ED%95%9C%EA%B3%84%EC%A0%90\" aria-label=\"jamstack의 한계점 permalink\" class=\"anchor-header 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>JAMStack의 한계점</h3>\n<ul>\n<li>\n<p>빌드 속도</p>\n<p><img src=\"/assets/jamstack-grenze-1.png\" alt=\"빌드 속도\" title=\"빌드 속도\"></p>\n</li>\n<li>\n<p>실시간 변경 콘텐츠</p>\n<p><img src=\"/assets/jamstack-grenze-2.png\" alt=\"실시간 변경 콘텐츠\" title=\"실시간 변경 콘텐츠\"></p>\n</li>\n</ul>\n<h3 id=\"gatsby-cloud\" style=\"position:relative;\"><a href=\"#gatsby-cloud\" aria-label=\"gatsby cloud permalink\" class=\"anchor-header 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>Gatsby Cloud</h3>\n<p>JAMStack 구조상 정적인 페이지가 많아질수록 빌드속도가 오래 걸린다는 단점이 있다. 이러한 부분을 해결하기 위해 “점진적 Build” 시스템을 도입 중이며 성과는 아래와 같다.</p>\n<p><img src=\"/assets/jamstack-grenze-3.png\" alt=\"점진적 Build\" title=\"점진적 Build\"></p>\n<p>JAMStack 기반으로 만들어진 웹 사이트는 대표적으로 아래와 같다.</p>\n<ul>\n<li>뱅크샐러드 기술 블로그\n<a href=\"https://blog.banksalad.com/\" title=\"https://blog.banksalad.com/\">https://blog.banksalad.com/</a></li>\n<li>NHN 토스트 UI\n<a href=\"https://ui.toast.com/\" title=\"https://ui.toast.com/\">https://ui.toast.com/</a></li>\n<li>Bottlehs 기술 블로그\n<a href=\"/\" title=\"Bottlehs Tech Blog\">Bottlehs Tech Blog 홈</a></li>\n</ul>\n<h2 id=\"jamstack-기반-블로그-개설\" style=\"position:relative;\"><a href=\"#jamstack-%EA%B8%B0%EB%B0%98-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EA%B0%9C%EC%84%A4\" aria-label=\"jamstack 기반 블로그 개설 permalink\" class=\"anchor-header 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>JAMStack 기반 블로그 개설</h2>\n<p>bottlehs 기술 블로그는 Gatsby + Netlify 로 개발 되었으며 Netlify CMS 를 활용하여 콘텐츠 관리를 쉽게 할수 있도록 되어 있다.\n아래 Github 페이지에 방문하여 <code class=\"language-text\">Deploy to Netlify</code> 버튼을 클릭하거나 아래에 있는 <code class=\"language-text\">Deploy to Netlify</code> 를 클릭 하면 Netlify 로 호스팅된 JAMStack 기반 블로그를 개설 할수 있으니 관심 있으신 분들한 한번 해보기 바란다.</p>\n<p><a href=\"https://gatsby-starter-flat-blog.netlify.app\">Demo</a></p>\n<p><a href=\"https://app.netlify.com/start/deploy?repository=https://github.com/bottlehs/gatsby-starter-flat-blog\"><img src=\"https://www.netlify.com/img/deploy/button.svg\" alt=\"Deploy to Netlify\"></a></p>\n<p>💡 if you want to deploy github pages, add following script to package.json</p>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token property\">\"scripts\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"deploy\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"gatsby build &amp;&amp; gh-pages -d public -b master -r 'git@github.com:${your github id}/${github page name}.github.io.git'\"</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Github : <a href=\"https://github.com/bottlehs/gatsby-starter-flat-blog/\" title=\"https://github.com/bottlehs/gatsby-starter-flat-blog/\">https://github.com/bottlehs/gatsby-starter-flat-blog/</a></p>\n<p><strong>참고</strong></p>\n<ul>\n<li>NHN FORWARD</li>\n<li>JAMStack ( JAMStack.org )</li>\n<li>웹 문서</li>\n</ul>","tableOfContents":"<ul>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jamstack\">JAMStack</a></p>\n<ul>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%EC%9B%B9-%EA%B0%9C%EB%B0%9C-%EA%B5%AC%EC%A1%B0\">웹 개발 구조</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%EC%A0%84%ED%86%B5%EC%A0%81%EC%9D%B8-%EC%9B%B9\">전통적인 웹</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#serverless-%EC%9B%B9\">Serverless 웹</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jamstack%EC%9D%B4%EB%9E%80\">JAMStack이란</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jjavascript\">J(JavaScript)</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#aapi\">A(API)</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#mmarkup\">M(Markup)</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jamstack%EC%9D%98-%EC%9E%A5%EC%A0%90\">JAMStack의 장점</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%EB%86%92%EC%9D%80-%EC%95%88%EC%A0%95%EC%84%B1\">높은 안정성</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%EB%B9%A0%EB%A5%B8-%EC%84%B1%EB%8A%A5\">빠른 성능</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%ED%99%95%EC%9E%A5%EC%84%B1-%EB%B0%8F-%EB%82%AE%EC%9D%80-%EB%B9%84%EC%9A%A9\">확장성 및 낮은 비용</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%EC%89%AC%EC%9A%B4-%EC%9E%90%EB%8F%99%ED%99%94\">쉬운 자동화</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%84%9C%EB%B9%84%EC%8A%A4\">데이터베이스 서비스</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#faunadb\">FaunaDB</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#dynamodb\">DynamoDB</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#static-site-generator\">Static Site Generator</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#next\">Next</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#gatsby\">Gatsby</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#nuxt\">Nuxt</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jamstack-%EC%83%9D%ED%83%9C%EA%B3%84\">JAMStack 생태계</a></p>\n<ul>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#cms-function-hosting\">CMS, Function, Hosting</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#cms\">CMS</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#function\">Function</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#hosting\">Hosting</a></li>\n</ul>\n</li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%EB%8F%99%EC%A0%81-%EC%BD%98%ED%85%90%EC%B8%A0\">동적 콘텐츠</a></li>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#third-party-apis\">Third party APIs</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#algolia\">Algolia</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#disqus\">DISQUS</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#stripe\">Stripe</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jamstack-%ED%98%84%EC%9E%AC%EC%99%80-%ED%95%9C%EA%B3%84%EC%A0%90-%EB%B0%8F-gatsby-cloud\">JAMStack 현재와 한계점 및 Gatsby Cloud</a></p>\n<ul>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#%ED%98%84%EC%9E%AC\">현재</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jamstack%EC%9D%98-%ED%95%9C%EA%B3%84%EC%A0%90\">JAMStack의 한계점</a></li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#gatsby-cloud\">Gatsby Cloud</a></li>\n</ul>\n</li>\n<li><a href=\"/etc/jamstack-%EC%9D%B4%EB%9E%80/#jamstack-%EA%B8%B0%EB%B0%98-%EB%B8%94%EB%A1%9C%EA%B7%B8-%EA%B0%9C%EC%84%A4\">JAMStack 기반 블로그 개설</a></li>\n</ul>","wordCount":{"words":748},"fields":{"slug":"/etc/jamstack-이란/","image":"/assets/jamstack-cover.png","faq":[]},"frontmatter":{"title":"JAMStack 이란","date":"2021년 4월 18일","dateISO":"2021-04-18T22:11:34.709Z","updatedISO":null,"category":"etc","description":"Jamstack은 Javascript, API 및 Markup의 약자이며 2015 년 Netlify의 CEO 인 Mathias Biilmann이 처음 만들어졌습니다. 서버 없이 배포 운영되는 모던 웹 개발 구조 이며, 장점으로는 높은 안정성, 빠른 성능, 확장성 및 낮은 비용, 쉬운 자동화 등이 있습니다.","tags":["JAMStack","Gatsby","Nuxt.js","Next.js","Netlify"]}}},"pageContext":{"slug":"/etc/jamstack-이란/","previous":{"fields":{"slug":"/etc/프로젝트-킥오프-가이드/"},"frontmatter":{"title":"프로젝트 킥오프 가이드","tags":["킥오프미팅","프로젝트","애자일"]}},"next":{"fields":{"slug":"/etc/애자일-스크럼/"},"frontmatter":{"title":"애자일 스크럼","tags":["스크럼","프로젝트","애자일"]}}}},"staticQueryHashes":["213619243","3262363727"]}