ChatGPT는 나를 얼마나 기억하는가? - Q&A

by 멘토사피엔스

ChatGPT와 대화를 하다 보면, 분명 방금 전 이야기인데도 AI가 전혀 다른 답을 내놓거나, 요약을 부탁했더니 문서 중간까지만 요약하고 멈추는 경험을 하게 됩니다. 이럴 때 우리는 어리둥절한 감정을 품습니다.


“어? 얘가 지금 내 말을 잊은 건가?”

“아니면… 일부러 무시한 걸까?”


사실 이런 경험은 단순한 오작동이 아니라, AI의 작동 방식이 본질적으로 그렇게 설계되어 있기 때문입니다. ChatGPT는 사람처럼 정보를 머릿속에 계속 쌓아두는 방식이 아니라, 한정된 ‘기억 공간’ 안에서 모든 대화를 계산합니다. 이 공간이 바로 ‘컨텍스트 윈도우’입니다.


하지만 많은 사용자들은 이 구조를 잘 모르고 AI를 사용하게 됩니다. 컨텍스트 윈도우에 대한 자세한 내용은 아래 글에서 확인할 수 있습니다.


ChatGPT는 나를 얼마나 기억하는가?


이번 글에서는 컨텍스트 윈도우와 관련된 글의 다양한 의문들을 풀기 위해, 많은 분들이 실제로 궁금해할 만한 질문들을 하나씩 꺼내 놓고, 컨텍스트 윈도우의 정체와 한계, 그리고 현명한 활용법까지 Q&A 형식으로 차근차근 정리해보았습니다.


Q. 토큰의 제한은 해당 채팅창에서 사용된 총 토큰이 아니라 매번 인풋에 사용되는 토큰인가요?


토큰의 제한(컨텍스트 윈도우)은 해당 채팅창에서 '지금까지 사용된 총 토큰'이 아니라, '매번 AI 모델의 입력(input)으로 주입되는 토큰의 총량'에 적용됩니다.


LLM은 근본적으로 '스테이트리스(Stateless)' 합니다. 즉, 이전의 대화 내용을 모델 자체에 '기억'해두지 않습니다. 대화의 연속성을 유지하기 위해 AI 서비스 백엔드(서버)가 하는 일은 다음과 같습니다.


이전 대화 저장: 사용자와 AI가 주고받은 대화 내용을 서버가 별도로 저장해 둡니다.

새로운 입력 구성: 사용자가 새로운 질문을 할 때마다, 서버는 저장된 이전 대화 내용(일부 또는 전부)과 현재 사용자의 질문을 하나의 거대한 텍스트 덩어리로 재구성합니다.

모델로 전송: 이 재구성된 텍스트 덩어리가 AI 모델로의 '단일 인풋(Single Input)'으로 전송됩니다.

컨텍스트 윈도우의 역할: AI 모델은 이 '단일 인풋' 텍스트 덩어리의 토큰 수를 자신의 컨텍스트 윈도우 크기와 비교합니다. 만약 이 인풋의 토큰 수가 컨텍스트 윈도우를 초과하면, AI는 오류를 반환하거나, 혹은 (더 일반적인 경우) 가장 오래된 내용부터 잘라내어 컨텍스트 윈도우 크기에 맞춰 인풋을 처리합니다.


따라서, ChatGPT와 대화할 때마다, 실제로는 이전 대화가 '복사되어' 현재 질문과 합쳐진 후 매번 새로 AI에게 전달되는 것입니다. 제한된 토큰 수는 이 때 전달되는 토큰 수입니다.


Q. 컨텍스트로 쌓인 정보들은 매번 질문시마다 input으로 함께 주입되나요? 그리고 입력 시 전체 토큰 수에 영향을 미치나요?


컨텍스트로 쌓인 정보들은 매번 새로운 질문을 할 때마다(또는 AI가 답변을 생성할 때마다) AI 모델의 input으로 함께 주입됩니다. 그리고 이는 토큰 수에 직접적인 영향을 미칩니다. 즉, 이전 대화의 맥락을 '현재의 입력(Input)'에 포함시켜 다시 AI에게 전달하는 방식으로 연속적인 대화를 이어나갑니다.


만약 AI 모델의 컨텍스트 윈도우가 4,000 토큰이라고 가정해 보겠습니다.

