C.W.K.
Stream
Lesson 01 of 06 · published

Context Window: 긴 게 free 아냐

~14 min · context-window, tokens, budget

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

예산이 진짜 사는 곳

현재 Claude 모델이 큰 context window 지원(표준 Sonnet/Opus에 200K 토큰, opt-in 모델엔 더 긴 윈도우). '긴 게' 능력이지 instruction 아냐. 비용은 input 토큰 따라 — 모델이 다 필요했든 아니든 150K 토큰 보내면 150K input 토큰 비용.

Effective vs theoretical 컨텍스트

Theoretical 컨텍스트는 API 한도. Effective 컨텍스트는 모델이 실제로 잘 attend하는 슬라이스. Long-context retrieval('needle in a haystack' 벤치)이 Claude 강하다 보여주지만, careful 프롬프트 구조(질문 가까이 critical 정보 두기)가 더 도움. 마지막에 둘 수 있었던 fact 하나 때문에 모델한테 100K 토큰 dig하라고 의존하지 마.

보내기 전에 토큰 카운트

messages.count_tokens() 엔드포인트가 completion 안 돌리고 input 토큰 수 반환 — 예산 플래닝에 완벽. CI에서 프롬프트가 너 정한 예산 아래 머무는지 assert; 프로덕션에서 surprise 성장 로그.

원칙: Context window는 길이지 destination 아냐. 모델이 필요한 곳 도달하는 가장 짧은 길로 여행.

Code

비용 내기 전에 토큰 카운트·python
from anthropic import Anthropic
client = Anthropic()

count = client.messages.count_tokens(
    model="claude-sonnet-4-6",
    system=LONG_SYSTEM,
    messages=[{"role": "user", "content": LONG_USER}],
)
print("input tokens:", count.input_tokens)
assert count.input_tokens < 50_000, "prompt over budget"
답 가까이 질문 두기·python
# 나쁨: 질문 먼저, 그다음 80K 컨텍스트.
messages_bad = [{"role": "user", "content": "Summarize section 5.\n\n" + LONG_DOC}]

# 좋음: 컨텍스트, 그다음 끝에 명시적 질문 — 생성에 가장 가까이.
messages_good = [{"role": "user", "content": LONG_DOC + "\n\nNow summarize section 5."}]

External links

Exercise

프로덕션 프롬프트 하나에 대해 토큰 카운트, 결과 로그, 카운트가 너 정한 예산 초과 시 fail하는 CI assertion 추가. 프롬프트 fit하게 조정, 예산 X.
Hint
프롬프트를 예산 아래로 못 가져오면 프롬프트 안에서 모델 일 하고 있는 거 — retrieval로 더 많은 일 push.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.