March 12, 2026

How to deploy my blog?

Good-bye Hashnode!

Hashnode라고 하는 자칭 개발자들이 사랑하는 글로벌 블로그 플랫폼을 벗어나기로 결정했다.

이유는 내가 작성한 콘텐츠가 최근에 계속 출판되지 않는 이슈가 있었고, 확인해 보니 Hashnode는 현재 AutoMod라고 해서 커뮤니티 기준을 유지하기 위해 게시물을 즉시 필터링하거나 삭제하는 자동 관리 시스템을 운영중에 있다고 했다.

그런데 그 시스템에 내 콘텐츠가 필터링되어 올라가지 않는 것이었다. 굉장히 당황스러울 수 밖에 없었는데, 작성한 거라곤 블록체인 인프라 기술과 스테이블 코인 책을 읽으면서 짧게 요약 정리한 내용이 전부기 때문이다. (설마 블록체인을 싫어하나?)

꽤 오래 전에 이의제기를 신청했지만 아직도 Published 상태가 아닌거 보니, 포기하고 다른 플랫폼을 찾기로 했다.

Basis

먼저 내가 원하는 블로그 플랫폼은 아래 기준을 충족해야 한다.

  • 눈에 보여지는 속도가 충분히 빨라야 한다.
  • 나 외에 다른 유저 활동이 보여선 안된다.
  • 서브 도메인, Git Integration, HTTPS를 지원해야 한다.
  • 그외 모든 설정은 나 대신 해줘야 한다.

그리고 내가 해당 플랫폼에서 직접 충족시킬 수 있어야 하는 기준은 이렇다.

  • 무조건 Markdown, KateX(웹 수식 표시) 지원
  • 최소한의 자바스크립트로 기능 구현
  • 정적 사이트 배포

먼저, Velog라는 국내 블로그 플랫폼이 있는데 속도가 매번 느렸다. 그래서 전혀 고려하지 않았다. (Velog 주인장님께 죄송합니다. 그렇지만 저만 그렇게 느끼는건 아니더군요)

두 번째는 dev.to라는 플랫폼인데 다른 유저 활동이 보여서 싫었다. 나는 온전히 나에게만 집중하고 싶다.

세 번째는 GitHub Pages다. 너무 유명한데 배포를 위해 워크플로를 직접 구성해야 하고, 추후 커스텀 도메인 추가나 DNS 설정 등 플랫폼 수준에서 관리해주는 영역이 너무 적어서 탈락했다.

Hello Cloudflare Pages?

최종 선택된 건 Cloudflare Pages다. 서브 도메인과 HTTPS를 제공하고, Git Integration으로 Repository 선택만 하면 자동으로 빌드/배포된 다는 점과 애플리케이션의 설정을 변경할 때 대시보드에서 필요한걸 찾기 쉽게 구성했다는 점이 좋았다.

My result, My blog…

my blog intro

배포된 페이지의 초기 버전은 위 스크린샷과 같은데, 11ty/eleventy로 만든 정적 사이트다.

11ty는 JavaScript 기반 정적 사이트 생성기로, Markdown, HTML 등 템플릿 언어를 입력으로 받아 정적 HTML 사이트를 생성할 수 있다. 때문에 개인 블로그를 만들기에 아주 적합하다 생각했다.

특히나 디렉토리 구조만으로 페이지를 구성할 수 있어 극단적으로 ls 명렁어 하나만 알아도 어디에 무엇이 있고, 어떤게 필요한지 빠르게 파악할 수 있을 정도다.

그 외에 hugo, astro, next.js, jekyll 등도 고려할 수 있었지만 개인 블로그는 사용자 상호작용이 없고, 읽기 전용 콘텐츠만 제공하니 무거운 라이브러리나 프레임워크를 쓸 이유가 전혀 없었다. 최대한 가볍고 빌드 속도가 빨라야 해서 11ty로 결정했다.

물론 위 스크린샷과 같이 UI를 구성하기 위해 어느정도 AI를 활용했지만(나는 HTML/CSS를 모른다.) 한 번 만들어두면 페이지를 추가하는 것 외에 수정할 일이 없기 때문에 만족할 만큼 뽑아 먹은거 같다.

my blog contents

최대한 단순한 UI + 애용하는 Victor Mono 폰트 + 수식과 코드 스니펫 표현까지 가능하도록 Codex와 함께 작업했다.

How to deploy?

11ty는 빌드하면 프로젝트 루트에 _site라는 디렉토리와 내부 파일(.html)들이 생기는데, 이를 대상으로 Cloudflare Pages에 배포하면 된다.

배포 방법에는 세 가지 방법이 있다.

  • 프로젝트 루트에서 npx wrangler pages deploy _site 커맨드로 배포하기
  • 대시보드에서 정적 파일 및 디렉토리 업로드로 배포하기
  • 대시보드에서 Git Integration으로 배포하기

나는 문서를 정리할 때 키워드 또는 목차 추출 → 대략적으로 정리 → 내 언어로 정리 → 최종 배포 순서를 사용한다. 때문에 문서의 입/출력이 Obsidian → GitHub → Blog로 이동한다.

그래서 GitHub → Blog로 이동 과정을 줄이기 위해, Git Integration 방식으로 배포하기로 했다. GitHub에 내 문서가 저장될 레포지토리를 만들어두고 Commit만 하면 자동으로 Pages에 배포할 수 있다.

  • [Build] → [Compute] → [Workers & Pages] → [Create Application] 클릭

how to use cloudflare pages

  • 위 스크린샷에서 Pages 배포를 하기 위해 아래 "Looking to deploy Pages? Get started"를 선택하면 된다.
  • [Git repository를 import] 하는 방식과 [파일 업로드] 방식이 있을텐데, 전자를 선택하고, 기본 설정으로 배포하면 필요한 건 전부 플랫폼에서 해준다.

cloudflare dashboard after pages deploy

배포가 안료되면 위와 같은 화면을 볼 수 있다.