# 데이터의 형태 — JSON · CSV · 문서

> **이 장에서 배우는 것**
> 구조가 있는 데이터와 없는 데이터의 차이, JSON·CSV를 읽는 법, PDF·한글
> 문서가 왜 손이 더 가는지, 그리고 한글이 깨지는 이유.

## 구조가 있느냐 없느냐

| | 구조화된 데이터 | 비구조화 데이터 |
|---|---|---|
| 모양 | 표 · 항목과 값 | 줄글 · 그림 |
| 예 | 데이터베이스, CSV, JSON | 보고서, 메일, 회의록, PDF |
| 기계가 | 바로 계산 | **읽어서 해석해야** |
| 회사에 있는 양 | 적음 | **대부분** |

**AI가 회사에서 값어치를 갖는 이유가 맨 아래 줄입니다.** 기존 시스템은
구조화된 것만 다뤘고, 회사 자료의 대부분은 줄글입니다. 언어 모델은 그 줄글을
다룹니다.

## JSON — 프로그램끼리 주고받는 표기

[실습](/guide/it-try-http)에서 본 글자 뭉치입니다. 규칙은 세 개뿐입니다.

```json
{
  "name": "김진호",
  "active": true,
  "departments": ["영업", "기획"],
  "manager": { "name": "이수민", "email": "sumin@example.com" }
}
```

| 기호 | 뜻 |
|---|---|
| `{ }` | 항목 묶음 — "이름: 값"의 모음 |
| `[ ]` | 목록 — 순서대로 여러 개 |
| `"…"` | 글자. 숫자와 `true`/`false` 는 따옴표 없이 |

**중첩이 됩니다.** 위 예에서 `manager` 의 값이 다시 `{ }` 인 것이 그것입니다.
그래서 표로는 못 담는 모양도 담깁니다.

> 눈으로 보기 어려우면 에이전트에게 "이 JSON을 표로 정리해줘"라고 하세요.
> 사람이 괄호를 세는 것보다 빠릅니다.

## CSV — 표를 텍스트로

엑셀 파일과 비슷해 보이지만 **다릅니다.**

```csv
날짜,지역,반품수량
2026-08-01,서울,14
2026-08-01,부산,3
```

| | CSV | 엑셀(.xlsx) |
|---|---|---|
| 내용 | 글자만 | 서식 · 수식 · 시트 여러 개 |
| 파일 | 텍스트 — **그대로 읽힘** | 바이너리 — 열어야 읽힘 |
| 주고받기 | 어떤 프로그램이든 | 엑셀 계열 |

**AI에게 넘길 때는 CSV가 편합니다.** 다만 쉼표가 들어간 값(`"서울, 강남"`)은
따옴표로 묶어야 하고, 엑셀에서 CSV로 저장하면 **수식은 사라지고 결과값만**
남습니다.

## 마크다운 — 이 매뉴얼이 쓰는 형식

`**굵게**` · `# 제목` 처럼 기호 몇 개로 서식을 표현하는 텍스트입니다.

```markdown
## 제목
- 목록 항목
**강조**
```

**AI가 만든 문서가 대개 마크다운인 이유**는 텍스트라서 그대로 다룰 수 있고,
그러면서도 제목·목록·표의 구조가 살아 있기 때문입니다. 필요하면 나중에
HWPX나 PDF로 바꿉니다([공문서 다루기](/guide/ht-korean-docs)).

## PDF와 한글 문서가 손이 더 가는 이유

PDF는 **인쇄를 위한 형식**입니다. "이 글자를 이 좌표에 이 크기로"가 적혀
있을 뿐, 표나 문단의 구조는 안 들어 있는 경우가 많습니다.

```mermaid
graph TD
  A["PDF · HWP · 스캔 이미지"] --> B["글자 뽑아내기<br/>추출 · OCR"]
  B --> C["텍스트 · 마크다운"]
  C --> D["AI가 읽음"]
```

| 원본 | 뽑아내기 난이도 |
|---|---|
| 텍스트로 만든 PDF | 쉬움 — 글자가 들어 있음 |
| **스캔한 PDF·사진** | 어려움 — **OCR**(그림에서 글자 읽기)이 필요 |
| 표가 많은 문서 | 어려움 — 칸 구조가 무너지기 쉬움 |

**"AI가 우리 문서를 못 읽어요"의 상당수가 이 단계 문제**입니다. 모델이
멍청한 것이 아니라 글자가 애초에 안 들어간 것입니다.

## 한글이 깨지는 이유 — 인코딩

글자를 숫자로 바꿔 저장하는 약속을 인코딩이라고 합니다. **저장한 약속과 읽는
약속이 다르면 깨집니다.**

```
✓ UTF-8         지금의 표준. 전 세계 글자를 담습니다
✗ EUC-KR · CP949  옛 한국어 인코딩. 아직 관공서·구형 시스템에 남아 있습니다
```

전형적인 증상은 이렇습니다.

```
�섎룞蹂닿퀬??      → 인코딩이 어긋남
안녕하세요            → 정상
```

**CSV를 엑셀에서 열었더니 한글이 깨졌다면** 파일이 UTF-8인데 엑셀이 CP949로
읽은 것입니다. 파일이 잘못된 것이 아닙니다.

## 무엇으로 주고받을지 정하기

```
□ 표 형태의 숫자        → CSV
□ 프로그램끼리          → JSON
□ 사람이 읽을 문서       → 마크다운 → 필요하면 PDF·HWPX로 변환
□ 원본이 PDF·스캔본이면  → 먼저 텍스트로 뽑는 단계를 계획에 넣기
```

## 자주 하는 오해

### "엑셀 파일을 그냥 올리면 안 되나요"

**됩니다.** 다만 안에서 텍스트로 바꾸는 단계가 한 번 들어가고, 그 과정에서
서식·수식·병합된 칸이 사라집니다. 결과가 이상하면 그 단계를 의심하세요.

### "PDF가 표준 아닌가요"

**주고받고 인쇄하는 데는 표준입니다.** 다시 가공하는 데는 최악에 가깝습니다.
원본(엑셀·워드·마크다운)이 있으면 그것을 주는 편이 항상 낫습니다.

---

## 확인

**1. CSV와 엑셀 파일의 가장 큰 차이는?**

<details>
<summary>답</summary>

**CSV는 텍스트, 엑셀은 바이너리**입니다. CSV는 그대로 읽히지만 서식·수식·여러
시트를 담지 못합니다.
</details>

**2. 스캔한 PDF가 텍스트 PDF보다 어려운 이유는?**

<details>
<summary>답</summary>

**글자가 아니라 그림이기 때문**입니다. OCR로 그림에서 글자를 읽어내는 단계가
먼저 필요합니다.
</details>

**3. 한글이 `?щ`처럼 깨져 보이면 무엇을 의심합니까?**

<details>
<summary>답</summary>

**인코딩**입니다. UTF-8로 저장된 파일을 CP949로 읽는 등 저장한 약속과 읽는
약속이 어긋난 것입니다.
</details>

---

다음은 구조화된 데이터가 실제로 사는 곳입니다 →
[데이터베이스란 무엇인가](/guide/it-database)
