토큰, 컨텍스트 및 메모리
세 가지 아이디어가 "왜 저렇게 했을까?" 하는 순간들을 많이 풀어 줍니다: 토큰, 컨텍스트 윈도, 그리고 메모리입니다.
토큰: 모델이 사고하는 단위
모델은 글자나 단어를 읽지 않습니다 — 토큰을 읽습니다. 토큰은 영어 기준으로 단어의 대략 ¾ 정도 되는 텍스트 덩어리입니다. "Unbelievable"은 토큰 3~4개일 수 있고, 흔한 단어는 각각 하나입니다. 당신의 입력과 모델의 출력 모두 토큰으로 계산되며, 그것이 가격과 한도를 측정하는 단위입니다.
손으로 셀 필요는 없지만 대략적인 감은 도움이 됩니다: 단어 ~750개 ≈ 토큰 ~1,000개. 직접 해 보세요:
어디까지나 대략적인 감입니다 (~글자 수 ÷ 4, 또는 단어 수 × 1.33). 토큰 수는 모델마다 다릅니다 — 다른 모델의 토크나이저를 절대 사용하지 마세요. 정확한 수치는 Anthropic의 토큰 카운팅 엔드포인트를 사용하세요.
컨텍스트 윈도: 작업 메모리
컨텍스트 윈도는 모델이 한 번에 고려할 수 있는 토큰의 최대 개수입니다 — 당신의 프롬프트 + 모델의 답변 + 지금까지의 대화 전체. 모델의 책상이라고 생각하세요: 크지만 유한합니다.
대화가 윈도를 넘어 커지면 가장 오래된 내용이 책상에서 떨어져 나갑니다. 그래서 아주 긴 챗은 처음에 한 말을 "잊어버린" 것처럼 보이거나 표류하기 시작할 수 있습니다.
:::tip 실용적 함의
- 긴 문서의 경우 핵심 지시를 맨 위에 두고 끝에서 다시 진술하세요.
- 새 주제는 거대한 이력을 끌고 다니지 말고 새 챗으로 시작하세요.
- Claude Code에서는 이를 의도적으로 관리하세요 — 컨텍스트 관리를 참고하세요. :::
메모리: 당신이 제공하지 않는 한 없습니다
기본적으로 각 대화는 백지 상태입니다. 모델은 당신의 지난 챗을 기억하지 못합니다. 겉보기 "메모리"는 다음 중 하나에서 옵니다:
- 이력 재전송 — 챗 앱은 턴마다 대화를 다시 보냅니다(윈도가 찰 때까지).
- 명시적 메모리 기능 — 일부 Claude 표면은 챗 간 메모리를 제공합니다(챗 전반의 메모리 참고).
- 당신이 제공하는 파일 — 프로젝트와 CLAUDE.md는 당신이 통제하는 지속적 컨텍스트를 줍니다.
- API는 상태 비저장(stateless) — 대화를 이어가려면 이전 메시지들을 직접 다시 보내야 합니다(첫 API 호출).
왜 이것이 중요한가
거의 모든 "내 앞선 지시를 무시했다"거나 "맥락을 놓쳤다"는 문제는 컨텍스트 윈도가 가득 차거나 새 세션이 백지에서 시작된 데서 비롯됩니다. 이것을 알면 중요한 내용을 책상 위에 두도록 프롬프트와 세션을 구성하게 됩니다.