LumoMate
LumoMate/용어집/IntelligenceAI / ML

컨텍스트 엔지니어링

컨텍스트 엔지니어링(컨텍스트 엔지니어링)은 모델이 매 호출마다 어떤 정보를 받을지 정하고, 그 정보를 여러 단계에 걸쳐 관리하는 일입니다. 컨텍스트 윈도우는 모델이 한 번에 읽을 수 있는 모든 것을 말합니다. 시스템 지시, 사용자의 입력, 검색해 온 문서, 앞선 단계들의 기록, 쓸 수 있는 도구 목록, 그리고 저장해 둔 메모리가 거기에 들어갑니다. 컨텍스트 엔지니어링은 그 창에 무엇을 넣고, 무엇을 빼고, 무엇을 요약하거나 창 밖에 저장할지 의도적으로 고르는 작업입니다. 그래서 모델이 필요한 것은 손에 쥐되, 필요 없는 것에 파묻히지 않게 합니다. 창을 가득 채울 통이 아니라 정해진 예산으로 다룹니다.

쉬운 설명

언어 모델은 스스로 기억하지 못합니다. 부를 때마다 모델이 아는 것은 그 호출에서 건네준 텍스트뿐이고, 그 텍스트는 컨텍스트 윈도우라는 정해진 크기 안에 들어가야 합니다. 질문 하나라면 창을 채우기는 쉽습니다. 좋은 프롬프트를 쓰면 끝이죠. 그것이 프롬프트 엔지니어링, 곧 한 번의 요청을 잘 다듬는 기술입니다.

에이전트는 다릅니다. 여러 단계를 돌며 도구를 부르고, 결과를 읽고, 다음을 정하는데, 매 단계마다 누군가는 모델이 볼 텍스트를 다시 조립해야 합니다. 그 텍스트는 계속 바뀝니다. 에이전트가 일할수록 커지는데, 도구 결과 하나하나와 앞선 결정 하나하나가 거기에 더해질 수 있기 때문입니다. 손대지 않고 두면, 모델이 더는 필요로 하지 않는 옛 정보로 가득 차고 두 가지 나쁜 일이 생깁니다. 창의 자리가 모자라고, 중요한 지시가 잡음에 묻혀서, 모델이 갈피를 잃거나 같은 말을 되풀이하기 시작합니다. 컨텍스트 엔지니어링은 그 일을 막는 작업입니다.

핵심 생각은, 컨텍스트 윈도우가 통이 아니라 예산이라는 것입니다. 텍스트가 많다고 더 좋은 것이 아닙니다. 모델이 주어진 것에 나눠 쓸 수 있는 주의력은 한정되어 있어서, 가진 것을 전부 창에 채워 넣으면 답이 더 나아지기는커녕 나빠집니다. 할 일은 지금 중요한 것을 넣고 나머지는 다른 곳에 두는 것입니다.

실제로 이 작업은 몇 가지 움직임으로 나뉩니다. 창 밖에 적어 둡니다. 에이전트가 다시 읽을 수 있는 메모나 파일에 남겨서, 중요한 것이 창 안에 남아 있느냐에 매달리지 않게 합니다. 지금 단계에 필요한 조각만 골라, 필요할 때 끌어옵니다. 한꺼번에 다 들고 있지 않습니다. 긴 기록은 짧은 요약으로 압축해서, 앞선 백 번의 대화를 몇 문장으로 줄입니다. 그리고 하위 작업은 따로 떼어, 대화 전체를 끌고 다니는 대신 도우미에게 깨끗한 자기 컨텍스트를 줍니다. 이 움직임들이, 질문 하나에는 잘 듣던 모델을 긴 일에도 안정적으로 굴러가는 에이전트로 바꿉니다.

FIG. 1컨텍스트 엔지니어링 — 다른 각도에서.

비유로 보면

