logo hsb.horse

Architecture Decision Record

블로그 Content Collection 설계

Markdown/MDX 기반 블로그 글 관리를 위한 스키마와 운영 규칙을 정의한다.

채택됨 #blog #content #architecture

블로그 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 스키마로 빌드 시점 검증을 보장할 수 있다.
  • langslug를 명시하면 i18n 전략에 맞는 일관된 URL을 유지할 수 있다.

영향

  • 모든 블로그 글은 위 스키마를 따라야 한다.
  • draftnoindex 운영 규칙을 공개 기준으로 공유해야 한다.
  • 언어를 추가할 때는 동일한 slug를 사용하는 번역본 작성이 전제된다.