LLM을 업무나 서비스에 붙이려고 하면 가장 먼저 부딪히는 질문이 두 가지입니다. "이 긴 문서를 한 번에 넣을 수 있을까?"와 "한 달에 비용이 얼마나 나올까?"입니다. 두 질문 모두 지난 글에서 다룬 토큰과 연결되어 있습니다.
이번 글에서는 한 번에 처리할 수 있는 길이를 뜻하는 컨텍스트 윈도우와, 토큰 기반으로 계산되는 API 비용을 실제 계산 예시와 함께 정리해 보겠습니다.
1. 컨텍스트 윈도우란?
컨텍스트 윈도우(context window)는 모델이 한 번의 요청에서 볼 수 있는 토큰의 최대량입니다. 사람으로 치면 '한 번에 펼쳐 놓고 볼 수 있는 책상 크기'와 비슷합니다. 여기에는 다음이 모두 포함됩니다.
- 시스템 프롬프트
- 지금까지 주고받은 대화 기록 전체
- 첨부한 문서나 검색 결과
- 모델이 새로 만들어 낼 답변
LLM은 대화를 '기억'하는 것이 아니라, 매번 지금까지의 대화 전체를 다시 입력으로 받아 답을 만듭니다. 그래서 대화가 길어질수록 입력 토큰이 계속 늘어나고, 한도를 넘으면 오래된 내용부터 잘려 나가거나 오류가 발생합니다. 긴 대화를 하다 보면 앞에서 말한 내용을 모델이 잊어버리는 것처럼 보이는 이유입니다.
최근 모델들은 수십만 토큰에서 100만 토큰 이상까지 컨텍스트 윈도우가 크게 늘었습니다. 다만 RAG 글에서 정리했듯이, 많이 넣을 수 있다고 해서 모든 내용을 똑같이 잘 활용하는 것은 아닙니다. 긴 입력의 중간에 있는 정보는 상대적으로 덜 반영되는 경향이 연구로 보고되어 있으니, 꼭 필요한 내용만 골라 넣는 것이 좋습니다.
2. API 비용은 어떻게 계산되나요?
대부분의 LLM API는 다음과 같은 방식으로 요금을 매깁니다.
- 입력 토큰과 출력 토큰의 단가가 따로 있고, 보통 출력 토큰이 몇 배 더 비쌉니다.
- 단가는 보통 100만 토큰(1M tokens)당 달러로 표시됩니다.
- 같은 회사라도 큰 모델과 작은 모델의 단가 차이가 수십 배까지 날 수 있습니다.
계산식은 다음과 같습니다.
요청 1건 비용 = (입력 토큰 수 × 입력 단가 + 출력 토큰 수 × 출력 단가) ÷ 1,000,000
설명을 위해 가상의 단가로 계산해 보겠습니다. 실제 가격은 모델과 시점에 따라 다르니 반드시 공식 요금 페이지를 확인하세요.
| 항목 | 값 (예시) |
|---|---|
| 입력 단가 | 100만 토큰당 3달러 |
| 출력 단가 | 100만 토큰당 15달러 |
| 요청 1건 | 입력 2,000토큰, 출력 500토큰 |
| 요청 1건 비용 | (2,000×3 + 500×15) ÷ 1,000,000 = 0.0135달러 |
| 하루 1,000건 × 30일 | 0.0135 × 30,000 = 405달러 |
한 건은 1~2센트에 불과해도, 사용량이 쌓이면 금액이 금방 커진다는 것을 알 수 있습니다. 특히 대화형 서비스는 대화가 길어질수록 매 요청의 입력 토큰이 누적되므로 예상보다 비용이 빨리 늘어납니다.
3. 비용과 길이를 줄이는 방법
- 작업에 맞는 모델 고르기: 분류, 간단한 요약처럼 쉬운 작업은 작고 저렴한 모델로도 충분한 경우가 많습니다. 어려운 작업에만 큰 모델을 쓰세요.
- 프롬프트 캐싱 활용: 시스템 프롬프트나 긴 참고 문서처럼 매번 똑같이 들어가는 앞부분을 캐시해 두면, 다시 보낼 때 입력 비용과 응답 시간이 크게 줄어듭니다. 지원 여부와 할인율은 서비스마다 다릅니다.
- 배치(Batch) 처리: 즉시 답이 필요 없는 대량 작업은 배치 API로 보내면 할인을 받을 수 있는 서비스가 많습니다.
- 대화 기록 정리: 긴 대화는 오래된 부분을 요약해서 짧게 줄이거나, 필요한 부분만 남겨서 보내세요.
- 출력 길이 제한: "3문장 이내로" 같은 지시와 함께 최대 출력 토큰 옵션을 설정하면 불필요하게 긴 답변을 막을 수 있습니다.
- 필요한 자료만 넣기: 문서 전체 대신 RAG로 관련 부분만 찾아 넣으면 비용과 품질을 함께 잡을 수 있습니다.
정리
컨텍스트 윈도우는 모델이 한 번에 볼 수 있는 토큰의 최대량이며, 시스템 프롬프트와 대화 기록, 첨부 자료, 답변이 모두 여기에 포함됩니다. API 비용은 입력과 출력 토큰 수에 단가를 곱해 계산하고, 출력 단가가 더 비싼 경우가 많습니다. 작업에 맞는 모델 선택, 프롬프트 캐싱, 배치 처리, 대화 기록 정리로 비용을 크게 줄일 수 있습니다. 다음 글에서는 같은 질문에도 답이 매번 달라지는 이유와, 이를 조절하는 temperature 같은 생성 옵션을 알아보겠습니다.
참고자료
- Anthropic, Context windows: https://docs.anthropic.com/en/docs/build-with-claude/context-windows
- Anthropic, Prompt caching: https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
- OpenAI, API Pricing: https://openai.com/api/pricing/
- Liu et al., "Lost in the Middle: How Language Models Use Long Contexts" (2023): https://arxiv.org/abs/2307.03172
'AI > LLM' 카테고리의 다른 글
| [LLM] LLM 공부 7편: 임베딩의 개념과 활용 (0) | 2026.10.23 |
|---|---|
| [LLM] LLM 공부 6편: 생성 옵션 temperature와 top_p 이해하기 (0) | 2026.10.23 |
| [LLM] LLM 공부 4편: 토큰과 토크나이저 쉽게 이해하기 (0) | 2026.10.23 |
| [LLM] LLM 공부 3편: 시스템 프롬프트와 구조화된 출력 (0) | 2026.10.23 |
| [LLM] LLM 공부 2편: 퓨샷과 Chain-of-Thought, 프롬프트 체이닝 (0) | 2026.10.23 |