
블로그 만들기: 처음부터 끝까지 따라하는 가이드
이 블로그를 실제로 만든 과정 그대로다. 명령어와 함께, 왜 그렇게 하는지도 한 줄씩 붙였다.
1단계. 뭘 원하는지 정하기
- 주제 — 기술, 일상, 리뷰, 특정 분야 실무 경험 등. 주제가 분명할수록 나중이 쉬워진다.
- 배포 방식 — GitHub Pages는 git을 알아야 한다. Cloudflare Pages는 터미널 명령어 한 줄로 끝난다. 이 글은 후자를 쓴다.
- 디자인 톤 — 심플하게 할지 컬러풀하게 할지 대략만 정해두자. 완벽할 필요는 없다.
2단계. 개발 환경 준비하기
터미널 여는 법(macOS): ⌘ + Space → “터미널” 입력 → Enter.
Node.js가 설치되어 있는지 확인:
node -v
npm -v
버전 번호가 뜨면 통과. 안 뜨면 설치:
brew install node
brew 명령어도 안 된다면 brew.sh에서 Homebrew부터 설치해야 한다.
3단계. Astro로 블로그 뼈대 만들기
Astro는 블로그처럼 글 중심 사이트에 맞는 가벼운 프레임워크다. 한 줄로 템플릿이 만들어진다:
npm create astro@latest -- my-blog --template blog --install --no-git --yes
my-blog→ 원하는 폴더 이름으로 바꿔도 됨--template blog→ 글 목록, 개별 글 페이지, RSS까지 다 포함된 템플릿
cd my-blog
npm run dev
브라우저에서 http://localhost:4321 접속 → 기본 템플릿 블로그가 보이면 정상이다. 파일을 저장할 때마다 자동으로 새로고침된다.
4단계. 기본 정보 바꾸기
템플릿엔 가짜 문구(lorem ipsum)가 들어있다. 이 둘은 꼭 바꾸자.
src/consts.ts:
export const SITE_TITLE = '내 블로그 이름';
export const SITE_DESCRIPTION = '블로그 한 줄 소개.';
src/pages/about.astro: 예시 문구를 지우고 실제 소개로 채운다.
편집은 VS Code 같은 코드 에디터로 하면 편하다. 파일 탐색기 + 미리보기(⌘+Shift+V)가 같이 있어서 코드를 잘 몰라도 접근하기 쉽다.
5단계. Cloudflare Pages 배포 준비
지금은 내 컴퓨터에만 있는 상태다. 남이 보려면 서버에 올려야(배포) 한다.
npm install -D wrangler
npx wrangler login
login 실행하면 브라우저 창이 자동으로 뜬다. 거기서 승인 버튼만 누르면 끝. 계정이 없으면 이 화면에서 무료로 만들 수 있다.
6단계. 실제로 배포하기
주의: 최신 wrangler는 기본적으로 더 복잡한 배포 방식(Workers)으로 자동 전환을 시도하다 실패한다. 프로젝트를 처음 만들 때는 --force를 꼭 붙여서 막는다:
npx wrangler pages project create my-blog --production-branch=main --force
그 다음부턴 이 두 줄이면 끝:
npm run build
npx wrangler pages deploy dist --project-name=my-blog
터미널에 뜨는 https://my-blog.pages.dev가 내 블로그 주소다. 새 글을 올릴 때마다 이 두 줄을 다시 실행해야 실제로 반영된다.
매번 치기 귀찮다면 package.json의 scripts에 추가:
"deploy": "astro build && wrangler pages deploy dist --project-name=my-blog"
이후로는 npm run deploy 한 줄이면 끝.
7단계. 글 쓰는 방법
src/content/blog/ 폴더에 .md 파일 하나 = 글 하나. 파일명이 곧 주소가 된다 (first-post.md → /blog/first-post).
---
title: '글 제목'
description: '한 줄 요약.'
pubDate: 'Sep 18 2026'
---
본문은 여기부터.
--- 사이는 프런트매터(제목·날짜 등 정보), 그 아래가 실제 글 내용이다.
꼭 필요한 마크다운 문법 다섯 가지:
**굵게***기울임*## 소제목- 목록[링크 글자](주소)
저장하면 /blog에 자동으로 뜬다. 단, 6단계의 배포 명령어를 다시 실행해야 실제 사이트에도 반영된다 — 저장만 해서는 나만 볼 수 있다.
8단계. 디자인 손보기
src/styles/global.css 맨 위 :root { } 안에 색상값들이 모여있다 (예: --accent). 이 값 하나 바꾸면 그 색을 쓰는 버튼·링크·밑줄이 전부 한 번에 바뀐다.
완벽하게 만들려 하지 말고, 일단 배포해서 실제로 보면서 조금씩 고치는 게 더 빠르다.
9단계. 검색엔진에 등록하기 (SEO)
지금은 “존재하는” 사이트지 “검색되는” 사이트가 아니다.
astro.config.mjs의site값을 실제 주소로:site: 'https://my-blog.pages.dev',public/robots.txt생성:User-agent: * Allow: / Sitemap: https://my-blog.pages.dev/sitemap-index.xml- Google Search Console에 등록 — **“도메인”이 아니라 “URL 접두어”**를 고른다. (
pages.dev는 내 DNS가 아니라서 “도메인” 방식은 실패한다.) “URL 접두어”는 대신 “HTML 태그” 인증을 쓸 수 있다 — 받은 코드를src/components/BaseHead.astro의<head>안에 붙이고 재배포. - 인증 후 Sitemaps 메뉴에서
sitemap-index.xml제출.
주의: 제출한다고 바로 검색에 뜨지 않는다. 며칠 걸릴 수 있고, 정상이다. 여러 번 다시 제출해도 안 빨라진다.
10단계. 모바일에서 꼭 확인하기
데스크톱에서 멀쩡해도 폰에서는 이미지가 화면 밖으로 삐져나가는 경우가 흔하다. 원칙 하나: 실제 폰으로 열어보고, 이상하면 그 자리에서 스크린샷. “이상해요”보다 스크린샷 한 장이 훨씬 빨리 원인을 찾게 해준다.
자주 하는 실수
npm명령어가 “command not found” → Node.js 설치부터 다시 확인.- 배포했는데 사이트가 안 바뀜 →
npm run build를 빼먹었거나, 브라우저 캐시 문제일 수 있다. 새로고침(⌘+Shift+R)해보자. - SEO 등록에서 계속 실패 → “도메인” 속성으로 시도했을 가능성이 높다. “URL 접두어”로 다시.
마무리
원하는 것 정하기 → 환경 준비 → Astro 설치 → 정보 채우기 → 배포 준비 → 배포 → 글쓰기 → 디자인 → SEO → 모바일 확인.
완벽하게 시작할 필요 없다. 일단 배포하고, 보이는 문제부터 하나씩 고치면 된다.