컨텍스트 윈도우를 집중해서 일하는 사람의 책상이라고 하고, 컨텍스트 엔지니어링을 그 책상을 쓸 만하게 유지하는 일이라고 생각해 보세요. 책상 크기는 정해져 있습니다. 가진 서류를 전부 올려 두면 정작 중요한 한 장을 찾지 못해, 일이 더뎌지고 실수가 스며듭니다. 일 잘하는 사람은 지금 하는 일의 서류만 책상에 두고, 나머지는 손 닿는 서랍에 정리하고, 일을 바꾸기 전에 어디까지 됐는지 짧은 메모를 남겨서, 무엇도 머릿속에만 남지 않게 합니다. 프롬프트 엔지니어링은 포스트잇 한 장에 또렷한 지시 하나를 적는 것과 같습니다. 컨텍스트 엔지니어링은 몇 시간에 걸친 일 내내 책상 전체를 운영하는 것으로, 순간순간 무엇을 책상에 둘지, 무엇을 서랍에 되돌릴지, 무엇을 새 색인 카드에 요약할지 정하는 일입니다. 생각은 모델이 대지만, 어지러운 책상은 예리한 머리도 무너뜨리고, 잘 정돈된 책상은 그 예리함을 하루 종일 지켜 줍니다.

어디에서 만나나

컨텍스트 엔지니어링은 모델이 한 번의 대화를 넘어 돌아가는 곳이면 어디든 등장합니다. 코딩 에이전트가 가장 또렷한 경우입니다. 저장소 전체를 창에 끌어넣지 않으면서도 관련 파일과 오류 출력, 계획을 붙들고 있어야 하므로, 도구가 한 단계에 필요한 파일만 가져오고 나머지는 요약합니다. 고객 지원과 리서치 비서는 긴 대화의 맥을 이어 가는 데 이를 쓰는데, 앞선 대화들을 이어지는 요약으로 압축해서 모든 메시지를 다시 읽지 않고도 요지를 기억하게 합니다. 검색 증강 생성(RAG) 시스템은 문서에 적용된 컨텍스트 엔지니어링입니다. 지식 베이스 전체를 붙여 넣는 대신 질문에 관련된 몇 구절만 고릅니다. 오래 도는 에이전트와 매니지드 에이전트가 여기에 가장 크게 기댑니다. 몇 분에서 몇 시간에 걸치는 작업은 상태를 창 밖에 적어 두고 필요할 때 다시 끌어오지 않으면 어떤 창이든 넘쳐 버리기 때문입니다. 메모리, RAG, 매 차례를 조립하는 에이전트의 하네스, 그리고 여러 에이전트가 저마다 깨끗한 컨텍스트를 필요로 할 때의 오케스트레이션과 가까이 놓입니다. 공통된 줄기는, 모델이 무엇을 봐야 하는지가 단계마다 바뀌어 그저 쏟아 넣는 것이 아니라 정해야 하는 시스템이라는 점입니다.

작은 예시

앤트로픽(Anthropic)이 'Effective context engineering for AI agents'라는 제목으로 낸 엔지니어링 안내서는 이 정의에 비추어 읽기 좋은 자료입니다. 그 글은 컨텍스트를 수익이 점점 줄어드는 유한한 자원, 곧 토큰이 늘수록 바닥나는 주의력 예산으로 놓고, 그 틀에 구체적인 플랫폼 도구를 짝지웁니다. 창에서 낡은 내용을 걷어 내는 컨텍스트 편집, 그리고 에이전트가 창 밖 파일에 메모를 저장했다가 필요할 때 다시 읽게 해 주는 메모리 도구입니다. 앤트로픽은 자체 평가에서 이 방식으로 뜻있는 개선을 봤다고 밝히는데, 컨텍스트 편집과 메모리 도구를 함께 쓰면 오래 걸리는 작업의 성과가 올라가고 여러 차례의 대화에서 토큰 사용이 크게 줄었다고 합니다. 정의에 비춰 보면 각 조각이 이 분야가 말하는 움직임 그대로입니다. 창을 가볍게 유지하고, 상태를 창 밖에 적어 두고, 어떤 단계가 필요로 할 때만 세부를 다시 끌어오는 것이죠. 구체적인 수치와 한계, 설정은 앤트로픽 자체 문서에 있고, 여기서 짚는 것은 그 형태입니다. 모델이 보는 것을 그저 채울 무엇이 아니라 설계할 무엇으로 다룬다는 점입니다. 같은 패턴은 2026년 내내 이 분야 곳곳에서, 랭체인(LangChain)과 소스그래프(Sourcegraph) 등의 안내에서도 나타나며, 한 번짜리 프롬프트가 아니라 에이전트를 만드는 사람에게는 프롬프트 엔지니어링을 잇는 후속 분야로 자리 잡고 있습니다.

