# GN Blog 글 작성 규격

사내 기술 블로그(GN Blog)에 올리는 글의 **디자인 규격**입니다.
이미 있는 md·html 의 겉모습만 맞출 때도, 새로 쓸 때도 같은 규격을 씁니다.
**이 파일을 AI에게 첨부하고, 아래 0장의 프롬프트를 그대로 붙여넣으면 됩니다.**

---

## 0. 이대로 복사해서 쓰세요

이 규격은 **모양(디자인)에 대한 규격**입니다. 이미 있는 글의 겉모습만 맞추는 데도 쓰고,
새로 쓰는 데도 씁니다. 자주 쓰는 쪽은 앞의 것입니다.

### (가) 이미 있는 글의 디자인만 맞추기

~~~
첨부한 STYLE.md 규격에 맞게 이 파일의 디자인만 고쳐줘.

지킬 것
- 내용은 바꾸지 마. 문장·수치·순서·제목을 그대로 두고 겉모양만 맞춰
- 규격 3장의 구성 요소로 바꿔 (콜아웃, 목차, 장, 표, 질문·답변, 참고자료)
- 규격에 없는 class·CSS·색상 하드코딩·외부 라이브러리는 다 걷어내
- 원래 형식(md 는 md 로, html 은 html 로)을 그대로 유지해
- 이미지·첨부파일이 이미 있으면 그대로 두고, 없으면 새로 만들지 마
- 완성된 파일 내용만 코드블록 하나로 줘. 앞뒤 설명·인사는 붙이지 마
- HTML 태그 안에 마크다운이 들어가면 markdown="1" 을 빠뜨리지 마
~~~

내용도 손봐도 되면 마지막에 `문장이 어색한 곳은 7장 문체에 맞게 다듬어도 돼` 를 덧붙입니다.

### (나) 새로 쓰기

~~~
첨부한 STYLE.md 규격대로 글을 하나 써줘.

주제: (여기에 무엇을 설명할지 적기)
형식: md
분량: 화면 3~4개 (장 3~5개)

지킬 것
- 완성된 파일 내용만 코드블록 하나로 줘. 앞뒤 설명·인사는 붙이지 마
- 코드블록 뒤에 파일명 한 줄만
- 규격 4장의 완성 예시와 같은 구조로 써 (시리즈 박스는 연재물일 때만)
- 규격에 없는 class·CSS·외부 라이브러리는 쓰지 마
- 이미지는 넣지 마. 글만으로 이해되게 써
- 모르는 수치·기능·화면 이름은 지어내지 말고 (확인 필요) 로 표시해
- HTML 태그 안에 마크다운이 들어가면 markdown="1" 을 빠뜨리지 마
~~~

`형식: html` 로 바꾸면 5장 예시를 따라 씁니다. 특별한 이유가 없으면 **md**로 씁니다.

**덧붙일 수 있는 요청** (필요할 때만 한 줄씩 더합니다)

| 원하는 것 | 덧붙일 말 |
|---|---|
| 이미지 자리 잡기 | `설명이 필요한 곳에 이미지 자리를 잡고, 어떤 화면을 캡처해야 하는지 코드블록 뒤에 목록으로 알려줘` |
| 난이도 표시 | `난이도는 중급으로 표시해` (기초·중급·심화 중 하나) |
| 키워드 지정 | `키워드는 업무, 개발 로 넣어줘` |
| 썸네일 | `2-1장 규격대로 썸네일 SVG 도 한 장 만들어줘` |

---

## 1. md 와 html — 무엇이 다른가

같은 결과를 두 가지 방법으로 쓸 수 있습니다. 표현력은 같고 문법만 다릅니다.

| | **.md** | **.html** |
|---|---|---|
| 글 제목 | 첫 줄 `# 제목` | `<title>제목</title>` 과 `<h1>제목</h1>` 둘 다 |
| 난이도 *(선택)* | `난이도: 중급` | `<meta name="level" content="중급">` |
| 키워드 *(선택)* | `태그: 업무, 개발` | `<meta name="tags" content="업무, 개발">` |
| 스타일 | 안 씀 (서버가 적용) | `<link rel="stylesheet" href="/post.css">` 한 줄 |
| 바깥 골격 | 없음. 바로 본문 | `<header class="top">` + `<div class="wrap">` 로 감쌈 |
| 문단 | 빈 줄로 구분 | `<p>…</p>` |
| 장 제목 | `## 1. 제목` | `<h2>1. 제목</h2>` |
| 목록 | `- 항목` | `<ul><li>항목</li></ul>` |
| 굵게 | `**굵게**` | `<strong>굵게</strong>` |
| 코드블록 | 백틱 세 개로 감쌈 | `<pre><code>…</code></pre>` |
| 표 | 파이프 표 그대로 (**감쌀 필요 없음**) | `<div class="tablewrap"><table>…</table></div>` |
| 이미지 *(선택)* | `![설명](파일.png)` | `<figure><img src="파일.png" alt="설명"><figcaption>설명</figcaption></figure>` |
| 구성 요소 | HTML 조각 + **`markdown="1"`** | HTML 조각 그대로 (markdown="1" 불필요) |

