blog-auto-publish-workflow-guide
블로그 3개 자동 게시 워크플로우 가이드
Obsidian에서 작성한 글을 Digital Garden (Vercel), Quarto (GitHub Pages), 네이버 블로그 세 곳에 자동으로 게시하는 워크플로우를 설계합니다.
세 블로그 플랫폼별 자동화 가능성
| 블로그 | 자동화 난이도 | 방법 | 현재 상태 |
|---|---|---|---|
| Digital Garden (Vercel) | 쉬움 | Git push → 자동 배포 | 플러그인 설치 완료, GitHub repo 있음 |
| Quarto (GitHub Pages) | 쉬움 | quarto render → git push → 자동 배포 | msk8rehab repo 있음 |
| 네이버 블로그 | 어려움 | 공식 API 없음, Selenium 또는 XML-RPC | 미구축 |
전체 워크플로우 구상
Obsidian에서 글 작성 (마크다운)
│
├─ frontmatter에 배포 대상 지정
│ dg-publish: true → Digital Garden
│ quarto: true → Quarto Blog
│ naver: true → 네이버 블로그
│
▼
Claude Code / n8n 자동화
│
├─① Digital Garden: 플러그인이 자동으로 GitHub commit → Vercel 자동 배포
│
├─② Quarto: md → quarto render → git push → GitHub Pages 자동 배포
│
└─③ 네이버: md → HTML 변환 → 네이버 블로그 API (XML-RPC)
① Digital Garden (Vercel) — 이미 거의 완성
현재 플러그인이 설치되어 있고 GitHub repo(medibb/digitalgarden)도 연결되어 있습니다.
현재 방식 (수동):
- Obsidian에서 노트에
dg-publish: true추가 - Command Palette → "Digital Garden: Publish Single Note"
- 플러그인이 GitHub에 commit → Vercel이 감지하여 자동 배포
자동화 방안: Obsidian 내 플러그인이 이미 처리하므로 추가 자동화 불필요. 다만 CLI에서 발행하고 싶다면 n8n에서 GitHub API로 직접 md 파일을 commit하는 방식도 가능합니다.
② Quarto (GitHub Pages) — n8n + Docker로 자동화 가능
현재 방식 (수동):
# R-studio server에서
quarto render
git add . && git commit -m "update" && git push
자동화 방안:
n8n Webhook (또는 Schedule)
→ Claude Code에서 md 파일을 quarto 포맷으로 변환
→ Docker에서 quarto render 실행
→ git push → GitHub Pages 자동 배포
다만 현재 NAS Docker에 Quarto가 설치되어 있지 않다면, R-Studio Server 컨테이너에서 실행하거나 별도 Quarto 컨테이너가 필요합니다. 또는 GitHub Actions를 활용하면 서버 부담 없이 가능합니다:
# .github/workflows/publish.yml
name: Publish Quarto Blog
on:
push:
branches: [main]
paths: ['posts/**']
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: quarto-dev/quarto-actions/setup@v2
- run: quarto render
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
이 경우 n8n에서 md 파일을 repo에 push하기만 하면 GitHub Actions가 render + deploy를 자동 처리합니다.
③ 네이버 블로그 — 가장 까다로움
네이버는 공식 글쓰기 API가 제한적입니다. 가능한 방법은 두 가지:
방법 A: XML-RPC API (추천)
네이버 블로그 관리 → 글쓰기 API 설정에서 활성화하면 XML-RPC 프로토콜(https://github.com/yousung/naver-blog-xmlrpc)로 글을 등록할 수 있습니다.
n8n HTTP Request 노드
→ POST https://api.blog.naver.com/xmlrpc
→ XML-RPC metaWeblog.newPost 호출
→ 제목, HTML 본문, 카테고리, 태그 전달
제약사항:
- 이미지는 별도 업로드 필요 (or base64)
- 에디터 서식이 제한적 (SmartEditor 기능 미지원)
- 비공개 → 공개 전환은 수동
방법 B: Selenium (비추천)
Selenium으로 네이버 로그인 후 자동 글쓰기(https://www.gpters.org/dev/post/connect-naver-selenium-automatically-EzG4w5z8ru5ZF9V)가 가능하지만, 네이버가 봇 탐지를 강화하고 있어 계정 제재 위험이 있습니다.
실현 가능한 통합 워크플로우
현재 인프라(NAS Docker + n8n + Claude Code + Discord Bot)를 활용한 현실적인 구현안입니다:
┌─────────────────────────────────────────────────────┐
│ Obsidian에서 블로그 글 작성 │
│ (claudeanswer/ 폴더의 blog-*.md 파일들) │
└──────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Discord: /publish 슬래시 커맨드 │
│ 또는 n8n Webhook │
│ │
│ 인자: 파일명, 대상(garden/quarto/naver/all) │
└──────────────┬──────────────────────────────────────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
Garden Quarto Naver
│ │ │
GitHub GitHub XML-RPC
commit push API
│ │ │
Vercel GitHub 네이버
자동배포 Actions 블로그
Discord /publish 커맨드 예시
/publish file:blog-web-vscode-claude-cli-nas target:all
Bot: 📝 블로그 발행 시작
✅ Digital Garden: commit 완료 → Vercel 배포 중
✅ Quarto: push 완료 → GitHub Actions 실행 중
⚠️ Naver: XML-RPC 발행 완료 (비공개, 확인 후 공개 전환 필요)
단계적 구축 추천
| 단계 | 작업 | 난이도 | 비고 |
|---|---|---|---|
| 1단계 | Digital Garden: 현재 그대로 사용 (이미 동작) | - | - |
| 2단계 | Quarto: GitHub Actions 추가 + n8n에서 git push 자동화 | 중 | 반나절 |
| 3단계 | 네이버: XML-RPC API 활성화 + n8n HTTP Request 노드 | 중 | 반나절 |
| 4단계 | Discord /publish 커맨드로 통합 |
높 | 하루 |
참고 자료
- Naver Blog XML-RPC API: https://github.com/yousung/naver-blog-xmlrpc
- Selenium 네이버 블로그 자동화: https://www.gpters.org/dev/post/connect-naver-selenium-automatically-EzG4w5z8ru5ZF9V
- Obsidian Digital Garden Plugin: https://github.com/oleeskild/obsidian-digital-garden
- Digital Garden Documentation: https://dg-docs.ole.dev/getting-started/01-getting-started/