본문으로 건너뛰기

토큰, 컨텍스트 및 메모리

초급

세 가지 개념이 "왜 그렇게 동작했지?"라는 수많은 순간을 풀어줍니다: 토큰, 컨텍스트 윈도우, 그리고 메모리. 이를 이해하면 표류, 망각, 그리고 예상치 못한 비용에 더 이상 놀라지 않게 됩니다.

What you'll learn
  • 모델이 읽는 방식으로 텍스트를 읽기 — 단어나 글자가 아니라 토큰으로
  • 컨텍스트 윈도우를 유한한 책상으로 그려보고, 무언가가 거기서 떨어져 나가는 시점을 예측하기
  • '컨텍스트 부패(context rot)'를 인식하기 — 모델이 긴 입력의 중간 부분을 놓치는 이유
  • '메모리'의 네 가지 실제 출처와 이를 의도적으로 제공하는 방법 알기

토큰: 모델이 사고하는 단위

모델은 글자나 단어를 읽지 않습니다 — 모델은 토큰을 읽으며, 이는 영어에서 대략 단어의 ¾에 해당하는 텍스트 덩어리입니다. "Unbelievable"은 3~4개의 토큰일 수 있고, 흔한 단어는 각각 하나이며, 공백, 쉼표, 또는 코드 한 조각도 각각 토큰을 소모합니다. 입력 모델의 출력이 모두 집계되며, 토큰은 정확히 가격 및 한도가 측정되는 단위입니다.

직접 손으로 셀 필요는 없지만, 대략적인 감각은 도움이 됩니다: 단어 ~750개 ≈ 토큰 ~1,000개. 무언가 입력하고 지켜보세요:

10단어
38글자
~1013추정 토큰

어디까지나 대략적인 감입니다 (~글자 수 ÷ 4, 또는 단어 수 × 1.33). 토큰 수는 모델마다 다릅니다 — 다른 모델의 토크나이저를 절대 사용하지 마세요. 정확한 수치는 Anthropic의 토큰 카운팅 엔드포인트를 사용하세요.

:::tip 비율이 달라지는 이유 평이한 영어는 토큰당 단어 ¾에 가깝습니다. 코드, JSON, 비라틴 문자, 긴 URL, 드문 단어는 더 많은 토큰으로 쪼개집니다 — 그래서 500줄짜리 파일이나 중국어 문단은 단어 수가 시사하는 것보다 더 많은 비용이 듭니다. 청구서나 한도가 예상을 벗어날 때, 보통 이것이 원인입니다. :::

컨텍스트 윈도우: 작업 메모리

컨텍스트 윈도우는 모델이 한 번에 고려할 수 있는 최대 토큰 수입니다 — 당신의 시스템 프롬프트, 지금까지의 전체 대화, 첨부된 모든 파일, 그리고 작성 중인 답변, 이 모두를 합한 것입니다. 이를 모델의 책상이라고 생각하세요: 크지만, 유한합니다. 윈도우 크기는 모델마다 다르고 계속 커지고 있습니다 — 하나를 외우기보다는 현재 수치를 모델 및 가격에서 확인하세요.

그 순간 모델이 "아는" 모든 것은 그 책상 위에 놓여 있습니다:

대화가 윈도우를 넘어 커지면, 가장 오래된 내용이 떨어져 나갑니다. 그래서 아주 긴 대화는 어떻게 시작했는지를 "잊어버린" 것처럼 보이거나, 원래 지시에서 표류할 수 있습니다.

컨텍스트 부패: 단지 가득 참비어 있음의 문제가 아니다

더 미묘한 문제가 있습니다: 모든 것이 여전히 들어맞을 때조차, 모델은 긴 입력의 중간보다 처음과 끝을 더 안정적으로 활용하는 경향이 있습니다. 50페이지 분량 붙여넣기의 한가운데에 중요한 한 문장을 묻어두면, 그것은 과소평가될 수 있습니다 — 흔히 *"중간에서 길을 잃음(lost in the middle)"*이라 불리는 실패 양상입니다.

