프로젝트
블로그 게시글 카테고리 구성 방법
2026년 3월 6일
블로그 게시글 카테고리 구성 방법
1. 카테고리 설계 원칙
- 상호 배타성: 하나의 글이 두 카테고리에 동시에 속하지 않도록 경계를 명확히 한다
- 포괄성: 앞으로 쓸 글 대부분이 기존 카테고리 안에 자연스럽게 들어올 수 있어야 한다
- 독자 시점: 운영자가 아닌 독자가 "이 블로그에서 무엇을 찾을 수 있는가"를 직관적으로 알 수 있는 이름을 쓴다
- 성장 여지: 초기에는 5개 이하로 유지하고, 글이 쌓이면서 분기한다
2. 분류 체계 방식 비교
방식 A — 주제 기반 (Topic-based)
글의 내용 영역으로 분류. 가장 일반적.
code
개발 (Development)
├── 백엔드
├── 프론트엔드
└── 인프라 / DevOps
일상 (Life)
독서 / 학습 (Learning)
회고 (Retrospective)
- 장점: 독자가 관심 분야를 빠르게 탐색 가능
- 단점: 카테고리 경계가 모호해지기 쉬움 (예: "풀스택 프로젝트"는 어디?)
방식 B — 콘텐츠 유형 기반 (Content-type-based)
글의 형식과 목적으로 분류.
| 유형 | 설명 | 예시 |
|---|---|---|
| 튜토리얼 | 따라할 수 있는 단계별 가이드 | "Next.js 배포 가이드" |
| 개념 정리 | 특정 기술/개념 설명 | "JWT vs Session 차이" |
| 프로젝트 | 만든 것을 소개하고 과정 기록 | "블로그 직접 만들기" |
| 회고 | 경험 기반 반성과 인사이트 | "2025 개발자 회고" |
| 에세이 | 의견·생각 중심의 글 | "코드 리뷰 문화에 대해" |
- 장점: 독자가 원하는 읽기 방식을 선택할 수 있음
- 단점: 주제로 탐색하기 어려움 → 태그 보완 필수
방식 C — 하이브리드 (주제 + 유형 조합)
실제 운영에서 가장 효과적. 1차 분류는 주제, 2차 분류는 태그로 유형 보완.
code
카테고리 (주제) 태그 (유형 + 세부 주제)
───────────────── ───────────────────────
개발 #tutorial, #nextjs, #fastapi
회고 #연간회고, #월간회고
독서 #비문학, #기술서
일상 #생산성, #도구
3. 권장 카테고리 구조 (개인 개발 블로그 기준)
code
개발 (Dev)
- 직접 만든 것, 기술 글, 트러블슈팅 기록
- 태그: #backend, #frontend, #infra, #tutorial, #troubleshooting
프로젝트 (Project)
- 완성하거나 진행 중인 사이드 프로젝트 소개 및 개발 일지
- 태그: #개발일지, #사이드프로젝트
학습 (Learning)
- 책, 강의, 아티클 읽고 정리한 글
- 태그: #독서, #강의, #요약
회고 (Retrospective)
- 주간/월간/연간 회고, 프로젝트 마무리 회고
- 태그: #월간회고, #연간회고, #프로젝트회고
생각 (Essay)
- 개발 문화, 커리어, 생산성에 대한 의견 글
- 태그: #커리어, #생산성, #개발문화
4. URL 슬러그 규칙
카테고리는 URL 경로에도 반영됨. 한글 슬러그는 SEO에 불리하므로 영문 소문자 사용.
| 카테고리 | URL 슬러그 |
|---|---|
| 개발 | /dev |
| 프로젝트 | /project |
| 학습 | /learning |
| 회고 | /retrospective |
| 생각 | /essay |
포스트 URL 패턴: /{category}/{slug}
예시: /dev/nextjs-deployment-guide
5. DB 스키마 설계 (FastAPI + PostgreSQL 기준)
sql
-- 카테고리 테이블
CREATE TABLE categories (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL, -- 표시 이름 (한글 가능)
slug VARCHAR(50) UNIQUE NOT NULL, -- URL용 영문 슬러그
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- 태그 테이블
CREATE TABLE tags (
id SERIAL PRIMARY KEY,
name VARCHAR(50) UNIQUE NOT NULL
);
-- 게시글 테이블 (카테고리는 1:1)
CREATE TABLE posts (
id SERIAL PRIMARY KEY,
category_id INTEGER REFERENCES categories(id),
title VARCHAR(200) NOT NULL,
slug VARCHAR(200) UNIQUE NOT NULL,
content TEXT,
published BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- 게시글-태그 다대다
CREATE TABLE post_tags (
post_id INTEGER REFERENCES posts(id) ON DELETE CASCADE,
tag_id INTEGER REFERENCES tags(id) ON DELETE CASCADE,
PRIMARY KEY (post_id, tag_id)
);
카테고리는 글당 1개만 허용 (상호 배타성 유지). 복수 분류가 필요하면 태그로 처리.
6. 운영 지침
- 새 글 작성 전: 기존 카테고리에 맞지 않으면 바로 신설하지 말고, 가장 가까운 카테고리에 임시 배치 후 글이 3개 이상 쌓이면 분기 검토
- 카테고리 변경 시: URL 변경을 수반하므로 301 리다이렉트 처리 필수
- 태그 관리: 유사 태그 중복 방지를 위해 태그 목록을 주기적으로 정리 (예:
nextjs/next.js통일) - 미분류(Uncategorized)는 지양: 발행 전 반드시 카테고리를 지정하도록 관리자 UI에서 필수값으로 설정