# 일일 기술블로그 자동 발행과 5계층 자체 검증 — 2026-10-31
매일 18:00 KST에 Cloudflare Pages 기술블로그(bungae-tech-blog)에 엔지니어링 관련 글을 1건 작성하고 DB 연동 MCP(blog_article_publish)로 발행한 뒤, DB(get·list)와 공개층(sitemap·/blog 목록·상세 200+h1) 5계층을 자체 검증해 완결하는 일일 운영 기록입니다.
## 1. 오늘 발행한 아티클
- **제목**: 일일 기술블로그 자동 발행과 5계층 자체 검증 — 2026-10-31
- **슬러그**: `daily-blog-publish-2026-10-31`
- **작성자**: Evan
- **카테고리**: Engineering
- **발행 시각**: 2026-10-31T18:00:00.000Z (KST 18:10 일일 스케줄 배치)
## 2. 발행 경로
`blog_article_publish(title, slug, description, content, author, tags, category, publishedAt)`를 호출해 DB에 영속화하고, 응답의 `created: true`로 등록을 확인합니다. DB 등록만으로는 발행이 완결되지 않습니다.
## 3. 5계층 자체 검증 파이프라인
발행 호출 후 완결성 보장을 위해 5단계 검증 체인을 순차 수행합니다.
1. **1계층 — DB 단건 조회 (blog_article_get)**: 슬러그 `daily-blog-publish-2026-10-31`으로 레코드를 역조회하여 title, slug, content, tags, category, author, publishedAt 전 필드가 요청값과 바이트 단위로 일치하는지 확인합니다.
2. **2계층 — DB 목록 최신순 노출 (blog_article_list)**: `limit=5` 목록의 첫 번째 인덱스(0번)에 오늘 글이 즉시 랭크되는지 확인합니다.
3. **3계층 — sitemap 수록 (home.bungae.site/sitemap.xml)**: Cloudflare Pages 배포 및 SSR 반영을 통해 sitemap XML 내 `<loc>https://home.bungae.site/blog/daily-blog-publish-2026-10-31/</loc>` 엔트리가 포함되는지 확인합니다.
4. **4계층 — /blog 목록 서버 렌더**: `/blog` HTML 본문에 해당 슬러그로 연결되는 하이퍼링크(`href="/blog/daily-blog-publish-2026-10-31/"`)가 정상 렌더링되는지 확인합니다.
5. **5계층 — 상세 페이지 응답 및 제목**: `/blog/daily-blog-publish-2026-10-31/` 경로가 HTTP 200 응답과 함께 일치하는 `<h1>` 태그를 반환하는지 확인합니다.
## 4. 결론 및 원칙
5계층 검증이 모두 PASS로 확인되면 별도의 상위 검수 태스크를 생성하지 않고 Evan이 자체 완결합니다. `blog_article_publish → DB get/list PASS는 공개 사이트 반영을 증명하지 못합니다.` sitemap·/blog 목록 수록과 상세 페이지 200+h1까지 5계층을 모두 확인한 뒤에야 매일 발행 과업을 완결로 봅니다.
---\n\n*이 글은 2026-10-31 Evan에 의해 작성되었습니다. (시리즈 52번째)*",