공개 문서

docs/content-structure.md

아래는 docs/content-structure.md 와 동일한 원문입니다. Markdown과 HTML 변환 결과를 각각 복사할 수 있습니다.

공개 문서 원문 (Markdown)

# 콘텐츠 폴더 구조 — 현재 vs v2 기획

> `lib/mdx.ts`의 수집 로직·모듈 구간과 맞춰 두었습니다.

---

## 현재 (단기)

- **경로**: `content/courses/` 한 단계만 사용 (플랫).
- **파일**: `00-intro.mdx` ~ `16-integrated-workflow.mdx` (총 **17챕터**).
- **제외**: `index.mdx`(목차), `_` 로 시작하는 파일은 목록에서 제외.
- **모듈 구간** (`getModuleInfo(order)`):
  - `order === 0` → Module 0 (AI 코딩 도구 개요)
  - `order 1–5` → Module 1 (Cursor)
  - `order 6–9` → Module 2 (Claude Code)
  - `order 10–12` → Module 3 (Gemini CLI)
  - `order 13–15` → Module 4 (Google Workspace CLI)
  - `order 16+` → Module 5 (실전 프로젝트)

---

## v2 기획과의 차이

| 항목 | 현재 | v2 기획 (curriculum-v2-plan.md) |
|------|------|----------------------------------|
| 챕터 수 | 17 | 19+ |
| 폴더 | 플랫 (`content/courses/*.mdx`) | 서브폴더 (`module-0/` ~ `module-5/`) |
| Module 0 | 1챕터 (00-intro) | 3챕터 (00-1, 00-2, 00-3) |
| Module 1 | 5챕터 (01~05) | 6챕터 |
| Module 2 | 4챕터 (06~09) | 4챕터 |
| Module 3 | 3챕터 (10~12) | 3챕터 |
| Module 4 | 3챕터 (13~15, Google Workspace CLI) | 3챕터 |
| Module 5 | 1챕터 (16, 실전) | 3챕터 |

v2 Phase 2 이후 챕터가 늘어나면 위 표와 기획안을 기준으로 콘텐츠를 보강하면 됩니다.

---

## 중기: 서브폴더 전환 시

챕터가 많아지면 다음 구조로 옮기는 것을 권장합니다.

```
content/courses/
├── index.mdx
├── module-0/
│   ├── 00-1-ai-tools-overview.mdx
│   ├── 00-2-signup.mdx
│   └── 00-3-env-install.mdx
├── module-1-cursor/
│   ├── 01-1-install.mdx
│   └── ...
├── module-2-claude-code/
├── module-3-gemini-cli/
├── module-4-google-workspace-cli/
└── module-5-project/
```

**코드 변경**:

- `getAllCourses()`: `fs.readdirSync(COURSES_DIR)` 대신 서브폴더를 순회하며 `*.mdx` 수집 (재귀 또는 `glob`).
- `getCourse(slug)`: slug에 따라 `content/courses/**/${slug}.mdx` 검색하거나, slug ↔ 상대 경로 매핑 유지 (예: `slug`가 `00-1-ai-tools-overview`이면 `module-0/00-1-ai-tools-overview.mdx`).

이전 전에 `docs/content-structure.md`와 `lib/mdx.ts` 주석을 갱신하는 것을 권장합니다.

공개 문서 변환 코드 (HTML)

<h1>콘텐츠 폴더 구조 — 현재 vs v2 기획</h1>
<blockquote>
<p><code>lib/mdx.ts</code>의 수집 로직·모듈 구간과 맞춰 두었습니다.</p>
</blockquote>
<hr>
<h2>현재 (단기)</h2>
<ul>
<li><strong>경로</strong>: <code>content/courses/</code> 한 단계만 사용 (플랫).</li>
<li><strong>파일</strong>: <code>00-intro.mdx</code> ~ <code>16-integrated-workflow.mdx</code> (총 <strong>17챕터</strong>).</li>
<li><strong>제외</strong>: <code>index.mdx</code>(목차), <code>_</code> 로 시작하는 파일은 목록에서 제외.</li>
<li><strong>모듈 구간</strong> (<code>getModuleInfo(order)</code>):<ul>
<li><code>order === 0</code> → Module 0 (AI 코딩 도구 개요)</li>
<li><code>order 1–5</code> → Module 1 (Cursor)</li>
<li><code>order 6–9</code> → Module 2 (Claude Code)</li>
<li><code>order 10–12</code> → Module 3 (Gemini CLI)</li>
<li><code>order 13–15</code> → Module 4 (Google Workspace CLI)</li>
<li><code>order 16+</code> → Module 5 (실전 프로젝트)</li>
</ul>
</li>
</ul>
<hr>
<h2>v2 기획과의 차이</h2>
<table>
<thead>
<tr>
<th>항목</th>
<th>현재</th>
<th>v2 기획 (curriculum-v2-plan.md)</th>
</tr>
</thead>
<tbody><tr>
<td>챕터 수</td>
<td>17</td>
<td>19+</td>
</tr>
<tr>
<td>폴더</td>
<td>플랫 (<code>content/courses/*.mdx</code>)</td>
<td>서브폴더 (<code>module-0/</code> ~ <code>module-5/</code>)</td>
</tr>
<tr>
<td>Module 0</td>
<td>1챕터 (00-intro)</td>
<td>3챕터 (00-1, 00-2, 00-3)</td>
</tr>
<tr>
<td>Module 1</td>
<td>5챕터 (01~05)</td>
<td>6챕터</td>
</tr>
<tr>
<td>Module 2</td>
<td>4챕터 (06~09)</td>
<td>4챕터</td>
</tr>
<tr>
<td>Module 3</td>
<td>3챕터 (10~12)</td>
<td>3챕터</td>
</tr>
<tr>
<td>Module 4</td>
<td>3챕터 (13~15, Google Workspace CLI)</td>
<td>3챕터</td>
</tr>
<tr>
<td>Module 5</td>
<td>1챕터 (16, 실전)</td>
<td>3챕터</td>
</tr>
</tbody></table>
<p>v2 Phase 2 이후 챕터가 늘어나면 위 표와 기획안을 기준으로 콘텐츠를 보강하면 됩니다.</p>
<hr>
<h2>중기: 서브폴더 전환 시</h2>
<p>챕터가 많아지면 다음 구조로 옮기는 것을 권장합니다.</p>
<pre><code>content/courses/
├── index.mdx
├── module-0/
│   ├── 00-1-ai-tools-overview.mdx
│   ├── 00-2-signup.mdx
│   └── 00-3-env-install.mdx
├── module-1-cursor/
│   ├── 01-1-install.mdx
│   └── ...
├── module-2-claude-code/
├── module-3-gemini-cli/
├── module-4-google-workspace-cli/
└── module-5-project/
</code></pre>
<p><strong>코드 변경</strong>:</p>
<ul>
<li><code>getAllCourses()</code>: <code>fs.readdirSync(COURSES_DIR)</code> 대신 서브폴더를 순회하며 <code>*.mdx</code> 수집 (재귀 또는 <code>glob</code>).</li>
<li><code>getCourse(slug)</code>: slug에 따라 <code>content/courses/**/${slug}.mdx</code> 검색하거나, slug ↔ 상대 경로 매핑 유지 (예: <code>slug</code>가 <code>00-1-ai-tools-overview</code>이면 <code>module-0/00-1-ai-tools-overview.mdx</code>).</li>
</ul>
<p>이전 전에 <code>docs/content-structure.md</code>와 <code>lib/mdx.ts</code> 주석을 갱신하는 것을 권장합니다.</p>