JAMstack 아키텍처

JAMstack 실행 시점 분리

JAMstack은 JavaScript, API, Markup의 조합을 뜻하지만 핵심은 페이지를 가능한 한 빌드 시점에 만들고 CDN으로 빠르게 배포하며, 동적 기능은 API로 분리하는 구조입니다. 모든 페이지가 정적이어야 한다는 뜻은 아닙니다.

01

빌드 시점 판단

문서, 블로그, 상품 설명처럼 자주 바뀌지 않는 페이지는 사전 생성으로 빠른 첫 응답을 얻습니다.

SSG
02

CDN 배포

정적 산출물은 origin 서버 부하 없이 edge cache에서 제공되어 안정성과 속도가 좋아집니다.

delivery
03

API 분리

결제, 로그인, 검색, 개인화처럼 요청마다 달라지는 작업은 API와 서버리스 함수로 둡니다.

dynamic
04

갱신 전략

콘텐츠 변경이 잦으면 rebuild, ISR, on-demand revalidation 같은 갱신 방식을 선택합니다.

freshness
SSG
빌드 때 HTML 생성 빠르고 안정적이지만 데이터 변경 반영에는 재빌드나 재검증이 필요합니다.
static
SSR
요청 때 HTML 생성 개인화와 최신 데이터에 강하지만 서버 비용과 지연이 생깁니다.
request
CSR
브라우저에서 데이터 로드 후 화면 구성 상호작용은 유연하지만 첫 화면과 SEO를 별도로 관리해야 합니다.
client

데이터 신선도 · 비밀 처리 · 빌드 시간 점검

데이터 신선도 몇 분 늦어도 되는 정보와 항상 최신이어야 하는 정보를 나눕니다.
비밀 처리 API key와 DB 접근은 클라이언트 번들이 아니라 API 계층에 둡니다.
빌드 시간 페이지 수가 많아지면 전체 재빌드 비용과 증분 갱신 전략을 함께 봅니다.

시점 선택

문서/마케팅: build time
사용자 대시보드: request time 또는 client fetch
결제/인증: API boundary