컨텍스트 윈도우란? — 요즘 AI가 길게 기억한다는 말 뒤에 꼭 붙는 조건

  • 컨텍스트 윈도우는 AI 가 한 번에 볼 수 있는 글의 최대 분량입니다
  • 대화가 길어지면 앞부분부터 조용히 밀려 나갑니다. 안 알려주고 사라집니다
  • 창이 크다고 좋기만 한 게 아닙니다. 넣는 만큼 비용과 시간이 늘어납니다

AI 이야기에서 컨텍스트 윈도우라는 말이 자주 나옵니다. “20만 토큰까지 지원한다” 같은 문장이 붙고, 숫자가 클수록 좋은 것처럼 읽힙니다. 그런데 정작 그게 무엇의 한계인지, 넘치면 어떻게 되는지는 잘 설명되지 않습니다.

결론부터 말하면 AI 는 기억하는 게 아니라 매번 다시 읽습니다. 컨텍스트 윈도우는 그 다시 읽는 분량의 상한선입니다. 이 한 문장만 잡고 있어도 뒤에 나오는 이야기가 대부분 설명됩니다.

실제로 이 개념을 모르면 이해가 안 되는 현상이 많습니다. 분명 앞에서 말했는데 왜 잊었지? 하는 상황이 대표적입니다. 이 글은 컨텍스트 윈도우가 정확히 무엇을 재는 값인지부터, 넘칠 때 벌어지는 일까지 정리합니다.

한 번의 요청에 무엇이 담기나 1 시스템 지침 역할과 규칙 2 지금까지 대화 주고받은 전부 3 붙인 자료 문서·검색 결과 4 이번 질문 방금 쓴 한 줄
내가 쓴 질문만 들어가는 게 아닙니다. 앞의 것들이 매번 같이 실립니다.

컨텍스트 윈도우는 정확히 무엇의 한계인가요?

AI 모델은 대화를 기억하고 있지 않습니다. 질문을 보낼 때마다 지금까지의 내용을 통째로 다시 받습니다. 시스템 지침, 그동안 주고받은 대화, 붙여 넣은 문서, 그리고 이번 질문까지 한 덩어리로 묶여서 갑니다. 컨텍스트 윈도우는 그 한 덩어리가 넘을 수 없는 크기입니다.

예를 들어 열 번째 질문을 보낼 때, 모델에게 가는 건 그 한 줄이 아닙니다. 처음에 준 지침부터 아홉 번의 문답 전부, 그리고 그 사이에 붙인 자료까지 한 묶음으로 갑니다. 대화가 이어지는 것처럼 보이는 건 매번 처음부터 다시 읽기 때문입니다.

단위는 글자가 아니라 토큰입니다. 토큰은 모델이 글을 쪼개서 세는 조각인데, 영어는 단어 하나가 대체로 토큰 하나 남짓이고, 한글은 글자당 한 개를 넘기도 합니다. 그래서 같은 분량이라도 한글이 토큰을 더 먹습니다. 10만 토큰이라고 하면 한글 기준으로 대략 책 한 권 분량쯤이라고 보면 감이 맞습니다.

창(窓)이라는 말이 붙은 이유도 여기 있습니다. 모델은 글 전체를 보는 게 아니라 정해진 크기의 창을 통해 그때그때 보이는 만큼만 봅니다. 대화가 길어지면 창이 앞으로 밀리면서 뒤쪽이 들어오고 앞쪽이 나갑니다. 기억이 쌓이는 게 아니라 보이는 범위가 이동하는 구조입니다.

중요한 건 이게 입력과 출력을 합친 한도라는 점입니다. 길게 넣으면 그만큼 답할 수 있는 여유가 줄어듭니다. 자료를 잔뜩 붙였는데 답이 갑자기 짧아지거나 중간에 끊기는 경험이 있다면 대개 이 때문입니다.

넘치면 어떻게 되나요?

가장 흔한 처리 방식은 앞에서부터 잘라내는 것입니다. 오래된 대화가 조용히 빠져나가고, 그 자리에 새 내용이 들어옵니다. 문제는 잘렸다는 사실을 알려주지 않는다는 점입니다. 대화는 매끄럽게 이어지는데 앞에서 정한 규칙만 사라져 있습니다.