첫 질문에 100 토큰을 사용했고, AI가 200 토큰으로 답변했습니다. 현재 컨텍스트 사용량: 100(질문) + 200(답변) = 300 토큰

두 번째 질문에 50 토큰을 사용한다면, 이제 AI에게 주입되는 총 토큰 수는: 300(이전 대화) + 50(현재 질문) = 350 토큰


이렇게 대화가 길어질수록 컨텍스트에 쌓이는 토큰 수는 계속 증가하며, 이 총량이 모델의 최대 컨텍스트 윈도우를 넘어서게 되면 가장 오래된 내용부터 밀려나게 되는 것입니다.


Q. 이전의 컨텍스트는 원본 그대로 토큰이 유지되나요? 아니면 어떤 알고리즘에 의해 압축되어지나요?


컨텍스트에 쌓인 이전 대화 내용은 일반적으로 원본 그대로 토큰으로 유지됩니다. AI 모델 내부에서 어떤 특정한 알고리즘에 의해 자동으로 압축되어 저장되지는 않습니다.


왜 자동으로 압축하지 않을까요?

정보 손실 위험: 텍스트를 자동으로 압축하는 과정은 필연적으로 정보의 손실을 가져올 수 있습니다. AI가 어떤 정보가 미래에 중요할지 미리 알 수 없으므로, 중요한 맥락이 압축 과정에서 유실될 위험이 있습니다.

복잡성 증가: 실시간으로 대화 맥락을 자동으로 압축하고, 다시 필요할 때 원래대로 복원하는 알고리즘을 AI 모델 내부에 구현하는 것은 매우 복잡하며, 오히려 계산 효율성을 떨어뜨릴 수 있습니다.

어텐션 메커니즘의 특성: LLM의 핵심인 어텐션(Attention) 메커니즘은 모든 입력 토큰 간의 관계를 직접적으로 계산하여 어떤 토큰에 집중할지 결정합니다. 토큰이 압축되어 버리면 이 관계 계산이 어려워지거나 왜곡될 수 있습니다. AI는 원본 토큰 그대로를 보고 계산하는 데 최적화되어 있습니다.


수동 압축의 필요성

바로 이런 이유 때문에, 사용자가 AI에게 긴 문서를 요약해달라고 요청하거나, 중요한 대화의 핵심을 주기적으로 요약해서 다시 제공하는 전략이 중요해지는 것입니다. 이는 AI가 자동으로 압축하지 않기 때문에, 사용자가 직접 '정보를 압축'하여 컨텍스트 윈도우를 효율적으로 관리해주는 행위입니다.


Q. 컨텍스트가 많이 쌓인 채팅창은 새로운 질문의 핵심과 맥락을 잘못 짚을 수 있지 않나요? 전체 인풋 중의 앞의 정보를 더 중요하게 다룬다고 알고 있는데 질문보다 컨텍스트가 앞에 있는 정보가 아닌가요?


컨텍스트가 많이 쌓인 채팅창에서 새로운 질문의 핵심과 맥락을 AI가 잘못 짚을 가능성은 충분히 존재합니다. 그리고 이 문제는 컨텍스트 윈도우의 '앞부분'과 '뒷부분'에 정보가 위치하는 방식과 밀접하게 관련되어 있습니다.


컨텍스트 윈도우와 '정보의 중요도'

LLM은 컨텍스트 윈도우 안에 있는 모든 토큰을 입력으로 받아 추론합니다. 이때, AI가 특정 정보에 얼마나 '집중(attention)'할지는 입력된 토큰들의 상대적인 위치와 내용적인 중요도에 따라 달라질 수 있습니다.

'Long-Context Window'의 문제: 최신 LLM들은 100K 토큰이 넘는 매우 긴 컨텍스트 윈도우를 제공하지만, 여러 연구(특히 Anthropic의 "Lost in the Middle" 등)에 따르면, AI는 컨텍스트의 가장 앞부분(초반)과 가장 뒷부분(최근)에 있는 정보에는 더 잘 집중하는 경향이 있는 반면, 중간에 위치한 정보는 상대적으로 놓치기 쉽다는 것이 밝혀졌습니다.

새로운 질문의 위치: 새로운 질문은 항상 컨텍스트 윈도우의 가장 마지막(최신) 부분에 추가됩니다. 따라서 AI는 새로운 질문 자체에는 높은 어텐션을 줄 수 있습니다.