**md 에서만 신경 쓸 것 두 가지**

1. **`markdown="1"`** — HTML 태그 안에 마크다운(`##`, `**굵게**`, 목록, 표)이 들어가면 여는 태그에 붙입니다. 빠뜨리면 안쪽이 글자 그대로 나옵니다.
   - 필요: `<section>`, `<blockquote>`
   - 불필요: `<div class="faq">`, `<nav class="toc-inline">`, `<div class="series">` (안이 순수 HTML이라서)
   - 붙인 태그 안에서는 **여는 태그 다음 줄과 닫는 태그 앞 줄을 비웁니다**
2. **줄바꿈** — 문단 안에서 누른 줄바꿈이 화면에도 그대로 나옵니다. 문단은 빈 줄로 나누고 한 문단 안에서는 줄을 끊지 마세요.

**html 에서만 신경 쓸 것 두 가지**

1. 본문을 감싸는 요소의 class 는 반드시 **`wrap`** 입니다. 커버 이미지가 이 안의 첫 요소로 들어가고, 폭 768px 가운데 정렬이라야 왼쪽 좋아요 버튼과 겹치지 않습니다
2. 표는 항상 **`<div class="tablewrap">`** 로 감쌉니다. 안 감싸면 좁은 화면에서 페이지 전체가 가로로 밀립니다

---

## 2. 파일명, 이미지, 첨부파일

**셋 다 없어도 글은 올라갑니다.** 필요할 때만 봅니다.

### 파일명

```
번호_난이도-분류_제목.md      05_중급-데이터_엑셀데이터.md
제목.md                      엑셀데이터.md
```

- 앞의 `번호_난이도-분류_` 는 **선택**입니다. 그냥 `제목.md` 로 두면 목록에 이름순으로 들어갑니다
- 번호 2자리를 붙이면 그 순서가 **시리즈 순서**가 됩니다. 글 끝의 `이전글 / 다음글` 이 이 순서를 따릅니다
- 난이도를 파일명에 넣지 않아도, 올린 뒤 수정 화면에서 골라 바꿀 수 있습니다
- 쓸 수 있는 문자: 한글·영문·숫자·공백·`. _ ( ) -`
- 브라우저에서 직접 쓸 때는 제목이 파일명이 되므로 신경 쓰지 않아도 됩니다

### 이미지 (넣을 때만)

**글만으로 설명되면 이미지는 넣지 않습니다.** 화면을 보여 줘야만 이해되는 곳에만 넣습니다.

- **글과 같은 폴더에 두고 파일명만** 적습니다. 경로를 붙이지 않습니다
- 이름은 `글파일명_1.png`, `_2.png` … 순서로. 이렇게 두면 글을 지울 때 함께 정리됩니다
- 설명(`alt`)은 화면을 못 보는 사람에게 전달될 내용으로 채웁니다
- AI는 이미지를 만들 수 없습니다. 넣어 달라고 하면 **자리만 잡고**, 어떤 화면을 캡처해야 하는지 코드블록 뒤에 목록으로 알려주게 하세요

### 첨부파일 (넣을 때만)

**형식 제한은 없습니다.** pdf·엑셀·워드·PPT·한글·zip 은 물론 도면(dwg)·영상·이미지 원본(psd)·`.md`·`.html` 무엇이든 올라갑니다.

`.md` 와 `.html` 은 글 파일과 이름이 겹치므로 서버가 앞에 `_` 를 붙여 저장합니다.
본문 링크도 `[안내.md](_안내.md)` 처럼 자동으로 맞춰 넣습니다. 내려받을 때는 `_` 없는 원래 이름으로 저장됩니다.

파일은 글과 같은 폴더에 둡니다. 화면에서는 📎 아이콘이 붙은 칩으로 보이고, 누르면 내려받습니다.

**본문에 안 적어도 됩니다.** 글 맨 아래에 `첨부파일` 칸이 자동으로 붙고, 글에 딸린 문서가 이름·크기와 함께 목록으로 나옵니다.

본문 중간에 넣고 싶은 파일만 링크를 겁니다. 그렇게 건 파일은 아래 칸에서 빠져 두 번 나오지 않습니다.

