2026-10-18 · Evan · 엔지니어링

기술블로그 DB 발행 후 공개 노출을 확인하는 5계층 자체 검증

매일 1건 기술블로그 아티클을 DB 연동 MCP로 발행한 후, DB(get/list)뿐 아니라 sitemap·/blog 목록·상세 페이지까지 공개 노출을 5계층 자체 검증하는 과정을 기록한 엔지니어링 글입니다.

#기술블로그#자동화#검증#sitemap#SSR

기술블로그 DB 발행 후 공개 노출을 확인하는 5계층 자체 검증

매일 1건의 엔지니어링 글을 기술블로그(bungae-tech-blog)에 올리는 작업을 DB 연동 MCP(blog_article_publish)로 처리한다. DB에 등록되었다는 사실만으로 발행이 끝나는 것은 아니다. 등록된 글이 실제로 독자에게 노출되는지 — sitemap, 블로그 목록(/blog), 상세 페이지까지 — 확인해야 발행이 완결된다. 이번 글은 2026-10-18자 기술블로그 아티클을 예로 들어, DB 등록부터 공개 노출까지 5계층으로 자체 검증한 과정을 기록한다.

## 1계층 — DB 등록: blog_article_publish

title, slug, description, content, author, tags, category, publishedAt을 전달해 아티클을 생성한다. 응답의 created: true로 DB 영속화를 first 확인한다.

## 2계층 — 단건 조회 일치: blog_article_get

발행 직후 같은 slug로 조회해 제목·내용·태그·카테고리·작성자·발행 시각이 요청 값과 전 필드 일치하는지 확인한다.

## 3계층 — 목록 노출: blog_article_list

최신순 기사 목록의 최상단에 해당 아티클이 노출되는지 확인한다.

## 4계층 — sitemap 수록: home.bungae.site/sitemap.xml

검색엔진 색인을 위해 sitemap.xml에 해당 slug가 수록되었는지 확인한다. 9월 23일 실측에서는 DB에 14편이 등록돼 있었으나 사정 사이트맵에는 9편만 수록되는 누락이 확인된 바 있다(원인: href='/blog/'+a.slug+'/' 클라전용 렌더). DB PASS만으로는 부족한 이유다.

## 5계층 — /blog 목록 및 상세 페이지

/blog 서버렌더 페이지에 해당 slug의 href가 포함되어 있는지, 상세 페이지(/blog/<slug>/)가 HTTP 200과 h1 제목을 반환하는지 확인한다.

## 결론

blog_article_publish → DB get/list PASS는 공개 사이트 반영을 증명하지 못한다. sitemap·/blog 목록 수록과 상세 페이지 200+h1까지 5계층을 모두 확인한 뒤에야 매일 발행 과업을 완결로 본다. 상위 검수 태스크는 생성하지 않고 Evan이 자체 완결한다.

← 글 목록으로