개발 블로그 시작하기 — GitHub Pages 기술 블로그 구축 실전

게시일: 2025년 11월 28일 · 14분 읽기

블로그 시작이 어려운 건 글쓰기가 아니라 완벽주의다. 나도 2년을 고민했다. 완벽한 디자인, 완벽한 글, 완벽한 발행. 하지만 일단 공개하고 나중에 고치는 게 맞다. 이 글에서는 내가 이 블로그를 만들면서 배운 것들을 정리했다.

왜 블로그를 쓸까?

블로그를 시작하기 전에 동기를 명확히 해야 한다.

커리어 관점

기술 블로그는 포트폴리오다. 이력서에는 "Node.js 경험 3년"이라고만 쓰지만, 블로그에는 "Node.js로 어떻게 성능을 개선했는지"를 보여줄 수 있다. 채용담당자나 헤드헌터는 개발자의 진정한 실력을 알고 싶어 한다. 글로 보여주면 된다.

학습 관점

글을 쓰면서 내가 아는 것과 모르는 것이 명확해진다. 블로그에 쓰려고 정리하다 보면, 이해가 깊어진다. 이를 "학습의 최고 수준"이라고 부른다.

커뮤니티 관점

좋은 글은 사람들을 돕는다. 내가 경험한 문제를 해결한 방법을 공유하면, 같은 문제로 고민하는 사람들이 도움을 받는다. 이것이 개발자의 가장 큰 만족감이다.

플랫폼 선택

블로그 플랫폼은 여러 가지가 있다.

플랫폼 장점 단점 추천
GitHub Pages 무료, Git 기반, 커스터마이징 가능 빌드 필요, 학습곡선 개발자
Astro 현대적, 빠름, 마크다운 셀프호스팅 필요 성능 중시
Hugo 매우 빠름, 간단함 커스터마이징 제한 빠른 시작
Gatsby 강력함, React 기반 느림, 복잡함 큰 프로젝트
Notion, Medium 매우 쉬움, 커뮤니티 제한된 커스터마이징 시작

나는 GitHub Pages를 추천한다. 무료이고, Git 기반이고, 개발자에게 자연스럽기 때문이다.

GitHub Pages 설정

1단계: 저장소 생성


# GitHub에서 저장소 생성
# 이름: username.github.io
# Public으로 설정

2단계: Jekyll 설정

GitHub Pages는 기본으로 Jekyll을 지원한다.


# 로컬에서 Jekyll 설치
gem install bundler jekyll

# 새 프로젝트 생성
jekyll new blog
cd blog

# 로컬에서 테스트
bundle exec jekyll serve

# http://localhost:4000에서 확인

_config.yml 설정


title: Goldtag
description: 현업 개발자의 기술 블로그
author: Senior Developer
email: contact@example.com

# GitHub Pages 설정
github_username: your_username
twitter_username: your_twitter

# URL 설정
url: "https://username.github.io"
baseurl: ""

# SEO 설정
plugins:
  - jekyll-seo-tag
  - jekyll-sitemap
  - jekyll-feed

글쓰기 프로세스

파일 구조


blog/
├── _posts/
│   └── 2026-02-26-jwt-security.md
├── _config.yml
└── README.md

포스트 작성

파일명은 YYYY-MM-DD-title.md 형식이어야 한다.


---
layout: post
title: "JWT 인증 구현 시 놓치기 쉬운 보안 포인트"
date: 2026-02-26
categories: [Security]
tags: [jwt, security, authentication]
---

# 제목

본문 시작...

글쓰기 팁

  1. 개요부터 작성: 글의 구조를 먼저 정한다.
  2. 초안을 빨리: 완벽함을 기다리지 말고 먼저 쓴다.
  3. 코드 예제 포함: 실제 코드를 보여주면 설득력이 증가한다.
  4. 링크 추가: 참고 자료와 관련 글을 링크한다.
  5. 검토하고 발행: 최소 한 번은 읽어보고 발행한다.

SEO 최적화

메타 태그










Sitemap 생성


# _config.yml에 추가
plugins:
  - jekyll-sitemap

이렇게 하면 /sitemap.xml이 자동으로 생성된다.

robots.txt


# robots.txt
User-agent: *
Allow: /
Sitemap: https://yourblog.com/sitemap.xml

Google Search Console 설정

1단계: 소유권 확인

  1. Google Search Console에 로그인
  2. 새 속성 추가 (https://yourblog.com)
  3. 소유권 확인 (HTML 파일 업로드 또는 메타 태그)

2단계: Sitemap 제출

  1. Search Console > Sitemap
  2. /sitemap.xml 제출

3단계: 모니터링

  1. Performance 탭에서 검색 노출 확인
  2. Coverage에서 색인 상태 확인
  3. Enhancements에서 개선 사항 확인

Google AdSense 신청

블로그가 어느 정도 트래픽을 받으면 수익화를 생각할 수 있다.

AdSense 신청 전 체크리스트

AdSense 신청 거절 이유와 해결책

거절 이유 해결책
콘텐츠 부족 최소 30-50개의 양질의 글 작성
자동생성 콘텐츠 직접 작성한 고유한 내용 보장
저작권 침해 다른 블로그 복사-붙여넣기 금지
클릭 유도 "광고 클릭하세요" 같은 표현 금지
가상 통화 암호화폐, NFT 홍보 금지

블로그 성장 전략

초기 3개월

3-6개월

6개월 이후

개발자로서의 추가 팁

코드 하이라이팅


```javascript
function hello() {
  console.log('Hello, World!');
}
```

이미지 최적화


# 이미지 압축
imagemin img/** --out-dir=img_optimized

# WebP 변환
cwebp input.jpg -o output.webp

배포 자동화


# .github/workflows/deploy.yml
name: Deploy

on: [push]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.0
          bundler-cache: true
      - run: bundle exec jekyll build
      - uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./_site

정리

블로그는 단순한 글의 모음이 아니라, 당신의 전문성을 보여주는 플랫폼이다. 처음부터 완벽할 필요는 없다. 시작하고, 배우고, 개선하는 과정이 중요하다. 내 경험상 처음 5개의 글은 조금 어색할 수 있지만, 그 이후로는 자연스러워진다. 지금 바로 시작하자.

iL
ian.lab

실무 개발자입니다. 현장에서 겪은 문제와 해결 과정을 기록합니다. 오류 제보는 연락처로 보내주세요.