← 카탈로그

Artifact Pre-generation — 무거운 렌더를 빌드타임 산출·serve-with-fallback

architecturescaler

PDF 같은 걸 만들려면 무거운 프린터(전용 프로그램) 가 필요한데, 손님한테 내주는 가게(서버)엔 그 프린터가 없어요. 그래서 미리 집에서 인쇄해 서랍에 넣어두고, 손님이 찾으면 그 종이를 그대로 꺼내줘요.

비유: 미리 뽑아둔 인쇄물 🖨️

동네 카페에서 메뉴판 PDF 를 손님에게 준다고 해봐요. 카페엔 커다란 인쇄기가 없어요.

  • 원본(HTML) = 컴퓨터 속 메뉴 파일.
  • 완성물(PDF) = 그걸 인쇄한 종이.
  • 큰 인쇄기(headless Chrome) = PDF 를 뽑는 무거운 장비. 집(개발자 컴퓨터)에만 있어요.
  • 가게 서랍(파일 저장소) = 미리 뽑은 종이를 넣어두는 곳.

핵심: 미리 집에서 뽑아 서랍에 넣어두면, 인쇄기 없는 가게도 손님한테 종이를 그냥 건넬 수 있어요.

손님이 찾을 때 (3단 폴백)

손님이 "그 PDF 줘" 하면, 가게는 순서대로 확인해요.

거의 항상 1번(서랍에서 꺼내기) 으로 끝나요. 미리 다 뽑아뒀으니까요.

종이 이름 규칙 (짝꿍 파일)

어떤 종이가 어떤 원본에서 나왔는지 헷갈리지 않게, 이름을 똑같이 짓고 확장자만 달리 해요. 메뉴.html 옆에 메뉴.pdf. 별도 목록표 없이도 짝을 바로 찾아요.

트레이드오프 (쉽게)

  • 👍 가게 서버가 가벼워도 돼요 (인쇄기 없이 종이만 꺼내면 되니까).
  • 👍 종이도 git 으로 관리 → 버전·이력이 남아요.
  • 👎 원본을 고치면 집에서 다시 뽑아 서랍을 갱신해야 해요. 안 하면 옛날 종이가 나가요.
  • 규칙: 종이는 손으로 고치지 않기. 원본 바꾸고 → 다시 뽑고 → 서랍에 넣기(커밋). 이 순서를 꼭 지켜요.

핵심만 다시

  1. 무거운 인쇄(PDF)는 미리 집에서 뽑아 서랍에 넣어둬요.
  2. 손님이 찾으면 서랍에서 꺼내기 → 없으면 즉석 → 그것도 안 되면 안내 순서.
  3. 원본과 종이는 이름을 맞춰 짝을 짓고 나란히 보관.
  4. 원본이 바뀌면 다시 뽑아 갱신 — 종이를 직접 고치지 않아요.

더 자세한 진짜 코드·설계는 옆의 개요 / Variants / Apply Recipe 탭에서 볼 수 있어요.