CSS 한 번 쓰고 열두 번 쓰기 — 시리즈 블로그 설계 [클로드 어디까지 써봤니 EP 08]
🤖 Created with Claude (Anthropic)
클로드 어디까지 써봤니 · EP 08
CSS 한 번 쓰고 열두 번 쓰기
— 시리즈 블로그 설계를 위한 CSS 재사용 전략
클로드의 친구 · 2026년 4월 14일
EP 07에서 우리는 Blogger v3 API로 자동 게시 시스템을 만들었다. 이제 다음 질문이 생긴다: 10개 블로그, 12편 시리즈, 수십 개의 포스트를 만들 때, CSS를 매번 다시 쓰면 얼마나 낭비일까?
이번 EP 08에서는 Lucas가 경험한 CSS 통일의 필요성부터, 시리즈별 접두사 체계, 그리고 새 편을 게시할 때 기존 편의 목차를 자동으로 갱신하는 기술까지 다룬다. 설계도의 마지막 핵심 도구가 바로 이것이다.
1. 왜 시리즈에 CSS 통일이 필요한가
Lucas는 현재 10개 블로그를 운영하고 있다. 그중 일부는 연재 시리즈다.
- 요즘일본은 — 12편 시리즈, 전철·여행 가이드
- ERP/SCM 미래노트 — 14편 순환 시리즈, 엔터프라이즈 설계
- 한미일중러 정상 뉴스 — 일일 타임라인
- 배움의 자리 — 월~일 5개 관점 시리즈
초반에 Lucas는 매 포스트마다 CSS를 새로 작성했다. 결과?
⚠️ 문제점들
- 같은 스타일을 12번 정의 — 중복 코드
- EP 01의 헤더 색상을 바꾸면, EP 03~12도 따로 수정해야 함
- 새 편을 추가할 때마다 "이전 편과 스타일이 맞나?" 확인 필요
- 각 포스트마다 다른 폰트 크기, 여백 → 읽기 경험 일관성 깨짐
이 문제를 해결하는 방법이 CSS 접두사 체계와 공통 컴포넌트 설계다. 한 번 쓰면 12번(또는 그 이상) 재사용 가능하다.
2. 접두사 체계로 CSS 충돌 방지
여러 시리즈 블로그를 동시에 자동 게시할 때, 각 블로그의 CSS 클래스가 충돌할 수 있다. 예를 들어:
/* ❌ 나쁜 예: 모든 시리즈에서 같은 클래스명 사용 */
.card { background: #f0f0f0; padding: 16px; }
.title { font-size: 18px; }
.nav-link { color: blue; }
여기서 "요즘일본은" 블로그의 `.card`를 수정하면, 다른 블로그의 `.card`까지 영향을 받을 수 있다. 특히 공유 클로드 세션에서 동시 다중 게시할 때 위험하다.
해결책: 시리즈별 CSS 접두사
/* ✅ 좋은 예: 각 시리즈에 고유 접두사 */
.yjp-card { ... } /* 요즘일본은 */
.esf-card { ... } /* ERP/SCM 미래노트 */
.sns-card { ... } /* 한미일중러 정상뉴스 */
.bj-card { ... } /* 배움의 자리 */
.csn-card { ... } /* 클로드 어디까지 써봤니 */
접두사 규칙:
| 시리즈명 | 접두사 | 예시 |
|---|---|---|
| 요즘일본은 | yjp- |
yjp-hero, yjp-nav |
| ERP/SCM 미래노트 | esf- |
esf-module, esf-flow |
| 한미일중러 정상뉴스 | sns- |
sns-timeline |
| 배움의 자리 | bj- |
bj-perspective |
| 클로드 어디까지 써봤니 | csn- |
csn-episode, csn-toc |
이 체계덕분에 각 시리즈가 독립적으로 스타일 지정되며, 나중에 다른 블로그에 영향을 주지 않는다.
3. 공통 컴포넌트 설계
접두사가 정해지면, 이제 각 시리즈에서 반복되는 구조를 컴포넌트로 설계한다.
대표적인 공통 컴포넌트 5가지:
- Hero Section — 제목, 부제, 배경 이미지. 모든 시리즈 포스트의 시작
- Navigation Bar — 이전/다음 편 링크, 현재 시리즈 내 위치 표시
- Info Box — 팁, 경고, 추가 정보를 강조하는 컬러 박스
- Table — 비교표, 데이터 정렬. 반응형 설계 필수
- Table of Contents (TOC) — 시리즈의 모든 편 목록. 자동 갱신 가능하도록 HTML 구조 표준화
예를 들어, "요즘일본은" 시리즈의 Hero Section:
<div class="yjp-hero" style="background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 100%); color: white; padding: 60px 40px; text-align: center;">
<h1 class="yjp-hero-title">요즘일본은 · Part 1-1</h1>
<p class="yjp-hero-subtitle">도쿄 중심부 전철 가이드</p>
</div>
이 구조를 12편 모두에 동일하게 적용하면, 나중에 배경색 하나를 바꿀 때 모든 편이 자동으로 업데이트된다 (v3 API 대량 PATCH).
4. Blogger 호환 CSS 함정
Blogger는 자유도가 높지만, 표준 CSS와 다르게 동작하는 부분들이 있다. Lucas가 발견한 3가지 핵심 함정:
함정 1: CSS 변수 (var()) 미지원
Blogger의 자동 최적화가 var()를 인식하지 못해 무시하거나 깨뜨린다.
❌ 금지:
:root { --primary: #e2b714; }
.button { background: var(--primary); }
✅ 허용:
.button { background: #e2b714; }
함정 2: box-sizing 없음
Blogger 테마는 기본적으로 box-sizing: border-box를 설정하지 않는다. 따라서 커스텀 블록에는 반드시 선언해야 한다.
.yjp-container {
max-width: 1100px;
padding: 32px;
border: 1px solid #ddd;
box-sizing: border-box; /* 필수! */
/* padding 때문에 overflow 방지 */
}
함정 3: CSS ::before content에 이모지 금지
CSS의 ::before content에 이모지를 쓰면, Blogger의 목록 스니펫에서 깨진다.
❌ 금지:
.csn-item::before { content: "🎓"; }
✅ 허용:
<span>🎓</span> <span class="csn-item">...</span>
이 세 가지만 기억하면, Blogger 호환 CSS를 안정적으로 작성할 수 있다.
5. 반응형 설계 패턴
시리즈 블로그는 다양한 기기에서 읽힌다. 데스크톱(1100px)에서 모바일(480px)까지 일관된 경험을 제공해야 한다.
Lucas의 표준 반응형 패턴:
/* 기본: 데스크톱 (1100px max) */
.yjp-container {
max-width: 1100px;
margin: 0 auto;
padding: 60px 32px;
box-sizing: border-box;
}
/* 태블릿 & 모바일 */
@media (max-width: 768px) {
.yjp-container {
padding: 40px 20px;
}
.yjp-nav { flex-direction: column; }
}
@media (max-width: 480px) {
.yjp-container {
padding: 24px 16px;
}
.yjp-hero { padding: 40px 20px; }
.yjp-title { font-size: 24px; }
}
핵심은 단계별 감소다:
- 데스크톱(1100px): 전체 폭, 넉넉한 여백
- 태블릿(768px): 패딩 축소, 플렉스 방향 변경
- 모바일(480px): 최소 폰트 크기, 작은 이미지
이 패턴을 모든 시리즈 CSS에 동일하게 적용하면, 각 시리즈가 어떤 기기에서도 깔끔하게 렌더링된다.
6. 시리즈 목차 자동 갱신 — v3 API 활용
시리즈의 강력한 점은 상호 연결성이다. EP 09가 나오면, EP 08의 목차를 자동으로 갱신해야 한다.
전통적 방법 (❌ 비추천): 손으로 모든 기존 편을 열어서 링크를 추가한다. 12편이 있으면 11번 반복.
하네스 방법 (✅ 추천): v3 API로 대량 PATCH
예를 들어, EP 09가 공개되었을 때, Lucas의 자동화 스크립트는:
/* 의사코드 */
1. EP 08 포스트 내용 읽기
2. TOC 섹션 찾기 (<div id="csn-toc">...</div>)
3. "EP09" 링크 추가
4. v3 API PATCH로 EP 08 포스트 업데이트
5. EP 07, 06, 05... 차례대로 갱신
이를 위해서는 TOC를 HTML에서 쉽게 찾을 수 있게 표준화해야 한다:
이런 구조면, 클로드의 자동 갱신 스크립트가 id="csn-toc"를 찾아 정확히 갱신할 수 있다.
7. 하네스 관점 — CSS 통일의 의미
하네스 헌법에서 "Flow"는 교체 가능한 방법론을 뜻한다. CSS 통일은 바로 이것이다.
"한 번 설계한 CSS를 12번 쓸 수 있다는 것은, 설계가 교체 가능하다는 뜻이다. 나중에 새로운 디자인이 필요할 때, 하나의 접두사 체계만 바꾸면 12개 포스트가 모두 업데이트된다."
— Lucas의 설계 일지
하네스의 3가지 핵심 가치 중 하나가 정확성이다. CSS 통일은 이를 실현한다:
- 중복 제거 = 오류 가능성 감소
- 표준화 = 모든 편이 동일한 경험 제공
- 자동화 = 수정이 한 곳에서만 일어남
이것이 바로 설계도의 마지막 단계다. EP 05~08을 통해 우리는 프롬프트→구조→라우팅→CSS 통일까지, AI와 협력하는 전체 설계 체계를 완성했다.
8. 실습 — 3편 분량 시리즈 CSS 템플릿
이제 Lucas가 실제로 사용하는 CSS 템플릿을 공개한다. 이를 복사해서 본인의 시리즈에 적용할 수 있다.
시리즈 기본 구조 (3편 분량):
<!-- EP 1: Hero + Lead -->
<div class="series-container" style="max-width:1100px; margin:0 auto; padding:60px 32px 100px; font-family:'Noto Sans KR',sans-serif; box-sizing:border-box;">
<!-- Hero -->
<div class="series-hero" style="background:linear-gradient(135deg,#1a1a2e,#0f3460); color:white; padding:60px 40px; border-radius:12px; margin-bottom:40px; box-sizing:border-box; text-align:center;">
<p style="color:#e2b714; margin:0 0 16px 0;">Series Name · EP 01</p>
<h1 style="font-size:38px; font-weight:700; margin:0 0 16px 0;">제목</h1>
<p style="font-size:14px; color:#b0bec5; margin:0;">부제 및 설명</p>
</div>
<!-- Lead-in -->
<div style="background:#f8f6f0; border-left:4px solid #e2b714; padding:24px; margin-bottom:40px; border-radius:4px; box-sizing:border-box;">
<p style="margin:0; font-size:14px;">앞 편과의 연결고리...</p>
</div>
<!-- Content Sections -->
<h2 style="font-size:22px; font-weight:700; color:#1a1a2e; margin:48px 0 20px 0; padding-bottom:12px; border-bottom:3px solid #e2b714;">1. 첫 번째 주제</h2>
<p>내용...</p>
<!-- Info Box -->
<div style="background:#e3f2fd; border-left:4px solid #2196f3; padding:20px; margin:16px 0; border-radius:4px; box-sizing:border-box;">
<p style="margin:0; font-weight:600;">💡 팁</p>
<p style="margin:8px 0 0 0; font-size:14px;">추가 정보...</p>
</div>
</div>
이 템플릿의 장점:
- 인라인 스타일로 Blogger 호환 (클래스명 충돌 없음)
- box-sizing:border-box 명시적 선언
- HEX 색상 직접 사용 (var() 금지)
- 반응형 미디어쿼리 추가 가능
- 3편 모두에 동일 구조 → 자동 갱신 용이
목차 갱신 알고리즘 (의사코드):
/* EP 09 공개 후, 기존 편들 갱신 */
for episode in [EP08, EP07, EP06, ..., EP01]:
1. v3 GET으로 episode 포스트 HTML 읽기
2. id="series-toc" 섹션 파싱
3. "EP09" 링크 항목 추가
4. v3 PATCH로 포스트 업데이트
5. 30초 대기 (API rate limit)
9. 클로드의 친구 생각
한국 블로거들이 느끼는 가장 큰 피로는 뭘까? 중복 작업이다. 매일 10개 블로그를 운영하면서 각각 다른 스타일을 유지하려니, 시간이 남는 게 아니라 시간이 무너진다.
Lucas가 보여준 CSS 접두사 체계는 단순해 보이지만, 아주 영리한 설계다. 한 번의 정의로 12번 재사용한다는 건, "설계의 정확성"이 얼마나 중요한지를 보여준다. 초반 2시간을 투자해서 CSS를 제대로 설계하면, 이후 3개월을 절약한다.
특히 인상적인 건 v3 API를 활용한 목차 자동 갱신이다. "새 편이 나올 때마다 기존 편을 손으로 수정한다"는 발상을 버리고, "설계가 이를 자동으로 처리하게 한다"는 발상의 전환. 이게 바로 하네스의 Core 가치 중 하나인 "정확성"을 실현하는 방식이다.
결론: 시리즈 블로그는 "글 잘 쓰기"가 아니라 "구조 잘 짜기"다. 글쓰기는 계속해야 하지만(이건 Lucas의 몫), 구조 설계는 클로드가 먼저 제안해야 한다. 그게 이 시리즈 EP 05~08의 전체 취지다.
10. 더 알아보기
- EP 07: Blogger v3 API 마스터하기 — 자동 게시의 기초
- Lucas의 CSS 통일 실험 결과 — "요즘일본은" 12편 사례연구
- Google Blogger v3 REST API 공식 문서
- Notion 블로그 관리 시스템 — Lucas가 사용하는 통합 관리 허브
📚 전체 에피소드 목차
Phase 1: 출발점
Phase 5: 완성
Phase 2: 설계도
- EP 05: 나만의 헌법 만들기
- EP 06: Guides 완전 정복
- EP 07: 블로그 자동화 첫걸음
- ► EP 08: CSS 한 번 쓰고 열두 번 쓰기
Phase 4: 운영 심화
📖 전 19개 에피소드 | Phase 1~5 완결형 커리큘럼
🤖 Created with Claude (Anthropic)
#클로드어디까지써봤니 #시리즈블로그 #CSS통일 #WebDesign #Blogger #자동화 #프롬프트엔지니어링 #AI #블로거 #블로그자동화 #하네스헌법 #Lucas #설계도 #유튜브자동화 #경제일지 #데이터시각화 #프로세스자동화 #워크플로우 #생산성 #AI활용법
コメント
コメントを投稿