(!) ChatGPT Plus 버전을 기준으로 합니다.
우리는 ChatGPT를 사용하면서 AI에게 더 많은 일을 시키고, 상담하고, 검토를 부탁하고 싶은데, 정작 ChatGPT가 해당 문제에 대한 지식이 없는 경우가 많습니다. 예를 들어 지금 쓰려는 글에 대한 초안 작성을 부탁하는 것만 하더라도 지금 내가 쓰려는 글의 주제, 구성, 문체와 같은 내용을 전부 알려주어야 합니다. 만약 알려주지 않고 진행하면 AI는 임의로 추론하여 글을 작성하게 될 것입니다.
AI가 알아서 작성한 글에는 큰 결함이 있을 수 있습니다. 환각으로 잘못된 정보가 적시되거나, 또는 내가 원하지 않은 내용이 담기거나, 반대로 부족할 가능성이 높습니다. 그 마저도 ChatGPT가 그 주제에 대한 배경지식 자체가 없으면 일을 맡길 수가 없을 것입니다.
AI가 사용자의 지시를 해결하기 위해 참고할 수 있는 다양한 정보들의 묶음을 컨텍스트(Context)라고 합니다. 그래서 풍부한 컨텍스트를 제공하는 것이야 말로 AI가 일을 잘 수행하기 위한 키라고 볼 수 있습니다. 이 때문에 AI에게 지금 하고 있는 일에 대한 충분한 컨텍스트를 제시하는 것은 AI를 제대로 사용함에 있어서 기초 중의 기초이자 무엇보다 중요한 것입니다.
다만, AI는 한 번에 이해할 수 있는 컨텍스트의 총량이라는 것이 존재합니다. 이를 기술적으로 컨텍스트 윈도우(Context Window)라고 하는데, 사람이 책을 읽는데 한 번에 이해할 수 있는 글의 양이 있는 것과 비슷합니다. 컨텍스트 윈도우가 크면 한꺼번에 더 많은 데이터를 처리할 수 있게 되는 것이라고 볼 수 있죠. 과거의 모델은 컨텍스트 윈도우가 소규모였지만 점차 커지고 있습니다. 단위는 토큰(Token)으로, 예를 들어 GPT-3.5-Turbo는 8,192, GPT 4.1은 100M 수준으로 발전되었습니다. 여기서 토큰이라는 것은 언어 모델의 사용량을 측정하기 위한 과금 단위라고 보시면 되겠습니다.
컨텍스트 윈도우에는 지시·예시 등의 사용자의 입력 프롬프트뿐만 아니라 시스템 프롬프트, 배경지식, 도구 호출·결과, 장기기억 메모리, 대화 기록 등 많은 내용들이 포함됩니다. 이러한 요소들은 전부 사용자의 질의에 대답하기 위한 것들이라고 볼 수 있습니다. 컨텍스트 윈도우에 내용을 잘 채워서 AI의 좋은 응답을 이끌어내는 기술을 컨텍스트 엔지니어링(Context Engineering)이라고 하며, AI 서비스를 만드는 제작자는 컨텍스트 엔지니어링을 통해 사용자에게 좋은 AI 사용 경험(AI UX)을 주기 위해 노력합니다.
"많은 컨텍스트가 주어지면 AI가 좋은 응답을 줄 수 있다"는 표현은 사실 일부는 맞는 말이고 일부는 틀린 표현입니다. 사람도 너무 많은 글을 읽으면 처리시간이 오래 걸리고 집중력이 흐려져 오히려 능률이 떨어지는 것처럼 AI도 동일한 일이 발생하기 때문입니다.
먼저, 컨텍스트가 너무 많으면 문장의 핵심 내용을 이해하는 AI의 몰입력이 떨어집니다. 이로 인해 본질적인 내용보다 조금 더 넓고 일반적인 내용을 이야기할 가능성이 높아집니다. 예를 들어 제가 생성형 AI 강의를 위해 작성한 교재가 있다고 가정했때, 이 교재를 전부 첨부하고 평가해 달라고 하는 것과, 교재의 일부만을 발췌하여 평가해 달라고 하는 것은 문제의 범위가 달라집니다. 너무 많은 컨텍스트는 문제의 본질을 벗어나고, 검토해야 할 사항이 너무 많아 초점이 분산되는 결과를 낳습니다. 따라서 결과적으로 응답 품질이 오히려 떨어질 수 있습니다.
컨텍스트가 많아서 발생하는 또 다른 문제로는, 과도한 비용 발생이 있습니다. 일반적으로 생성형 AI를 사용할 때는 입출력 모두에서 비용이 발생합니다. 대체로 입력(프롬프트)보다는 출력(응답)이 가치가 높은 편이나, 과도한 입력 컨텍스트는 출력 못지않은 많은 비용을 발생시킬 뿐만 아니라, 사용자가 원하지 않은 답변을 줄 가능성이 커져 오히려 대화가 길어지기 때문에 더 많은 비용이 발생할 가능성이 커집니다. 다음의 예는 GPT-5의 입력출력 비용을 나타냅니다. 기본적으로 출력의 비용이 더 높은 것을 확인할 수 있습니다.
AI 서비스의 과금 기준은 토큰(Token)입니다. 컨텍스트 윈도우에 채워지는 내용은 자연어가 아닌 바로 토큰인 것이죠. 때때로 생성형 AI 서비스를 사용하다 보면 응답이 중간에 끊기거나, "사용량이 한계 도달했다"는 형식의 알림을 볼 수 있을 것입니다. 그 이유가 바로 해당 AI 서비스에서 임의로 정한 토큰 사용량을 초과했기 때문입니다. 만약 여러분의 기업에서 OpenAI와 같은 외부 기업이 만든 GPT와 같은 모델을 사용하여 생성형 AI 서비스를 연계할 예정이라면 이러한 비용 문제는 심각하게 고민해야 합니다.
양질의 소규모 컨텍스트를 만드는 방법 무엇일까요? 그건 바로 핵심만 요약하는 것입니다. 프롬프트를 주더라도 장황하게 주지 말고, 문제·배경·목적·절차·제약 조건과 같은 내용이 간결하게 작성되어야 합니다. 업로드되는 파일도 핵심 내용만 요약되어 있어야 합니다. 즉, 책을 통째로 업로드하는 것보다는 한 단계 요약을 거친 후 업로드하는 것이 좋다는 얘기입니다.
컨텍스트를 요약하기 위한 기술을 문맥 요약(Context Summarization)이라고도 하며, 자동으로 AI가 요약하는 방법도 있고 사람이 직접 프롬프트로서 요약을 제공하는 방법도 있습니다. 컨텍스트를 핵심만 남기고 자동으로 요약, 즉, 압축하는 것은 생성형 AI 서비스 개발자가 겪는 컨텍스트 엔지니어링의 주요 과제이기도 합니다.
또 한 가지 방법으로는, 많은 컨텍스트를 싱글턴으로 모두 처리하는 대신, 멀티턴으로 분리하여 단계별로 처리하도록 유도할 수도 있습니다. 이는 사람이 문제를 해결하기 위해 차근차근 처리 단계를 계획하고 수행해 나가면서 개별 주제에 집중하는 것과 마찬가지입니다. 단계별 문제 해결 전략은 응답 품질을 크게 향상합니다. 이러한 멀티턴 프롬프팅 전략은 프롬프트 엔지니어링의 전략 중 하나로 볼 수 있습니다.
기술자가 아니더라도 ChatGPT를 실무에서 사용하는 일반 사용자가 AI에게 더 많은 컨텍스트를 제공하고, 일을 더 잘 수행할 수 있게 만드는 방법도 많습니다. 대표적으로 입력 프롬프트에 풍부한 맥락을 제공하도록 설계하는 프롬프트 엔지니어링, ChatGPT 개인 맞춤 설정과 같이 개인화된 시스템 프롬프트, 파일 업로드, 웹 검색이 있습니다.
프롬프트 엔지니어링, 시스템 프롬프트 같은 경우에는 하고자 하는 일에 대한 컨텍스트를 제공하는 데에는 도움이 되지만, 결국 프롬프트이기 때문에 많은 내용의 지식을 담는 것은 어렵습니다. 예를 들면 방대한 의학, 법률, 회계 지식을 프롬프트에 제공하거나 시스템 프롬프트에 담을 수는 없는 것입니다. 이러한 경우에는 파인튜닝(Fine-tuning)과 파일 업로드라는 두 가지 선택지가 있는데, 여기서는 파일 업로드를 위주로 살펴보도록 하겠습니다. 우리가 ChatGPT와 같은 서비스에 업로드한 파일은 AI 서비스 내부에서 지식(Knowledge)이라는 별도의 개념으로 취급되어 처리됩니다. 이는 일반적으로 내재화된 개념이기 때문에 사용자에게 공개되어 관리되지는 않습니다.
일반 사용자는 간단하게 파일 업로드를 통해 지식으로 만들어낼 수 있습니다. ChatGPT에서 파일을 첨부하기만 하면 내부적으로 지식으로 변환되어 처리됩니다. 지식으로 변환될 때 발생하는 과정은 인덱싱(Indexing)이라는 과정으로, 간단하게 이야기하자면, 우리가 업로드한 파일은 대부분 숫자와 문자로 구성된 자연어인데요, 이를 AI가 이해할 수 있는 표현인 벡터(Vector)로 바꾸고 내부적으로 저장하는 과정이라고 보면 되겠습니다. 이 내용을 지금 이해할 필요는 없습니다. 그냥 그런 거구나 하고 넘어가도 좋습니다.
파일 업로드를 통해 지식으로 처리된 파일은 AI가 응답할 때 활용하는 것이 가능해집니다. 예를 들어 우리 회사에 대한 마케팅 통계가 ChatGPT에 업로드되어 있는 경우, 그 파일에 대한 작업을 요청하거나 질의를 할 수 있습니다. 이런 식으로 사전 학습이 되어 있지 않은 지식에 대해서는 파일 업로드를 통해 지식으로 만들어서 처리하는 것입니다.
AI는 사용자의 질의가 들어오면 지식에서 해당 질의와 가장 유사한 내용을 검색(Retrieval)합니다. 그다음, 검색된 내용을 컨텍스트에 첨부하여 사용자의 입력 프롬프트와 결합하고 AI의 입력으로 추가합니다. 우리가 구글과 같은 검색엔진에 키워드를 넣고 검색하는 과정과 마찬가지입니다. 검색엔진은 해당 키워드와 가장 유사한 내용을 검색하여 사용자에게 보여주죠. 이런 식으로 파일 업로드를 통해 인덱싱과 검색 과정을 거쳐 질의에 활용하는 기술을 검색 증강 생성(Retrieval-Augmented Generation, RAG)라고 합니다.
ChatGPT 웹 검색은 AI는 사용자의 지시를 처리하기 위해 사전에 학습된 지식 이외에도 웹에서 정보를 검색할 수 있도록 하는 장치입니다. ChatGPT 웹 검색뿐만 아니라 Perplexity와 같은 서비스에 제공하는 검색 서비스가 대표적이며, 최근에는 웹 검색이 다양한 AI 서비스에도 제공될 만큼 보편화되었습니다.
웹 검색을 사용하면 웹에서 검색된 정보를 바탕으로 사용자의 질의에 응답을 하기 때문에 환각을 방지하고 더 많은 정보가 컨텍스트로 주어지므로 나은 더 응답을 기대할 수 있습니다. 기본적으로는 대부분의 범용 AI 서비스에서는 웹 검색 기능을 활성화하지 않더라도 AI가 스스로 판단하여 검색이 필요하다고 요구되는 경우 검색을 하는 일도 있으며, ChatGPT에서는 채팅창에서 웹 검색을 명시적으로 활성화할 수도 있습니다.
이런 식으로 외부 배경 지식을 외부 리소스에서 검색하여 제공하는 방식의 좋은 점은, 바로 정보의 최신성을 가질 수 있다는 것입니다. GPT와 같은 기초 모델을 만들 때 사용한 지식은 대체로 과거의 지식이라고 볼 수 있습니다. 일반적인 상식에는 크게 해당하지 않지만, 뉴스나 통계, 빠르게 변하는 AI와 같은 분야에서는 최신정보를 반영하는, 이른바 최신성은 사용자 경험이 큰 영향을 미치고 환각을 예방하는 데도 큰 도움이 됩니다.
외부 데이터의 출처로는 웹뿐만 아니라 사내 데이터베이스, IoT를 통한 센서 데이터 등 다양한 정보를 수집할 수 있는데요, ChatGPT는 사용자의 지시를 해결하기 위해 외부 정보가 필요하다고 판단되면 자신이 접근할 수 있는 데이터 소스(Data Source)에서 데이터를 가져올 수 있습니다.
ChatGPT 커넥터를 사용하면 비공개로 처리되어 있는 사내 데이터베이스나 Notion에 작성한 글, Github에 게시한 코드에도 접근할 수 있습니다. AI와의 대화에서 Notion이나 Github와 같은 외부 리소스에 접근할 수 있는 기능을 일반적인 용어로 커넥터(Connector)라고 합니다. 커넥터는 ChatGPT에서 프로필 → 연동 앱 및 커넥터에서 찾아볼 수 있으며 Notion과 Github 이외에도 다양한 데이터 소스에 연결이 가능합니다.
그라운딩(Grounding)
ChatGPT 웹검색, 커넥터와 같이 외부 데이터를 연결하는 과정을 그라운딩(Grounding)이라고 합니다. 그라운딩은 모델이 생성하는 텍스트가 실제 현실, 데이터, 문서 등과 일치하도록 웹이나 백과사전 등의 사실적 출처(Real-world Sources)를 참조하거나 연결하는 과정입니다. 모델이 단순히 자체적으로 학습된 지식만 사용하는 게 아니라, 외부의 현실 정보에 기반해서 답을 생성하는 것이므로, 신뢰도가 높고 환각을 줄여줍니다.
"Notion"을 누르고 선택하면 다음과 같이 연결을 누르면 다음과 같은 화면을 볼 수 있습니다. Notion MCP라는 기술을 사용하여 ChatGPT와 Notion을 연결할 수 있습니다.
연결된 커넥터는 ChatGPT 채팅창 → 소스 추가에서 바로 사용할 수 있습니다. 예를 들어 Notion에 연결되어 있는 경우 노션에서 문서를 읽고 사용자의 질의에 응답할 수 있습니다. "소스 추가"를 누르고 Notion을 활성화합니다.
현재 그다음, 채팅창에서 "Notion"이 있는 것을 확인하고 활성화하여 질문할 수 있습니다. 현재 제 Notion에는 저의 이력서가 있으므로 이를 바탕으로 응답할 수 있습니다.
지금까지 ChatGPT를 똑똑하게 만드는 방법에 대해 알아보았습니다. 정리해 보자면, AI가 사용자의 응답을 더 잘 주기 위해서는 프롬프트 이외에도 추가 컨텍스트(Context)가 필요합니다. 이때, AI가 한 번에 이해할 수 있는 총량을 컨텍스트 윈도우(Context Window)라고 합니다. 컨텍스트 윈도우에는 사용자의 입력 프롬프트, 지식, 도구 호출 등이 포함될 수 있죠.
컨텍스트에 포함되는 정보가 적절한 수준으로 많으면 ChatGPT가 많은 정보를 참고할 수 있어 더 나은 답변을 제공할 가능성이 있습니다. 이를 위해 파일 업로드를 통해 지식을 제공하거나, 웹 검색, 커넥터를 사용하여 ChatGPT를 넘어 다른 데이터 소스에 연결할 수 있는 것입니다. 외부 데이터와의 연결을 통해 ChatGPT를 더 똑똑하게 만들 수 있습니다.
'비전공자를 위한 챗GPT 101'은 단순하게 챗GPT 사용법을 이야기하는 것이 아니라, 생성형 AI를 활용하기 위해 알아야 하는 기초를 대표적인 생성형 AI 서비스인 챗GPT를 사용하여 풀어냅니다. 물고기를 잡아주기보다는 물고기를 잡는 법을 알려줍니다.
챗GPT를 사용하는 활용법은 간단한 글쓰기부터 시작해서 기획, 마케팅 등 너무나도 많고, 직무마다 다른데, 이 글들은 '이메일 쓰기', '통계 분석하기 같은' 단순한 '사례'만을 이야기 하지 않습니다. 생성형 AI의 '기본'을 이야기함으로써 챗GPT를 자유롭게 구사하며 실무에서 활용할 수 있도록 뼈대를 쌓습니다.