MatchaLogic.
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였다.

  1. GitHub OAuth App을 생성해서 Client ID/Secret 발급.
  2. Cloudflare Workers에 인증을 대행해 줄 작은 서버 코드 배포.
  3. Decap CMS 설정(config.yml)에서 base_url을 내 Worker 주소로 연결.
backend:
  name: github
  repo: 이름/저장소명
  branch: main
  base_url: workers.dev로 끝나는 주소
  auth_endpoint: auth