블로그 Content Collection 설계
결정
- 블로그 글은
/blog하위의 Markdown/MDX 파일로 관리한다. - Frontmatter 스키마는 다음과 같다.
title(필수, string)description(선택, string)publishedAt(필수, date)updatedAt(선택, date)draft(선택, boolean, 기본값false)tags(선택, string[])image(선택, string)noindex(선택, boolean, 기본값false)lang(선택, string, 기본값ja)slug(선택, string, 생략 시 파일명 기반)prev(선택,true | false | string, 이전 링크를 명시적으로 제어)next(선택,true | false | string, 다음 링크를 명시적으로 제어)
- i18n URL 전략에 따라 URL은
lang+slug조합으로 결정한다. 번역 글은 동일한slug를 사용한다. - 목록 정렬은
publishedAt기준으로 하고, “최종 업데이트” 표시는updatedAt를 사용한다. draft는 목록/피드/빌드 대상에서 제외하기 위한 플래그로 사용한다.noindex는 검색 엔진 인덱싱 제외를 의도하는 메타데이터로 사용한다.
배경
블로그를 장기적으로 운영하려면 목록, 상세 페이지, SEO 메타데이터를 안정적으로 생성할 수 있는 일관된 스키마가 필요하다. 또한 설계는 i18n 전략(일본어 기본, 추가 언어는 서브디렉터리)과 정합해야 한다.
선택지
- Markdown/MDX + Content Collection
- 외부 Headless CMS
- JSON/TS 수동 관리
근거
- Markdown/MDX는 작성과 리뷰 비용이 낮다.
- Content Collection 스키마로 빌드 시점 검증을 보장할 수 있다.
lang와slug를 명시하면 i18n 전략에 맞는 일관된 URL을 유지할 수 있다.
영향
- 모든 블로그 글은 위 스키마를 따라야 한다.
draft와noindex운영 규칙을 공개 기준으로 공유해야 한다.- 언어를 추가할 때는 동일한
slug를 사용하는 번역본 작성이 전제된다.
hsb.horse