# 컨텍스트 창이란 무엇인가

> **이 장에서 배우는 것**
> 모델이 "기억한다"고 느껴지는 것의 실제 구조. 이걸 알면 긴 작업에서 왜 앞의
> 지시를 잊은 것처럼 구는지가 설명됩니다.

## 매번 백지에서 시작합니다

먼저 놀라운 사실 하나입니다.

> **모델은 아무것도 기억하지 않습니다.**

대화가 이어지는 것처럼 보이는 이유는, **지난 대화를 매번 통째로 다시 넣어주기**
때문입니다.

```
1번째 요청에 들어가는 것:
  [내 질문 1]

2번째 요청에 들어가는 것:
  [내 질문 1]
  [AI 답변 1]
  [내 질문 2]        ← 전부 다시 보냄

3번째 요청에 들어가는 것:
  [내 질문 1]
  [AI 답변 1]
  [내 질문 2]
  [AI 답변 2]
  [내 질문 3]        ← 또 전부 다시 보냄
```

"세 번째 것을 자세히 알려줘"가 통했던 이유가 이것입니다. 기억한 게 아니라
**앞 대화가 그 요청 안에 같이 들어 있었던 것**입니다.

## 컨텍스트 = 지금 넣어준 전부

그 "지금 넣어준 전부"를 컨텍스트라고 부릅니다. 여기에는 대화만 들어가는 게
아닙니다.

```mermaid
graph TD
  A["시스템 지시<br/>역할 · 규칙 · 말투"] --> E["컨텍스트"]
  B["지난 대화 전체"] --> E
  C["붙여넣은 자료<br/>문서 · 표 · 코드"] --> E
  D["도구 실행 결과"] --> E
  F["이번 요청"] --> E
  E --> G["모델"]
```

**도구 실행 결과도 컨텍스트에 들어갑니다.** 이게 나중에 중요해집니다 — 조회
결과가 크면 그만큼 자리를 차지합니다.

## 창에는 크기가 있습니다

컨텍스트 창(context window)에는 **정해진 최대 크기**가 있습니다. 모델마다
다르지만, 어떤 크기든 **유한하다**는 점이 핵심입니다.

크기를 세는 단위는 **토큰**입니다. 대략 이렇게 생각하시면 됩니다.

| | 대략 |
|---|---|
| 한국어 1글자 | 토큰 1개 안팎 |
| 영어 1단어 | 토큰 1~2개 |
| A4 한 장 | 토큰 1,000~1,500개 |

정확히 알 필요는 없습니다. **"긴 문서를 넣으면 자리를 많이 차지한다"** 정도의
감이면 충분합니다.

## 왜 이게 중요한가

세 가지 실무적 결과가 따라 나옵니다.

### 1. 넣은 만큼 돈이 듭니다

비용은 대체로 **주고받은 토큰 양**으로 계산됩니다. 대화가 길어지면 매 요청마다
그 전체를 다시 보내므로, **뒤로 갈수록 한 번의 요청이 비싸집니다.**

```
10번째 요청  = 앞의 9턴 전부 + 새 질문
20번째 요청  = 앞의 19턴 전부 + 새 질문   ← 훨씬 비쌈
```

같은 질문이라도 긴 대화 끝에서 하면 더 비쌉니다.

### 2. 창이 차면 밀려납니다

한도에 닿으면 **오래된 것부터 밀려납니다.** 다음 장의 주제입니다.

### 3. 넣을수록 좋은 게 아닙니다

"자료를 많이 주면 좋겠지" 싶지만 반대인 경우가 있습니다. 관련 없는 자료가 많으면
**정작 중요한 것이 묻힙니다.** 사람도 100장짜리 자료에서 핵심을 찾는 게 더
어렵습니다.

> **필요한 것만, 필요할 때.** 이게 컨텍스트를 다루는 원칙입니다.

## 대화를 새로 시작해야 할 때

| 상황 | 판단 |
|---|---|
| 주제가 바뀌었다 | **새 대화.** 앞 맥락이 도움이 안 되면 짐입니다 |
| 앞의 시도가 실패했고 방향을 바꾼다 | **새 대화.** 실패한 시도가 계속 영향을 줍니다 |
| 같은 주제를 이어간다 | 유지 |
| 답이 점점 이상해진다 | **새 대화.** 창이 찼을 가능성 |

마지막이 흔한 신호입니다. 긴 대화에서 답 품질이 떨어지면 모델 문제가 아니라
**컨텍스트가 지저분해진 것**일 때가 많습니다.

## 자주 하는 오해

### "이전 대화를 기억하니 개인정보도 기억하겠네?"

두 가지를 구분해야 합니다.

- **대화 중 기억**: 그 대화 안에서만. 새 대화에는 안 넘어갑니다
- **서비스가 저장하는 것**: 이건 서비스마다 다릅니다

[조심할 것](/guide/ai-cautions)에서 다룬 대로, 무엇이 어디에 저장되는지는
서비스 정책을 확인해야 합니다. **모델의 기억 구조와 서비스의 저장 정책은 별개
문제**입니다.

### "창이 크면 다 해결되나?"

크기가 커지면 여유가 생기는 건 맞습니다. 그런데 **비용은 계속 늘고**, 관련 없는
내용이 많으면 품질이 떨어지는 문제는 남습니다. 크기는 완화이지 해결이 아닙니다.

---

## 확인

**1. 모델이 앞 대화를 "기억"하는 실제 구조는?**

<details>
<summary>답</summary>

기억하지 않습니다. **매 요청마다 지난 대화를 통째로 다시 넣어주는 것**입니다.
그래서 대화가 길어질수록 한 번의 요청에 들어가는 양이 늘어납니다.
</details>

**2. 같은 질문인데 긴 대화 끝에서 하면 왜 더 비쌉니까?**

<details>
<summary>답</summary>

앞의 대화 **전체를 함께 보내기 때문**입니다. 20번째 요청은 앞의 19턴을 전부
포함합니다.
</details>

**3. 긴 대화에서 답이 점점 이상해지면 무엇을 의심해야 합니까?**

<details>
<summary>답</summary>

**컨텍스트가 차거나 지저분해진 것**입니다. 모델 성능 문제가 아니라 관련 없는
내용이 쌓인 것일 때가 많으므로, 새 대화로 시작하는 게 빠릅니다.
</details>

---

창이 찼을 때 실제로 무슨 일이 벌어지는지 봅니다 →
[컨텍스트가 밀려날 때](/guide/ai-context-overflow)