왜 '핵심과 맥락'을 잘못 짚을 수 있는가?

그렇다면 새로운 질문이 가장 최신 정보로 들어감에도 불구하고, 왜 핵심과 맥락을 잘못 짚을 수 있을까요?

중요한 이전 맥락이 '밀려남' 대화가 길어져 컨텍스트 윈도우가 가득 차면, 가장 오래된(앞부분) 대화 내용부터 컨텍스트 윈도우에서 사라집니다. 만약 새로운 질문을 이해하는 데 필수적인 핵심 맥락 정보가 컨텍스트 윈도우의 '중간'에 위치했거나, 이미 '밀려나가서 사라졌다면', AI는 아무리 새로운 질문 자체에 집중하더라도 그 질문의 진정한 의도를 파악하기 어렵습니다.


'노이즈'로 인한 집중 분산 컨텍스트 윈도우에 너무 많은 정보가 들어 있으면, 비록 정보가 밀려나지는 않았더라도, AI는 핵심과 노이즈를 구분하는 데 어려움을 겪을 수 있습니다. 중요도가 낮은 수많은 대화 내용이 컨텍스트 윈도우를 가득 채우고 있다면, AI가 새로운 질문과 관련된 진짜 중요한 이전 맥락을 찾아내는 데 실패할 수 있습니다. AI가 '무엇이 중요한지' 판단하는 능력에도 한계가 있기 때문입니다.


질문과 맥락 간의 '간극' 때로는 사용자의 새로운 질문 자체가 이전 대화의 특정 지점과 명확하게 연결되지 않고 '건너뛰는' 경우가 있습니다. AI는 주어진 컨텍스트 내에서 가장 유사하거나 관련성이 높아 보이는 정보를 찾아 연결하는데, 이 간극이 크면 AI가 적절한 연결 고리를 찾지 못하고 엉뚱한 방향으로 답변할 수 있습니다.


Q. 시스템 프롬프트 (System Prompt)는 정확히 어떤것인가요? 대화 시작마다 컨텍스트 윈도우에 포함된다고 했는데 그러면 이것은 지워지지 않나요?


먼저 프롬프트에서 역할을 부여하는 것(사용자가 "너는 코딩 선생님이야"라고 말하는 것)은 AI의 행동을 유도하는 강력한 방법이지만, AI의 근본적인 행동 규칙을 강제하는 시스템 프롬프트와는 다릅니다. 사용자의 역할 부여 프롬프트는 컨텍스트 윈도우의 제약을 받으며, 시스템 프롬프트가 더 강력한 우선순위를 가집니다.


시스템 프롬프트는 여러분이 직접 대화창에 입력하는 명령(예: "지금부터 친절하게 말해줘")과는 다릅니다. 그것은 AI 서비스 제공자가 AI 모델이 '기본적으로 어떻게 작동해야 하는지'를 미리 설정해 놓은 일종의 '규칙서'이자 '정체성 부여 장치'라고 생각하시면 됩니다. 이 '규칙서'는 AI가 아무리 긴 대화를 하거나, 어떤 질문을 받더라도 변하지 않고 항상 그 모델의 행동을 지배합니다.


LLM은 방대한 텍스트 데이터로 사전 학습될 때, 이러한 '시스템 메시지', '사용자 메시지', '어시스턴트 메시지'의 역할 구분을 명시적으로 학습합니다.


모델 학습 시, 데이터셋에는 각 턴(turn)이 어떤 역할에 해당하는지 태그가 붙어 있습니다. 예를 들어, [SYSTEM_START] <시스템 지침> [SYSTEM_END] [USER_START] <사용자 질문> [USER_END] [ASSISTANT_START] <AI 답변> [ASSISTANT_END]와 같은 특수 토큰이나 구조로 데이터가 주어집니다.

모델은 이러한 패턴을 통해 'SYSTEM_START/END' 태그 내의 내용은 일반적인 대화 내용보다 '더 높은 우선순위를 가지고 항상 따라야 할 지침'이라는 것을 학습합니다.


내부적인 어텐션 가중치 (Attention Weights)