자주 하는 오해

오해
첫 번째 오해는 컨텍스트 엔지니어링을 프롬프트 엔지니어링의 그럴듯한 다른 이름으로 여기는 것입니다. 겹치기는 하지만 같지 않습니다. 프롬프트 엔지니어링은 한 번의 호출을 위해 요청을 잘 다듬는 일입니다. 컨텍스트 엔지니어링은 모델이 여러 호출에 걸쳐 보는 정보 전체를 관리하는 일이고, 그 대부분은 애초에 프롬프트가 아닙니다. 검색해 온 문서, 도구 결과, 앞선 단계들, 저장된 메모리가 그것이죠. 프롬프트 엔지니어링은 그 한 부분이지 전부가 아닙니다. 두 번째는 컨텍스트 윈도우가 커지면 이 분야가 필요 없어진다는 믿음입니다. 큰 창은 도움이 되지만 문제를 없애지는 못합니다. 창이 커도 모델의 주의력은 여전히 유한하기 때문입니다. 거대한 창을 전부로 채우면 모델은 여전히 맥을 놓치고, 더 많이 쓰고, 느려집니다. 자리가 넓다고 집중이 더해지지는 않고, 무엇을 넣을지 정하는 일은 그대로 중요합니다. 세 번째는 컨텍스트가 많을수록 답이 좋아진다는 넘겨짚음입니다. 오히려 나빠지는 때가 많습니다. 관련 없는 세부는 모델을 흩뜨리고, 낡은 지시는 지금 지시와 부딪히며, 길고 어수선한 기록은 요점을 묻어 버립니다. 이 기술은 더하기만큼이나 빼기입니다. 무엇을 더할지뿐 아니라 무엇을 빼고 무엇을 요약할지 아는 것이죠. 네 번째는 한 번 설정해 두면 되는 고정된 세팅으로 여기는 것입니다. 이것은 움직이는 표적입니다. 첫 단계에 맞는 컨텍스트가 쉰 번째 단계에는 틀린 컨텍스트이므로, 컨텍스트 엔지니어링은 시스템이 매 차례 돌리는 이어지는 과정이지, 한 번 써 두고 잊는 템플릿이 아닙니다.

한 줄 정리

컨텍스트 엔지니어링은 모델이 매 호출마다 무엇을 볼지 정하고 작업이 길어지는 동안 그것을 관리하는 분야로, 컨텍스트 윈도우를 마구 채울 통이 아니라 일부러 채우는 유한한 예산으로 다룹니다. 핵심 움직임은 상태를 창 밖에 적어 두고, 지금 단계에 필요한 것만 고르고, 긴 기록을 요약으로 압축하고, 하위 작업을 저마다의 깨끗한 컨텍스트로 떼어 내는 것입니다. 한 호출의 표현을 다루는 프롬프트 엔지니어링보다 넓고, 창을 키운다고 풀리지도 않습니다. 주의력은 여전히 유한하기 때문입니다. 한 번짜리 프롬프트가 아니라 에이전트를 만들 때면 꺼내 쓰세요. 긴 작업에서 안정과 혼란을 가르는 것은 대개 모델이 아니라, 그 앞에 무엇을 놓아 주기로 했느냐이기 때문입니다.

자주 묻는 질문