Guided walkthrough1 of 4
  1. 긴 문서를 붙여넣기 전에 실제 지시나 질문을 먼저 두세요 — 그 뒤에 묻어두지 마세요.

다음은 지시가 강력한 위치에 놓이도록 구조화한 동일한 요청입니다:

지시는 처음에, 끝에서 다시 말하기

작업: 이 계약서에서 우리의 책임을 제한하는 모든 부분을 찾고, 해당 조항을 정확히 인용하라.

[... 여기에 40페이지 전체 계약서를 붙여넣으세요 ...]

작업 상기: 책임 제한 조항만, 정확한 인용과 조항 번호와 함께 나열하라. 그 외의 모든 것은 무시하라.

:::tip Claude Code에서 긴 에이전트 세션도 동일한 천장에 부딪힙니다. Claude Code는 이를 의도적으로 관리합니다 — 히스토리를 압축하고 무엇이 시야에 남을지 당신이 조정하도록 합니다. 컨텍스트 관리컨텍스트 엔지니어링을 참고하세요. :::

메모리: 당신이 제공하지 않는 한, 아무것도 없다

기본적으로, 각 대화는 백지 상태입니다. 모델은 당신의 지난 대화를 기억하지 않습니다. 메모리처럼 보이는 모든 것은 다음 네 가지 중 하나입니다:

출처무엇인가당신이 제어하는 방법
재전송된 히스토리채팅 앱은 윈도우가 찰 때까지 매 턴마다 대화를 재전송합니다새 대화 시작하기; 스레드를 집중적으로 유지하기
메모리 기능일부 Claude 환경은 대화 간에 사실을 전달합니다대화 간 메모리 설정
당신이 제공하는 파일의도적으로 첨부하는 지속적인 컨텍스트프로젝트, CLAUDE.md
당신 자신의 코드API는 상태를 저장하지 않습니다(stateless) — 이전 메시지를 직접 재전송합니다첫 API 호출

핵심 줄기: 모델이 무언가를 기억하길 원한다면, 계속해서 그것을 책상 위에 올려두어야 합니다.

이것이 중요한 이유

거의 모든 "내 이전 지시를 무시했어" 또는 "맥락을 놓쳤어" 문제는 세 가지 중 하나로 거슬러 올라갑니다: 윈도우가 가득 찼거나, 새 세션이 차갑게 시작했거나, 핵심 세부사항이 긴 붙여넣기의 죽은 한가운데에 놓였거나. 이를 알면, 중요한 내용을 시야에 유지하도록 프롬프트와 세션을 구조화하게 됩니다.

스스로 점검하기

Check yourself

0/3
  1. 평이한 영어 750단어는 대략 몇 개의 토큰입니까?
  2. 긴 대화가 시작을 '잊기' 시작합니다. 가장 가능성 높은 원인은:
  3. 거대한 문서와 핵심 지시 하나를 붙여넣어야 합니다. 가장 좋은 배치는?

핵심 용어

어휘 굳히기
Enter 또는 스페이스 키를 눌러 카드를 뒤집습니다. 좌우 화살표 키로 카드를 이동할 수 있습니다.용어가 표시되었습니다.
1 / 4

:::note 요점 정리

  • 토큰은 사고와 청구 모두의 단위입니다 — 영어 750단어당 ~1,000개, 코드와 다른 문자는 더 많음.
  • 컨텍스트 윈도우는 유한한 책상입니다; 긴 대화가 잊는 이유는 오래된 내용이 거기서 떨어져 나가기 때문입니다.
  • 윈도우 안에서조차, 지시를 먼저 제시하고 끝에서 다시 말하세요 — 중간은 과소 활용됩니다.
  • 기본적으로 메모리는 없습니다. 파일, 프로젝트, CLAUDE.md로, 또는 히스토리를 재전송하여 의도적으로 제공하세요. :::

다음