Astro의 Content Collections 기능은 로컬 또는 원격 콘텐츠를 안전하게 불러오고 타입 안정성을 보장해 주는 훌륭한 기능입니다.

왜 써야 할까요?

전통적인 정적 사이트 빌더는 frontmatter의 형식을 검증하지 않습니다. 제목이 빠져 있거나 작성일 포맷이 틀려도 빌드 타임에 감지하지 못하고 화면이 깨진 후에 발견되곤 합니다. Astro의 Content Collections는 zod 스키마를 사용하여 콘텐츠를 분석하므로 사전에 데이터 결함을 바로잡아 줍니다.

Schema 설정 예시

src/content.config.ts 파일에서 다음과 같이 정의할 수 있습니다:

import { defineCollection, z } from 'astro:content';

const blog = defineCollection({
  schema: z.object({
    title: z.string(),
    publishedAt: z.coerce.date(),
  })
});

이를 통해 마크다운 파일을 불러올 때 타입 힌트와 자동 완성 혜택을 온전히 누릴 수 있게 됩니다.