Skip to content

[Arch] getAllMdxFiles 빌드타임 캐싱 + frontmatter 파서 견고화 #99

Description

@Malloc72P

현황

  • apps/blog/src/libs/api/mdx-utils.ts:24getAllMdxFiles가 매 호출마다 posts 디렉토리 전체를 재귀 readdirSync + 전 파일 readFileSync + 정규식 파싱한다. 캐싱이 전무하고, find-posts/series/tags가 sitemap·layout·page·태그별 페이지 등에서 반복 호출된다.
  • parseFrontmatterMetadata(mdx-utils.ts:73-123)가 작은따옴표 전용 정규식으로 필드를 추출한다. 큰따옴표/백틱/아포스트로피/줄바꿈에서 조용히 실패할 수 있고, 실패 시 console.error 후 스킵하므로 포스트가 목록에서 통째로 사라질 수 있다.

문제

  • 정적 페이지 1개 생성에 같은 디렉토리를 수차례 재스캔 → 포스트가 10배가 되면 빌드 시간이 비선형으로 증가한다.
  • 파싱 실패가 빌드 성공인 채로 포스트를 누락시킨다.

제안

  • getAllMdxFiles를 React cache()로 래핑 + 모듈 레벨 메모이즈
  • 파서: 따옴표 종류('/"/백틱)를 모두 허용하도록 보강 + 파싱 실패를 빌드 실패로 승격(silent skip 금지)

임팩트 / 난이도

임팩트 상 / 난이도 하~중


🤖 코드베이스 조사 기반 작성 (Claude Code)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions