AI Coding
Astro 블로그에 Decap CMS 연동하기
Brewed on 2025년 11월 18일
왜 CMS가 필요한가?
블로그를 처음 만들 때는 VS Code에서 마크다운 파일을 직접 작성해서 git push를 하는 방식이 개발자스럽고 멋지다고 생각했다. 하지만 며칠 지나지 않아 깨달았다.
“외부에서 아이디어가 떠올랐을 때 바로 글을 쓸 수가 없네?”
노트북을 펴고 에디터를 켜고 커밋을 하는 과정이 ‘글쓰기’를 어렵게 했다. 그래서 도입했다. Decap CMS (구 Netlify CMS).
Git 기반의 Headless CMS
Decap CMS의 가장 큰 장점은 데이터베이스(DB)가 필요 없다는 점이다. 내가 웹 관리자 페이지에서 글을 쓰고 ‘발행’ 버튼을 누르면, CMS가 알아서 .md 파일을 생성해 내 GitHub 저장소에 커밋(Commit)을 해준다.
즉, 블로그 관리자 화면을 가지면서도 여전히 모든 데이터는 Git으로 관리되는 완벽한 구조다.
난관: Cloudflare와 OAuth 인증
가장 큰 걸림돌은 로그인이었다.
로컬(localhost)에서는 별도 인증 없이 잘 작동했지만, 실제 서버(Cloudflare Pages)에 배포하니 GitHub 로그인을 위해 중개 서버(Backend)가 필요했다.
보통은 Netlify 호스팅을 쓰면 자동으로 해결되지만 나는 Cloudflare를 쓰고 싶었다. 해결책은 Cloudflare Workers였다.
- GitHub OAuth App을 생성해서 Client ID/Secret 발급.
- Cloudflare Workers에 인증을 대행해 줄 작은 서버 코드 배포.
- Decap CMS 설정(
config.yml)에서base_url을 내 Worker 주소로 연결.
backend:
name: github
repo: 이름/저장소명
branch: main
base_url: workers.dev로 끝나는 주소
auth_endpoint: auth