2026년 9월 2일
Astro Content Collections로 글 관리하기
Markdown frontmatter를 스키마로 검증하고 글 목록·상세를 자동 생성하는 방법.
글이 곧 파일이다
이 블로그의 글은 전부 src/content/posts/*.md 파일입니다. DB도 CMS도 없습니다.
---
title: '제목'
description: '목록에 보이는 한 줄 설명'
pubDate: 2026-09-02
tags: ['astro', 'markdown']
---
본문...
스키마 검증이 확정적이다
src/content.config.ts에서 Zod 스키마로 검증합니다. 제목·날짜가 빠지면 빌드 단계에서 실패합니다.
런타임에 깨진 글이 나가는 일이 없습니다.
const blog = defineCollection({
type: 'content',
schema: z.object({
title: z.string(),
description: z.string(),
pubDate: z.coerce.date(),
tags: z.array(z.string()).default([]),
draft: z.boolean().default(false)
})
});
목록과 상세는 자동이다
- 목록:
getCollection('blog')→ 날짜 내림차순 정렬 - 상세:
getStaticPaths()→ slug별 정적 HTML 생성
빌드 결과는 순수 HTML/CSS라서 엣지 캐시 효율이 좋습니다. JS는 기본적으로 0바이트입니다.