Web Basic · JAMstack

JAMstack의 빌드 시점과 실행 시점

JAMstack은 정적 파일만 쓰자는 구호가 아니라, 가능한 페이지를 빌드 시점에 만들고 동적 처리는 API와 edge 기능으로 분리하는 아키텍처다.

01

정적 후보

마케팅, 문서, 블로그처럼 콘텐츠가 비교적 안정적인 페이지를 빌드한다.

02

동적 분리

로그인 사용자 데이터, 결제, 검색은 API 또는 서버리스 함수로 둔다.

03

배포

빌드 결과는 CDN에 배치하고 파일명에 hash가 붙은 자산은 긴 만료 시간을 준다.

04

갱신

CMS 변경, 재빌드, ISR, webhook을 통해 콘텐츠 최신성을 관리한다.

Static
빠른 첫 응답 HTML이 미리 생성돼 서버 계산이 적음
개인화가 많으면 한계
API
동적 기능 폼 제출, 인증, 검색, 결제는 별도 endpoint로 처리
CORS와 보안 정책 필요
CDN
전세계 캐시 정적 파일을 사용자 가까이에서 제공
무효화 전략이 품질 좌우
ISR
점진적 재생성 일부 페이지를 요청 후 백그라운드에서 갱신
오래된 콘텐츠 허용 범위를 정한다

콘텐츠 최신성 · 빌드 시간 · 동적 데이터 점검

콘텐츠 최신성 사용자가 오래된 내용을 봐도 되는 시간을 정했다.
빌드 시간 페이지 수 증가가 배포 시간을 과도하게 늘리지 않는다.
동적 데이터 개인화 정보가 정적 HTML에 섞이지 않는다.
무효화 CMS 변경 후 어떤 경로가 새로 생성되는지 추적된다.