모델의 내부 메커니즘인 어텐션(Attention)은 입력 시퀀스 내의 각 토큰에 대해 '얼마나 중요하게 집중할 것인가'를 결정하는 가중치를 부여합니다.


학습된 모델은 system 역할의 메시지에 포함된 토큰들에 더 높은 어텐션 가중치를 부여하도록 편향되어 있을 수 있습니다. 즉, 모델은 시스템 프롬프트의 내용을 다른 대화 내용보다 '더 강력하게 기억하고 따르도록' 내부적으로 훈련되어 있다는 의미입니다.


Q. 정보를 나누어 질문하는게 효율적이라고 들었습니다. 이전 정보가 컨텍스트로 쌓여서 지속적으로 인풋된다면 효율성 측면에서 한번에 질문하는 것과 토큰 수 자체는 효율적이라고 할 수 없지 않나요?


여기서 말하는 효율성은 '총 토큰 수 절약'이 아니라, 'AI의 인지 부하 감소'와 '사용자의 의도 달성 확률 증가'에 초점이 맞춰져 있습니다.


거대한 책 한 권을 AI에게 던지며 "이 책 전체에서 10가지 핵심 내용을 찾아 요약해 줘"라고 한다고 가정해 봅시다. AI는 이 방대한 양의 토큰 속에서 스스로 중요한 정보를 선별하고, 불필요한 부분을 걸러내며, 복잡한 지시를 한 번에 처리해야 합니다. 이 과정 자체가 AI에게는 엄청난 연산 부하이자 '인지적 부담'이 됩니다. 중요한 부분을 놓치거나, 엉뚱하게 요약할 확률이 높아집니다.


단계를 나누는 방식은 AI가 주어진 토큰을 '얼마나 효율적으로 처리하는가'에 중점을 둡니다. AI의 인지 부하를 줄여 오류를 줄이고 정확도를 높이며, 사용자가 수동으로 정보를 압축하고 관리할 수 있는 기회를 제공하여, 궁극적으로 더 빠르고 만족스러운 결과를 얻게 해준다는 점에서 '효율적'이라고 할 수 있습니다.


Q. LLM은 이전 컨텍스트 + 새로운 질문에서 새로운 질문을 별도로 구분하고 새로운 질문에 훨씬 높은 가중치를 주는 건가요?


LLM(거대 언어 모델)은 이전 컨텍스트에서 새로운 질문을 '구분'하며, 새로운 질문 자체에는 (상대적으로) '훨씬 높은 가중치'를 주는 방식으로 작동한다고 요약할 수 있습니다. 새로운 질문은 사용자가 직접 입력하는 것이고, 이는 항상 컨텍스트 윈도우의 '가장 최근' 부분(즉, 끝 부분)에 위치하게 됩니다. LLM은 입력 시퀀스의 마지막 토큰(들)이 다음 답변을 생성하는 데 가장 직접적인 영향을 미친다고 학습되어 있습니다. 따라서 위치 자체가 새로운 질문에 강한 신호를 보냅니다.


LLM은 방대한 대화 데이터를 통해 학습됩니다. 이 데이터에는 항상 "사용자의 마지막 발화"가 AI의 "다음 답변"에 직접적인 영향을 미친다는 패턴이 포함되어 있습니다. 따라서 AI는 본능적으로(학습된 대로) 사용자의 최신 질문을 답변의 직접적인 트리거로 인식하고 우선적으로 처리하려 합니다.


Q. 한 채팅창에 여러 주제를 바꿔가며 질문하는 것은 컨텍스트가 쌓이는 관점에서 볼 때 속도, 답변의 질 차원에서 비효율적인가요?


하나의 채팅창에서 여러 주제를 바꿔가며 질문하는 것은 컨텍스트가 쌓이는 관점에서 볼 때 속도와 답변의 질 모두에서 비효율적일 가능성이 매우 높습니다.


속도 측면에서의 비효율성

증가하는 연산량: LLM은 매번 새로운 질문을 받을 때마다 현재까지의 모든 대화 내용(컨텍스트)을 함께 입력받아 처리합니다. 여러 주제를 오가며 대화가 길어지면 컨텍스트 윈도우에 쌓이는 토큰의 양이 빠르게 증가합니다.