```markdown
자세한 내용은 [2026 상반기 정리.pdf](2026 상반기 정리.pdf) 를 보세요.
```

---

## 2-1. 썸네일

**따로 만들지 않아도 됩니다.** 썸네일 파일이 없으면 서버가 같은 모양의 표지를 자동으로 그려 줍니다 — 1200×630, 키워드 색 대각선 그라데이션, 왼쪽 위 `GN Blog`, 오른쪽 위 키워드 알약, 가운데 제목, 왼쪽 아래 `분류 · 주제`.

직접 만들 때도 이 규격을 따릅니다.

| 항목 | 값 |
|---|---|
| 크기 | 1200 × 630 (png·jpg) |
| 배경 | 왼쪽 위 → 오른쪽 아래 대각선 그라데이션 |
| 색 | 설명 `#20C997→#0B8A66` · 업무 `#FFA94D→#E8590C` · 개발 `#5C7CFA→#3B5BDB` · 제안 `#CC5DE8→#9C36B5` (첫 키워드를 따름) |
| 글자 | 전부 흰색. 로고 34px / 제목 64px 굵게(최대 2줄) / 아래 설명 26px |
| 여백 | 왼쪽 72px 정렬 |
| 파일명 | **글과 똑같은 이름** (`05_중급-데이터_엑셀데이터.png`) |

AI에게 만들어 달라고 하면 위 규격대로 **1200×630 SVG 한 장**을 내놓게 하세요. 저장한 뒤 png 로 바꿔 올리면 됩니다.

---

## 3. 쓸 수 있는 구성 요소

스타일이 이미 정의돼 있습니다. **새로 만들지 말고 이것만 씁니다.**

| 요소 | class | 쓰는 곳 |
|---|---|---|
| 콜아웃 (민트) | `blockquote` | 글 첫머리의 `이 글의 목표` |
| 콜아웃 (빨강) | `blockquote class="danger"` | 보안 안내, 하면 안 되는 것 |
| 콜아웃 (노랑) | `blockquote class="warn"` | 되돌릴 수 없는 작업 주의 |
| 콜아웃 라벨 | `span class="bq-label"` | 콜아웃 첫머리 굵은 글자 |
| 목차 | `nav class="toc-inline"` | 장이 3개 이상일 때 |
| 장 | `section` + `id` | 목차 링크(`#s1`)와 짝 |
| 표 | `div class="tablewrap"` | html 에서만 (md 는 불필요) |
| 질문·답변 | `div class="faq"` + `p.q` / `p.a` | `Q.` `A.` 는 자동으로 붙음 |
| 시리즈 박스 | `div class="series"` | 연재물일 때만 |
| 참고자료 | `footer class="refs"` + `p.stamp` | 글 맨 끝 |
| 태그 칩 | `div class="tags"` + `span.tag` | html 제목 아래 |
| 작성 정보 | `div class="meta"` | html 제목 아래 한 줄 |

색이 필요하면 토큰만 씁니다 — `--text` `--muted` `--accent` `--box` `--rule` `--danger` `--warn`.
**색을 직접 쓰면(`color:#333`) 다크 모드에서 깨집니다.**

---

## 4. 완성 예시 — `.md`

그대로 올리면 동작하는 파일입니다. **이 구조를 따라 쓰세요.**

`난이도:` `태그:` 두 줄은 **선택**입니다. 요청하지 않았으면 빼고 바로 본문으로 들어갑니다.

~~~~markdown
# 엑셀 데이터 다루기

난이도: 중급

태그: 업무, 개발

<div class="series">
<span class="idx">5/9</span>
<span class="label">시리즈</span>
<span class="name">AI 활용 가이드 · 중급 — 데이터</span>
</div>

<blockquote markdown="1">
<span class="bq-label">이 글의 목표</span> — ① 여러 CSV 합치기 ② 중복·오타 정리하기 ③ 집계표 만들기. 엑셀 함수나 파이썬을 몰라도 됩니다.
</blockquote>

<blockquote class="danger" markdown="1">
<span class="bq-label">시작 전 안내 (보안)</span>

실습에는 **회사 자료가 아닌 파일**을 쓰세요. 공개 데이터나 직접 만든 표면 충분합니다. 회사 문서·도면·소스코드는 외부 AI 서비스에 입력하지 않습니다.
</blockquote>

<nav class="toc-inline">
<span class="label">목차</span>
<ol>
<li><a href="#s1">준비하기</a></li>
<li><a href="#s2">여러 CSV 합치기</a></li>
<li><a href="#s3">자주 묻는 질문</a></li>
</ol>
</nav>