잘라내는 방식이 아니라 앞부분을 요약해서 압축하는 도구도 있습니다. 이쪽이 나아 보이지만 대가가 없지는 않습니다. 요약은 원문이 아니라서, 세부 조건이나 정확한 표현은 요약되는 과정에서 뭉개집니다. 대충 기억하는 상태가 되는 셈입니다.

그래서 긴 작업에서 이상한 일이 생깁니다. 처음에 “반말 쓰지 마세요”라고 했는데 한참 뒤에 반말이 나오고, 초반에 정한 파일 이름 규칙이 슬그머니 바뀝니다. 모델이 말을 안 듣는 것처럼 보이지만, 실은 그 지시가 이미 창 밖으로 밀려난 겁니다.

도구를 붙여 쓰는 경우엔 더 빨리 찹니다. 검색 결과나 파일 내용이 대화에 그대로 쌓이기 때문입니다. 사람이 쓴 글은 몇 줄인데 도구가 돌려준 결과는 수백 줄인 경우가 흔합니다. 체감보다 훨씬 빨리 한도에 닿는 이유가 대개 이쪽입니다.

대처는 단순합니다. 꼭 지켜야 할 규칙은 매번 다시 넣거나, 대화가 길어지면 중간 결론을 요약해 새로 시작하는 것입니다. 길게 끌고 가는 것보다 끊고 다시 여는 편이 결과가 안정적인 경우가 많습니다.

기억력 문제가 아니라 자리 문제입니다.모델이 잊은 게 아니라, 그 문장이 이번 요청에 실리지 않은 것입니다.

창이 크면 무조건 좋은 것 아닌가요?

숫자만 보면 그렇게 보이는데, 실제로는 넣는 만큼 값을 치릅니다. 요금이 토큰 단위라 넣은 분량이 그대로 비용이 되고, 읽어야 할 양이 늘어나니 응답도 느려집니다. 창이 커진 건 더 넣어도 된다는 허용치이지 더 넣으라는 권유가 아닙니다.

속도도 무시하기 어렵습니다. 입력이 길수록 첫 글자가 나오기까지의 대기가 길어집니다. 짧은 질문에는 바로 답하던 게 문서를 잔뜩 붙이면 몇 초씩 멈춰 있는 것도 이 때문입니다. 사람이 기다리는 시간은 대체로 입력 길이를 따라갑니다.

품질 쪽 문제도 있습니다. 아주 긴 입력에서는 가운데 있는 내용을 놓치는 경향이 보고돼 왔습니다. 앞과 뒤는 잘 반영하는데 중간이 흐려지는 현상입니다. 자료를 다 넣었으니 다 봤겠지, 하고 넘기면 어긋날 수 있습니다.

한도가 커지는 방향으로 기술이 발전하고는 있지만, 넣는 쪽의 요령이 필요 없어지지는 않습니다. 창이 두 배가 되면 사람들은 대개 두 배를 넣습니다. 결국 같은 문제를 더 큰 규모로 다시 만나게 됩니다.

그래서 실무에서는 다 넣기보다 골라 넣는 쪽으로 갑니다. 필요한 문단만 찾아서 붙이거나, 긴 문서를 요약해서 넣는 식입니다. 검색으로 관련 부분만 가져와 붙이는 방식이 널리 쓰이는 것도 같은 이유입니다.

판단 기준을 하나 두면 편합니다. 이 자료가 답에 직접 쓰이는가를 묻는 겁니다. 혹시 몰라서 넣는 자료는 대개 안 쓰이면서 자리와 비용만 차지합니다. 넣을지 말지 애매하면 빼고 시작해서, 부족하면 그때 붙이는 순서가 낫습니다.

창이 넘칠 때 벌어지는 일그냥 넘길 때앞부분이 잘려 나감시킨 조건을 잊음왜 그런지 안 보임같은 말을 반복하게 됨추려서 넣을 때필요한 것만 남김지침은 항상 유지동작이 예측 가능비용도 같이 줄어듦
넘치도록 두는 것과 미리 추려 넣는 것은 결과가 다릅니다.

