피드로 돌아가기
Dev.toFrontend
원문 읽기
Zod 기반 Build-time Validation으로 Content Pipeline 안정성 확보
Typed content collections in Astro
AI 요약
Context
Markdown의 높은 유연성으로 인한 필수 데이터 누락 및 잘못된 경로 참조 등의 런타임 오류 위험 상존. 사이트 규모 확장 시 누적되는 콘텐츠 무결성 결여 문제를 해결하기 위한 구조적 제약 필요.
Technical Solution
- Zod Schema 기반의 Build-time Validation 도입을 통한 데이터 정합성 강제 및 잘못된 콘텐츠의 배포 원천 차단
- Astro의 image() 헬퍼를 통한 파일 시스템 물리 경로 검증과 Image Optimization Pipeline 자동 연결
- z.coerce.date() 활용으로 YAML 문자열의 자동 Date 객체 변환 및 타입 안정적인 날짜 비교 로직 구현
- 환경 변수(SHOW_DRAFTS)와 pubDate, draft 플래그를 결합한 isPublished() 필터링 유틸리티 설계
- Optional 필드에 대한 TypeScript 타입 가드로 템플릿 렌더링 시 발생 가능한 Null Reference 예외 방지
- 콘텐츠 파일과 커버 이미지를 동일 디렉토리에 배치하는 Co-location 구조를 통한 관리 효율성 증대
실천 포인트
- 콘텐츠 모델 설계 시 Zod와 같은 Schema Validation 라이브러리를 통해 빌드 단계에서 무결성 검증 수행 - CMS 없이 예약 발행 기능을 구현하려면 Date 타입의 필드와 현재 시간을 비교하는 필터링 로직 구축 - 선택적 필드는 TypeScript의 Optional 타입을 활용하여 템플릿 단에서 예외 처리 강제 - 정적 자산(이미지 등)은 관련 콘텐츠와 Co-location 하여 경로 관리 복잡도 감소