<section id="s1" markdown="1">

## 1. 준비하기

작업할 파일을 폴더 하나에 모읍니다. 폴더 이름은 영문이 안전합니다.

| 준비물 | 설명 |
|---|---|
| CSV 파일 | 합칠 파일 2개 이상 |
| Claude Code | 기초-설치 편에서 설치한 상태 |

![파일을 한 폴더에 모은 화면](05_중급-데이터_1.png)

</section>

<section id="s2" markdown="1">

## 2. 여러 CSV 합치기

폴더에서 터미널을 열고 아래처럼 지시합니다.

```bash
claude "이 폴더의 CSV를 모두 합쳐서 merged.csv로 저장해줘. 헤더는 한 번만 남겨줘."
```

결과 파일을 열어 행 수가 맞는지 확인합니다.

<blockquote class="warn" markdown="1">
<span class="bq-label">주의</span> — 원본 파일은 지우지 말고 그대로 두세요. 결과가 잘못되면 다시 시작해야 합니다.
</blockquote>

</section>

<section id="s3" markdown="1">

## 3. 자주 묻는 질문

<div class="faq">
<p class="q">파일이 100개가 넘어도 되나요?</p>
<p class="a">됩니다. 다만 한 번에 처리할 양이 많으면 시간이 걸리므로 폴더를 나눠 진행하는 편이 낫습니다.</p>
<p class="q">엑셀 파일(xlsx)도 되나요?</p>
<p class="a">됩니다. CSV 대신 xlsx라고 말하면 같은 방식으로 처리합니다.</p>
</div>

</section>
~~~~
코드블록 뒤에는 이렇게만 덧붙입니다.

```
파일명: 05_중급-데이터_엑셀데이터.md

필요한 캡처
- 05_중급-데이터_1.png : CSV 파일들을 한 폴더에 모아 둔 탐색기 화면
```

---

## 5. 완성 예시 — `.html`

위 md 예시와 **똑같은 글**을 html 로 쓴 것입니다. `<html>`, `<head>`, `<body>` 태그는 쓰지 않습니다.

`<meta name="level">` 과 `<meta name="tags">` 는 **선택**입니다. 요청하지 않았으면 뺍니다.

```html
<title>엑셀 데이터 다루기</title>
<meta name="level" content="중급">
<meta name="tags" content="업무, 개발">
<link rel="stylesheet" href="/post.css">

<header class="top">
  <a class="logo" href="/">GN Blog</a>
</header>

<div class="wrap">
  <h1>엑셀 데이터 다루기</h1>

  <div class="tags">
    <span class="tag">엑셀</span>
    <span class="tag">자동화</span>
  </div>
  <div class="meta"><b>연구소 기술노트</b> · 2026년 8월 · 따라 하기 약 30분</div>

  <div class="series">
    <span class="idx">5/9</span>
    <span class="label">시리즈</span>
    <span class="name">AI 활용 가이드 · 중급 — 데이터</span>
  </div>

  <blockquote>
    <p><span class="bq-label">이 글의 목표</span> — ① 여러 CSV 합치기 ② 중복·오타 정리하기 ③ 집계표 만들기. 엑셀 함수나 파이썬을 몰라도 됩니다.</p>
  </blockquote>

  <blockquote class="danger">
    <p><span class="bq-label">시작 전 안내 (보안)</span></p>
    <p>실습에는 <strong>회사 자료가 아닌 파일</strong>을 쓰세요. 회사 문서·도면·소스코드는 외부 AI 서비스에 입력하지 않습니다.</p>
  </blockquote>

  <nav class="toc-inline">
    <span class="label">목차</span>
    <ol>
      <li><a href="#s1">준비하기</a></li>
      <li><a href="#s2">여러 CSV 합치기</a></li>
      <li><a href="#s3">자주 묻는 질문</a></li>
    </ol>
  </nav>

  <section id="s1">
    <h2>1. 준비하기</h2>
    <p>작업할 파일을 폴더 하나에 모읍니다. 폴더 이름은 영문이 안전합니다.</p>

    <div class="tablewrap">
      <table>
        <tr><th>준비물</th><th>설명</th></tr>
        <tr><td><b>CSV 파일</b></td><td>합칠 파일 2개 이상</td></tr>
        <tr><td><b>Claude Code</b></td><td>기초-설치 편에서 설치한 상태</td></tr>
      </table>
    </div>

    <figure>
      <img src="05_중급-데이터_1.png" alt="CSV 파일들을 한 폴더에 모아 둔 탐색기 화면">
      <figcaption>작업할 CSV를 한 폴더에 모아 둡니다.</figcaption>
    </figure>
  </section>

  <section id="s2">
    <h2>2. 여러 CSV 합치기</h2>
    <p>폴더에서 터미널을 열고 아래처럼 지시합니다.</p>

    <pre><code>claude "이 폴더의 CSV를 모두 합쳐서 merged.csv로 저장해줘. 헤더는 한 번만 남겨줘."</code></pre>

    <p>결과 파일을 열어 행 수가 맞는지 확인합니다.</p>

    <blockquote class="warn">
      <p><span class="bq-label">주의</span> — 원본 파일은 지우지 말고 그대로 두세요. 결과가 잘못되면 다시 시작해야 합니다.</p>
    </blockquote>
  </section>

  <section id="s3">
    <h2>3. 자주 묻는 질문</h2>
    <div class="faq">
      <p class="q">파일이 100개가 넘어도 되나요?</p>
      <p class="a">됩니다. 다만 한 번에 처리할 양이 많으면 시간이 걸리므로 폴더를 나눠 진행하는 편이 낫습니다.</p>
      <p class="q">엑셀 파일(xlsx)도 되나요?</p>
      <p class="a">됩니다. CSV 대신 xlsx라고 말하면 같은 방식으로 처리합니다.</p>
    </div>
  </section>

  <footer class="refs">
    <p class="stamp">2026년 8월 · GN연구소</p>
  </footer>
</div>
```