기하급수적인 연산 복잡도: AI가 이 방대한 컨텍스트 내의 모든 토큰 간의 관계를 파악하고 다음 토큰을 예측하는 데 필요한 연산량은 컨텍스트 길이가 길어질수록 기하급수적으로 늘어납니다. 이는 답변을 생성하는 데 걸리는 시간(latency)이 점점 길어진다는 것을 의미합니다.

자원 소모 증가: 연산량이 늘어난다는 것은 AI 모델을 구동하는 데 필요한 컴퓨팅 자원(GPU) 소모도 함께 증가한다는 뜻입니다. 이는 서비스 제공자에게는 더 많은 비용으로 이어집니다.


답변의 질 측면에서의 비효율성

어텐션 분산 및 집중력 저하: AI의 '어텐션(Attention)' 메커니즘은 컨텍스트 내의 중요한 정보에 집중하게 돕지만, 너무 많은 주제가 뒤섞여 있다면 어텐션이 분산될 수 있습니다. AI는 현재 질문과 직접적으로 관련 없는 이전 주제의 정보에도 불필요하게 '주의'를 기울이게 되어, 핵심을 놓치거나 엉뚱한 맥락을 짚을 가능성이 커집니다.

중요 정보의 '밀려남': 대화가 길어지면서 컨텍스트 윈도우가 한계에 도달하면, 가장 오래된 정보부터 밀려나 사라집니다. 여러 주제를 오가다 보면, 이전에 다루었던 중요한 주제의 맥락이나 세부 정보가 컨텍스트 윈도우에서 밀려나가 AI가 더 이상 참조할 수 없게 됩니다. 이는 답변의 정확도와 일관성을 크게 떨어뜨립니다.

일관성 유지의 어려움: AI는 컨텍스트 내의 정보만을 바탕으로 일관성을 유지하려 합니다. 여러 주제가 혼재하면 AI는 이전에 다뤘던 주제와 새로운 주제 간의 연결점을 잘못 찾거나, 모호한 답변을 생성하여 전반적인 대화의 일관성이 저해될 수 있습니다.

'환각(Hallucination)' 가능성 증가: AI가 충분한 맥락을 확보하지 못하거나, 방대한 정보 속에서 혼란을 겪을 때 없는 정보를 '지어내는' 환각 현상이 발생할 확률이 높아집니다.


더 효율적인 대화 전략

따라서, 속도와 답변의 질 모두를 고려할 때, 하나의 채팅창에서는 하나의 명확한 주제에 집중하는 것이 훨씬 효율적입니다.

새로운 주제는 새로운 채팅창에서: 주제가 완전히 바뀌거나, 이전 대화 내용과의 연결성이 중요하지 않다면, 새로운 채팅창을 시작하는 것이 가장 좋습니다. 이는 AI에게 깨끗한 컨텍스트 윈도우를 제공하여 최대의 집중력과 효율성을 이끌어낼 수 있습니다.

단계별 질문과 요약 활용: 만약 하나의 큰 주제 안에 여러 세부 주제가 있다면, 한 번에 모든 것을 묻기보다는 단계별로 질문하고, 필요시 이전 내용을 요약하여 다시 제공하는 것이 좋습니다.


Q. 토큰이 쌓일수록 대화속도가 느려지거나 성능이 떨어질 소지가 있지 않나요? 토큰의 최대치에 다다른 경우 네트워크로 매번 그 토큰을 다 보내야 하고, 토큰의 합이 인풋과 응답이라면 응답에 사용될 토큰 수가 줄어들지 않나요?


대화 속도 (Latency) 저하

증가하는 연산량: LLM은 매번 새로운 질문과 함께 컨텍스트 윈도우 내의 모든 토큰을 입력받아 처리합니다. 이 토큰 수가 늘어날수록 AI가 다음 답변을 생성하기 위해 수행해야 하는 내부 연산량은 기하급수적으로 증가합니다 (일반적으로 토큰 수의 제곱에 비례).

네트워크 전송량 증가: 토큰이 많아진다는 것은 AI 모델에 네트워크로 전송해야 할 데이터의 양이 늘어난다는 의미이기도 합니다. 이는 네트워크 지연(latency)을 유발하여 전반적인 응답 속도를 저하시킬 수 있습니다.