내 대화가 얼마나 찼는지 알 수 있나요?

도구마다 다릅니다. 남은 양을 숫자나 막대로 보여주는 것도 있고, 아무 표시가 없는 것도 있습니다. 표시가 없다면 증상으로 짐작하는 수밖에 없습니다.

직접 세어 보고 싶다면 각 모델 제공사가 내놓는 토큰 계산기를 쓰면 됩니다. 붙여 넣을 문서가 몇 토큰인지 미리 확인해 두면, 한 번에 넣을지 나눠 넣을지 판단이 쉬워집니다.

신호는 대체로 비슷합니다. 초반에 정한 규칙이 안 지켜지기 시작하고, 이미 말한 내용을 다시 물어보고, 답이 이유 없이 짧아집니다. 이 세 가지가 같이 나타나면 창이 거의 찼다고 보고 대화를 새로 여는 편이 낫습니다.

한 가지 덧붙이면, 창을 비운다고 이전 작업이 사라지는 건 아닙니다. 결과물은 파일이나 문서로 남아 있고, 창에서 빠지는 건 대화 기록뿐입니다. 이 구분이 되면 대화를 새로 여는 게 훨씬 덜 부담스러워집니다.

습관을 하나 만들어 두면 편합니다. 긴 작업을 시작할 때 지금까지의 결론을 짧게 정리해 두는 겁니다. 창이 찼을 때 그 요약만 들고 새 대화로 옮기면 되니까, 앞부분이 잘려도 잃는 게 거의 없습니다.

비용과는 어떻게 이어지나요?

같은 대화를 이어갈수록 앞의 내용이 매번 다시 실려 갑니다. 10번째 질문에는 1번부터 9번까지가 통째로 다시 붙습니다. 질문 하나는 짧은데 요금이 계속 커지는 이유가 이겁니다.

여기서 프롬프트 캐싱이 등장합니다. 매번 똑같이 들어가는 앞부분을 다시 계산하지 않고 재사용하는 방식입니다. 컨텍스트 윈도우를 이해하고 나면 왜 그런 기법이 필요한지가 자연스럽게 이어집니다. 자세한 내용은 아래 글에 정리해 두었습니다.

반대로 대화를 새로 열면 비용도 같이 초기화됩니다. 길게 끌고 가는 대화가 편해 보여도, 매 요청이 조금씩 무거워지고 있다는 점은 기억해 둘 만합니다. 작업 단위로 끊어 여는 습관이 결과와 비용 양쪽에 도움이 됩니다.

에이전트처럼 여러 단계를 스스로 도는 도구에서는 이 비용이 눈에 띄게 커집니다. 단계마다 이전 기록이 다시 실리기 때문에, 스무 단계짜리 작업은 단순히 스무 배가 아니라 그보다 더 무거워집니다. 캐싱이 에이전트 이야기와 자주 붙어 나오는 이유입니다.

정리하면 컨텍스트 윈도우는 한 번에 실을 수 있는 짐의 크기이고, 캐싱은 매번 같은 짐을 다시 싣지 않는 방법입니다. 두 개념은 같이 봐야 뜻이 분명해집니다.

여기까지 정리

  • 컨텍스트 윈도우는 한 번의 요청에 담기는 전체 분량의 한도입니다
  • 넘치면 앞에서부터 조용히 잘려 나갑니다. 알려주지 않습니다
  • 크다고 다 넣지 말고 골라 넣어야 비용·속도·정확도가 같이 좋아집니다

같이 보면 좋은 글

다음 용어는 토큰을 따로 정리하겠습니다. 이 글에서 계속 나온 단위인데, 요금과 한도가 전부 이 단위로 매겨지기 때문에 한 번 제대로 짚어두면 나머지 글이 훨씬 잘 읽힙니다.

“컨텍스트 윈도우란? — 요즘 AI가 길게 기억한다는 말 뒤에 꼭 붙는 조건”에 대한 1개의 생각

댓글 남기기