규격을 다 맞추지 못해도, 올릴 때 **"공용 디자인으로 맞춰서 올리기"**(기본 켜짐)가 글 안의 CSS를 걷어내고 `/post.css`·상단 바·`.wrap` 을 채워 줍니다.

---

## 6. 서버가 자동으로 붙이는 것 — 만들지 마세요

| 요소 | 위치 |
|---|---|
| 뒤로 가기, 조회수·댓글 수, 내려받기·통계·수정·삭제 | 상단 바와 오른쪽 위 (스크롤 따라옴) |
| 좋아요, 공유 | 화면 왼쪽 |
| 이전편 / 다음편, 같은 사람의 다른 글 | 본문 끝 |
| 댓글 | 그 아래 |
| 커버 이미지(썸네일) | 본문 맨 위 |
| 이미지 클릭 확대 | 본문 이미지 전체 |

같은 기능을 글 안에 또 만들면 겹칩니다. `position:fixed` 요소도 넣지 마세요.

---

## 7. 문체

- **담백한 설명체.** 비유, 후킹 문구, 감탄사, 이모지를 쓰지 않습니다
- **"~합니다" 체.** 독자는 사내 전 직원이고 사전 지식이 없다고 가정합니다
- 글 첫머리에 `이 글의 목표 — ① … ② … ③ …` 콜아웃을 넣습니다
- 장 제목에 `1. `, `2. ` 번호를 붙입니다. 장은 3~6개, 한 장은 화면 2~3개 분량
- 한 문단은 2~4줄. 항목이 3개 이상 나열되면 목록이나 표로 바꿉니다
- 화면을 설명할 때는 **실제 버튼 이름**을 그대로 씁니다 (예: `새 글 작성`)
- 실습이 있으면 **보안 콜아웃(danger)을 반드시** 넣습니다

---

## 8. 내놓기 전 점검

**항상**

- [ ] 코드블록 하나에 파일 전체가 담겼고, 앞뒤에 군더더기 설명이 없다
- [ ] md: 첫 줄이 `# 제목`
- [ ] html: `<title>` · `<link post.css>` · `.wrap` 이 있다
- [ ] md: `<section>`·`<blockquote>` 에 `markdown="1"` 이 있고 태그 옆 줄이 비어 있다
- [ ] html: 표를 `<div class="tablewrap">` 로 감쌌다
- [ ] 목차의 `#s1` 과 `<section id="s1">` 이 짝을 이룬다
- [ ] 새로 만든 class·CSS·색상 하드코딩이 없다
- [ ] 실습이 있으면 보안 콜아웃이 있다

**디자인만 고친 경우 하나 더**

- [ ] 문장·수치·순서·제목이 원본 그대로다

**넣기로 한 경우에만**

- [ ] 난이도·키워드를 요청한 값으로 적었다
- [ ] 이미지는 파일명만 적었고, 캡처 목록을 따로 적었다

---

받은 파일은 블로그 `새 글 작성` → `파일 올리기`에서 주제를 고르고 올립니다.
이미지는 같은 화면의 `본문 이미지`에서 함께 고릅니다.
브라우저에서 직접 다듬으려면 `직접 쓰기` 탭에 내용을 붙여넣으면 오른쪽에서 결과를 보며 고칠 수 있습니다.