Q
컨텍스트 엔지니어링과 프롬프트 엔지니어링은 어떻게 다른가요?
프롬프트 엔지니어링은 한 번의 요청을 다듬어, 그 한 호출에서 모델이 원하는 대로 하게 만드는 기술입니다. 컨텍스트 엔지니어링은 작업이 펼쳐지는 동안 모델이 여러 호출에 걸쳐 보는 모든 것을 관리하는 더 넓은 일입니다. 지시, 검색해 온 문서, 도구 결과, 앞선 단계들의 기록, 저장된 메모리가 거기에 듭니다. 프롬프트는 그 묶음의 한 항목일 뿐입니다. 이 차이는 한 번 답하고 마는 것이 아니라 여러 단계를 도는 에이전트에서 가장 크게 드러납니다. 질문 하나라면 좋은 프롬프트 하나로 충분한 때가 많습니다. 몇 분에서 몇 시간씩 일하는 에이전트라면, 더 어려운 문제는 매 단계마다 알맞은 컨텍스트를 조립하고, 창을 집중된 상태로 유지하며, 작업이 바뀔 때마다 세부를 넣고 빼는 일입니다. 그런 뜻에서 컨텍스트 엔지니어링은, 시스템이 한 번짜리에서 에이전트로 옮겨 가면서 프롬프트 엔지니어링에서 자라 나온 분야로 흔히 설명됩니다.
Q
컨텍스트 윈도우가 계속 커지는데도 컨텍스트 엔지니어링이 필요한가요?
네, 큰 창이 근본 문제를 해결하지는 않기 때문입니다. 모델이 주어진 것에 나눠 쓸 주의력은 한정되어 있고, 그 예산은 창이 커진다고 함께 늘지 않습니다. 아주 큰 창을 가진 것 전부로 채우면 모델은 여전히 중요한 부분을 놓치고, 답은 덜 정확해지며, 호출마다 비용이 더 들고, 응답이 느려집니다. 큰 창은 담을 수 있는 양의 천장을 높여 줄 뿐, 무엇을 담아야 하는지를 정해 주지는 않습니다. 값이 낮은 텍스트를 더 넣으면 결과는 나아지기보다 나빠지는 때가 많습니다. 지금 모델 앞에 무엇을 두고 나머지는 밖에 둘지 고르는 핵심 기술은 창이 아무리 커져도 여전히 필요합니다. 오히려 큰 창은 이 분야를 더 값지게 만듭니다. 실수로 과하게 채우기가 더 쉬워지기 때문입니다.
Q
컨텍스트 엔지니어링의 주요 기법은 무엇인가요?
실무적인 접근은 대개 네 가지 움직임으로 모입니다. 첫째는 상태를 컨텍스트 윈도우 밖에 적어 두는 것입니다. 이어지는 메모, 스크래치패드, 또는 에이전트가 다시 읽을 수 있는 파일에 남겨서, 중요한 정보가 창 안에 남아 있느냐에 매달리지 않게 합니다. 둘째는 전체 기록을 한꺼번에 들고 있는 대신 지금 단계에 필요한 것만 골라 필요할 때 끌어오는 것으로, 검색 증강 생성(RAG)이 문서에 쓰는 것과 같은 생각입니다. 셋째는 긴 기록을 짧은 요약으로 압축해서, 앞선 백 번의 대화를 모델이 여전히 다룰 수 있는 몇 문장으로 줄이는 것입니다. 넷째는 하위 작업을 따로 떼어, 대화 전체를 끌고 다니는 대신 도우미 에이전트에게 깨끗한 자기 컨텍스트를 주는 것입니다. 이것은 고정된 공식이 아니고 알맞은 조합은 작업에 따라 다르지만, 함께 놓고 보면 일이 길어지는 동안 시스템이 창을 어떻게 집중된 상태로 유지하는지를 그려 줍니다. 낡은 내용을 걷어 내거나 창 밖에 메모리를 저장하는 도구처럼 플랫폼 기능이 이를 점점 직접 지원하지만, 무엇을 남기고 버리고 요약할지에 대한 바탕 결정은 여전히 엔지니어의 몫입니다.
매주 월요일 오전 8시

한 주에 한 통,
오래 남는 이해를 보냅니다.

흘려보내지 않는 글만 골라 보내드립니다. 광고와 추적, 외부로 빠지는 미끼 링크 없이 메일 안에서 끝나는 한 통입니다.

언제든 한 번의 클릭으로 해지할 수 있습니다. 스팸은 보내지 않습니다.