자원 소모 증가: 모델이 더 많은 연산을 수행해야 하므로, 서버의 GPU와 메모리 같은 컴퓨팅 자원 소모도 함께 증가합니다. 이는 사용자 입장에서는 느린 응답으로, 서비스 제공자 입장에서는 더 높은 운영 비용으로 이어집니다.


성능 (답변의 질) 저하 소지

핵심 정보 '밀려남': 대화가 길어져 컨텍스트 윈도우의 최대치에 다다르면, 가장 오래된 핵심 맥락 정보가 컨텍스트 윈도우 밖으로 밀려나 사라질 수 있습니다. AI는 더 이상 그 정보를 참조할 수 없으므로, 이후 질문에 대해 엉뚱하거나 관련 없는 답변을 내놓을 가능성이 커집니다.

어텐션 분산: 비록 정보가 밀려나지 않았더라도, 너무 많은 정보가 컨텍스트 윈도우에 뒤섞여 있다면 AI의 '어텐션'이 분산될 수 있습니다. AI가 현재 질문과 관련된 가장 중요한 맥락을 정확히 찾아내는 데 어려움을 겪고, 전반적인 답변의 정확도나 깊이가 떨어질 수 있습니다.

'Lost in the Middle' 현상: 특정 연구들(예: Anthropic의 논문)에 따르면, AI는 긴 컨텍스트 윈도우의 시작과 끝 부분의 정보에는 비교적 잘 집중하지만, 중간 부분에 위치한 정보는 놓치기 쉽다는 경향이 있습니다. 대화가 길어지면 중요한 맥락이 이 '중간'에 위치할 가능성이 높아지면서 답변 품질이 저하될 수 있습니다.


응답에 사용될 토큰 수 감소 가능성

LLM API를 사용할 때, 대부분의 서비스는 '컨텍스트 윈도우의 최대 토큰 수 = 입력 토큰 수 + 출력(응답) 토큰 수'로 총량을 제한합니다.

만약 여러분이 질문을 길게 하고 컨텍스트에 쌓인 이전 대화 내용이 많아서 입력 토큰 수가 컨텍스트 윈도우의 거의 최대치에 다다르게 되면, AI가 답변을 생성하는 데 사용할 수 있는 토큰 수가 그만큼 줄어듭니다.

예를 들어, 컨텍스트 윈도우가 총 4,096토큰인 모델에서 입력 토큰이 4,000토큰이라면, AI는 답변을 생성하는 데 단 96토큰(4096 - 4000)밖에 사용할 수 없습니다. 이 경우 AI는 길고 상세한 답변을 할 수 없고, 매우 짧거나 잘린 형태로 응답할 수밖에 없습니다.


토큰이 쌓일수록 대화 속도 저하, 답변 품질 저하, 그리고 응답 길이 제한과 같은 문제들이 발생할 수 있습니다. 이는 LLM의 기본적인 작동 방식과 자원 제약 때문에 필연적으로 발생하는 현상입니다.


따라서 AI와 효과적으로 대화하기 위해서는 이러한 컨텍스트 윈도우의 한계를 이해하고, 불필요한 대화는 정리하거나 새로운 채팅창을 여는 등의 '컨텍스트 관리' 전략을 적극적으로 활용하는 것이 매우 중요합니다.


Q. 대화창에 파일을 올려두고 활용하면 그 내용 전체는 그 채팅창에서 지속적으로 네트워크에 전체 토큰의 일부로 계속 전송되는 건가요?


대화창에 파일을 올려두고 그 내용을 AI가 활용한다면, 해당 파일의 내용 전체는 (토큰으로 변환되어) 그 채팅창의 컨텍스트에 포함되고, 이후 질문마다 지속적으로 네트워크를 통해 AI 모델로 전송됩니다.


파일 내용의 토큰화와 지속 전송

토큰화: 파일을 대화창에 업로드하면, AI 서비스는 해당 파일의 내용을 분석하여 LLM이 이해할 수 있는 토큰(Token)으로 변환합니다. (예: PDF 문서는 텍스트로 추출된 후 토큰화됩니다.)

컨텍스트 포함: 이렇게 토큰화된 파일 내용은 해당 채팅창의 컨텍스트 윈도우에 즉시 포함됩니다. AI는 이제 그 파일의 내용을 자신의 '작업대' 위에 올려놓고 참조할 수 있게 됩니다.

