무마찰 퍼블리싱: Human-in-the-Loop Agentic CMS, Notion MCP 기반
Source: Dev.to
이것은 Notion MCP Challenge 에 대한 제출물입니다
What I Built
Me: Notion MCP 챌린지에 제출하려고 합니다. 아래 워크플로가 좋은 지원서가 될까요?
Claude: 강력한 제출 아이디어입니다! 평가 기준에 어떻게 부합하는지 살펴볼게요…
Me: 아래 템플릿을 사용해 제출물을 초안으로 만들고 notion-mcp-challenge.md 파일명으로 Notion 데이터베이스에 저장해 주세요.
Claude: 먼저 Notion 워크스페이스에서 퍼블리싱 데이터베이스를 찾아 저장하겠습니다…
(Claude가 Notion MCP를 사용해 데이터베이스에 연결)
완료! 초기 초안이 바로 Notion CMS에 저장되었습니다.
이 실제 대화가 이 프로젝트 전체—그리고 여러분이 지금 읽고 있는 기사—가 시작된 순간입니다.
AI가 즉시 콘텐츠를 생성할 수 있지만, 높은 품질, 개인적인 목소리, 엄격한 포맷을 유지하려면 “Human‑in‑the‑loop” 접근이 필요합니다. 저는 인간 창작자와 AI 오케스트레이터가 협업하는 Zero‑Friction Agentic Publishing Pipeline을 구축했습니다. 이 파이프라인은 Notion을 협업형 헤드리스 CMS로 전환합니다.
여러 탭을 오가며 포맷을 수동으로 변환하거나 Git 명령어를 다루는 대신, 이 워크플로를 통해 저는 전적으로 지시와 편집에 집중할 수 있습니다. AI 에이전트(Claude)와 대화만 하면 데이터베이스 관리, 파일 변환, 버전 관리 등을 Notion MCP를 통해 자동으로 처리해 줍니다.
Architecture
The Process
| Phase | Description |
|---|---|
| Director Phase (1) | 자연어로 아이디어를 시작합니다. |
| Drafting Phase (2) | AI 오케스트레이터가 초기 초안을 생성하고, title, filename, 메타데이터와 같은 속성을 매핑하여 Notion MCP를 통해 구조화된 Notion 데이터베이스에 바로 저장합니다. |
| Refinement Phase (3) | 저는 Notion—글쓰기 UI로 최적화된 도구—에 들어가 초안을 다듬고 개인적인 감성을 추가합니다. |
| Publishing Pipeline (4‑6) | AI에게 최종 작업을 지시합니다. AI는 MCP를 통해 Notion에서 업데이트된 콘텐츠를 가져와 YAML front‑matter가 포함된 Markdown으로 변환하고, GitHub에 Pull Request를 생성합니다. |
| Approval (7‑9) | PR diff를 검토하고 Merge를 클릭하면 GitHub Actions가 트리거되어 기사를 dev.to에 실시간으로 배포합니다. |
Video Demo
이 짧은 프레젠테이션(초기 초안을 기반으로 NotebookLM을 통해 생성됨)은 이 설정 뒤에 있는 철학을 설명합니다. 영상에서 강조된 바와 같이, 이것은 Conversation‑driven development입니다. 전통적인 코드를 한 줄도 작성하지 않고도 복잡한 Notion‑to‑GitHub 파이프라인을 조정할 수 있음을 보여줍니다—전적으로 워크플로우 개요와 자연어 프롬프트에 의존합니다.
Source: …
코드 보여 주세요
이 Agentic 워크플로우의 절대적인 아름다움은 전통적인 미들웨어 코드가 전혀 필요 없다는 점입니다. 표준 MCP 서버를 활용함으로써 “코드”는 깨지기 쉬운 API 래퍼를 작성하는 것에서 CI/CD 파이프라인과 데이터베이스 스키마를 정의하는 것으로 이동합니다.
1. Repository & CI/CD Pipeline
GitHub 리포지토리는 AI와 내가 협업하는 중앙 허브입니다.
- AI가 PR을 엽니다: Claude가 GitHub MCP 서버를 통해 동적으로 Pull Request를 열고 Notion 초안을 기반으로 업데이트를 푸시합니다.
- 인간 승인: 나는 PR diff에서 Markdown과 YAML front‑matter를 검토합니다. 이것이 중요한 “Human‑in‑the‑loop” 체크포인트입니다.
- 자동 배포: Merge 버튼을 누르면 GitHub Action이 자동으로 트리거되어 글을 dev.to에 게시합니다.
이 워크플로우를 구동하는 실제 리포지토리를 확인해 보세요:
👉 (원문에서 링크가 생략됨)
2. Notion Schema (Front‑Matter용 “데이터 모델”)
Claude가 Pull Request를 열 때, Notion에서 초안을 추출해 표준 Markdown 파일로 변환합니다. 이 과정에서 Notion 데이터베이스에 저장된 정확한 속성을 사용해 YAML front‑matter를 생성합니다. 이 엄격한 스키마가 AI가 예측 가능하게 동작하도록 하는 비밀 소스입니다.
| Property | Description |
|---|---|
title | 포스트의 메인 헤드라인 |
published | 공개 여부를 제어하는 Boolean |
description | SEO와 dev.to 요약에 사용 |
tags | 자동 카테고리 지정 |
organization_username | 특정 dev.to 조직 아래에 게시 ( Publish to Dev.to Organization 액션에서 사용) |
canonical_url | 교차 게시된 콘텐츠의 SEO 무결성을 유지 |
cover_image | 기사 헤더 이미지 URL |
filename | GitHub 리포에 있는 .md 파일의 정확한 ID |
github_branch | AI가 PR을 열어야 할 브랜치 |
Content | 페이지 본문 – AI 생성과 인간 편집이 공유되는 캔버스 |
3. “Stringification Hell” 극복 (자체 검증 강제)
테스트 중에 현재 LLM이 가진 물리적 한계인 **“Stringification Hell”**에 부딪혔습니다. Claude가 최종 복잡한 Markdown( YAML, Mermaid 다이어그램, 줄바꿈 포함)을 GitHub MCP에 전달하려 할 때, 방대한 JSON 페이로드를 완벽하게 이스케이프하지 못했습니다. 구문 오류를 피하기 위해 모델에게 다음을 강제했습니다:
- Markdown을 임시 Notion 페이지에 내보내기 – 모델이 이를 일반 텍스트로 취급하도록 함.
- MCP를 통해 페이지를 다시 읽어오기 – 올바른 JSON 인코딩을 보장.
- 읽어온 콘텐츠를 GitHub에 제출 – 이제 안전하게 이스케이프됨.
이 추가 라운드‑트립은 약간의 지연을 초래했지만, 잘못된 PR 본문을 없애고 작은 “자체 검증” 단계가 신뢰성을 크게 향상시킬 수 있음을 증명했습니다.
TL;DR
- 코드 제로 Agentic 퍼블리싱 파이프라인 – 대화형, 인간‑인‑루프.
- Notion MCP가 초안, 메타데이터, 버전 히스토리를 저장.
- GitHub MCP + Actions가 Notion 페이지를 Markdown + YAML로 변환하고 PR을 열어 dev.to에 게시.
- 스키마 기반 front‑matter가 결정론적 AI 동작을 보장.
- 자체 검증(읽어오기)으로 “Stringification Hell” 문제를 해결.
이 제출이 Notion MCP와 최신 LLM 오케스트레이션으로 달성할 수 있는 범위를 넓히는 새롭고 재현 가능한 워크플로우를 보여주길 바랍니다. 모든 참가자에게 행운을 빕니다!
Notion MCP를 사용한 방법
Notion MCP는 이 에이전시 워크플로우의 절대적인 핵심입니다. 이는 Notion을 수동적인 지식 베이스에서 AI와 인간을 위한 능동적이고 협업적인 작업 공간으로 변환하는 중요한 다리 역할을 합니다.
MCP Write: 저는 MCP를 활용하여 LLM이 제 “Publishing CMS” 데이터베이스 내에 동적으로 페이지를 생성하도록 했습니다. 생성된 아이디어를 title, filename, 그리고 제작에 필요한 모든 메타데이터 속성에 완벽히 매핑합니다.
MCP Read: 인간의 개입(제 편집) 후, LLM은 MCP를 사용해 정확한 Notion 페이지를 읽어 최종 출력이 개발자를 위한 엄격한 Markdown/YAML로 변환되기 전에 인간의 뉘앙스를 완벽히 보존하도록 합니다.
What it unlocks:
이 통합은 컨텍스트 전환과 인지 부하를 완전히 없애줍니다. Notion MCP를 활용함으로써 채팅 창, 텍스트 편집기, 터미널 사이를 복사‑붙여넣기 할 필요가 없습니다. AI가 일상적인 시스템 작업(포맷팅, API 호출, Git 명령)을 조율하는 동안 저는 Notion의 아름다운 편집 환경 안에서 100 % 창의적 제어권을 유지합니다. 이는 현대의 모든 크리에이터나 개발자를 위한 궁극적인 human‑in‑the‑loop 확장 시스템입니다!