지속적인 전송: 이후 여러분이 그 채팅창에서 어떤 질문을 하든지, 새로운 질문과 함께 이전 대화 내용, 그리고 (아직 컨텍스트 윈도우 내에 남아있는) 파일의 토큰화된 내용 전체가 매번 네트워크를 통해 AI 모델로 전송됩니다.


왜 이렇게 작동하는가?

LLM 모델 자체는 파일 내용을 '영구 저장'하는 기능이 없습니다. 파일을 읽고 활용하는 것은 결국 해당 파일의 내용을 현재의 컨텍스트 윈도우에 '주입'하여 AI가 참조할 수 있게 하는 방식이기 때문입니다. AI는 현재 입력된 토큰들만을 가지고 추론하며, 파일 내용도 이 입력의 일부가 됩니다.


영향 및 고려 사항

비용 증가: 파일 내용이 길수록 더 많은 토큰을 차지합니다. 매 질문마다 이 많은 토큰이 전송되므로, API 사용 비용이 매우 빠르게 증가할 수 있습니다.

속도 저하: 전송해야 할 데이터의 양이 늘어나 네트워크 지연이 발생하고, AI 모델이 처리해야 할 토큰 수가 많아지면서 답변 생성 속도도 느려집니다.

컨텍스트 밀려남: 파일 내용이 컨텍스트 윈도우의 상당 부분을 차지하면, 이전 대화 내용이 더 빠르게 컨텍스트 윈도우에서 밀려날 수 있습니다. 이는 AI가 이전 대화 맥락을 잃어버릴 가능성을 높입니다.


더 효율적인 파일 활용 방법 (RAG의 중요성)

이러한 문제 때문에, 단순히 파일을 업로드하고 컨텍스트에 계속 유지시키는 방식보다는 RAG(Retrieval-Augmented Generation, 검색 증강 생성) 기술을 활용하는 것이 더 효율적인 경우가 많습니다.

RAG 방식에서는 파일 내용을 AI의 컨텍스트 윈도우에 통째로 넣어두는 대신,

파일 내용을 별도의 데이터베이스(벡터 데이터베이스 등)에 저장해 둡니다.

사용자가 질문을 하면, AI는 먼저 이 데이터베이스에서 질문과 가장 관련성이 높은 부분만 '검색(Retrieval)'합니다.

그리고 검색된 관련 정보만 컨텍스트 윈도우에 넣어 AI에 주입하여 답변을 '생성(Generation)'하게 합니다.


이렇게 하면 AI 모델에 매번 전체 파일 내용을 보내지 않아도 되므로, 비용 효율적이고 속도도 빠르며, AI가 불필요한 정보에 혼란을 겪지 않고 핵심 정보에 집중할 수 있게 됩니다.


결론 — AI와의 대화에도 ‘기억 설계’가 필요하다


ChatGPT는 기억을 하지 않습니다. 다만, 채팅창 내의 컨텍스트 윈도우라는 계산 공간 안에 넣고, 그때그때 다시 읽을 뿐입니다.


이 구조를 이해하는 순간, 우리는 AI에게 너무 많은 것을 기대하거나, 반대로 너무 적게 활용했던 실수를 돌아보게 됩니다. “왜 앞 내용을 잊어버려?”, “왜 요약이 중간에서 끊기지?”, “왜 답이 점점 이상해지지?” 같은 질문들은 결국 AI의 기억이 아니라, 사용자의 ‘컨텍스트 관리 전략’에 달려 있다는 사실을 말해줍니다.

이번 글에서 다룬 Q&A들은 단지 기술적인 정보가 아니라, AI와 효과적으로 일하는 법에 대한 실용적 원칙입니다.


중요한 정보는 직접 요약해 다시 전달하기

주제가 바뀔 땐 새 대화창 열기

파일 전체를 올리기보다 필요한 부분만 추출해 주입하기

단계를 나눠 AI의 인지 부하를 줄이기


이런 작은 습관들이 결국, AI가 당신을 더 잘 ’이해하게 만드는 기술이 됩니다. AI의 한계를 아는 사람이, AI를 가장 잘 다룰 수 있습니다. 이제, GPT에게 무조건 기억하길 바라는 대신, 기억하게 만드는 대화를 설계해 보세요.


keyword
수, 토 연재
이전 15화ChatGPT는 나를 얼마나 기억하는가?