
3장. 컨텍스트, 프롬프트, 코드
AI 에이전트에게도 남은 두 한계를 채우는 세 재료, 컨텍스트(사전학습)와 프롬프트·코드(확률 모델)를 실제로 다루는 법을 정리하고, 클로드 코드에서 각 재료를 담는 그릇을 한 그림으로 묶습니다.
분기 결산을 앞두고 AI 에이전트에게 "대손충당금 계산해 줘"라고 맡겼다고 해 보겠습니다. 돌아온 파일을 열어 보면 계산은 깔끔하게 되어 있는데, 우리 회사가 쓰는 설정률이 아니라 AI가 그럴듯하다고 고른 비율로 계산되어 있습니다. 다음 분기에 같은 말로 다시 맡기면 이번에는 표의 모양부터 지난번과 다릅니다.
2장에서 살펴본 AI 에이전트는 파일을 읽고 코드를 실행할 수 있으므로, 글만 쓸 줄 알던 챗봇의 한계는 이미 넘어섰습니다. 그런데도 이런 일이 생기는 이유는 에이전트에게도 두 가지 한계가 그대로 남아 있기 때문입니다.
- 사전학습: AI는 학습한 데이터만 압니다. 우리 회사의 대손 설정 기준이나 이번 분기 채권명세, 최신 기준은 모릅니다.
- 확률 모델: AI는 다음에 올 말을 확률로 고르므로 같은 요청에도 매번 결과가 조금씩 다릅니다.
이 두 한계를 채우는 재료가 바로 이 장의 제목인 컨텍스트, 프롬프트, 코드입니다. 사전학습의 한계는 컨텍스트로 채우고, 확률 모델의 한계는 프롬프트로 결과가 달라지는 폭을 원하는 방향으로 줄이면서 반복되는 일은 코드로 아예 고정합니다.
세 재료로 업무를 자동화하는 전략은 서론에서 이야기했습니다. 이 장에서는 세 재료를 실제로 다루는 법, 곧 컨텍스트는 어떻게 넘기고 프롬프트는 어떻게 쓰며 코드는 언제 쓰게 하는지를 차례로 살펴보겠습니다.
컨텍스트: AI가 모르는 것은 우리가 넘겨준다
컨텍스트(Context)는 AI가 학습하지 못한 정보를 알려 주는 배경 정보, 우리말로 맥락입니다. AI는 사전학습한 데이터만 알고 있으므로 거기에 없는 정보는 결국 사람이 넘겨줘야 하고, 이렇게 넘기는 정보가 모두 컨텍스트입니다.
AI로 사주를 볼 때 생년월일시부터 알려 주는 것을 떠올리면 쉽습니다. 생년월일시를 모르는 AI는 아무리 똑똑해도 사주를 풀 수 없습니다. 결산도 마찬가지입니다. 회사의 대손 설정 기준, 이번 분기 채권명세, 지난 결산에서 내린 결론은 모두 AI가 스스로 알 수 없는 컨텍스트입니다. 서론의 전략에 비추어 보면 컨텍스트는 AI에게 맡기는 판단의 근거가 됩니다.
근거를 넘기지 않으면 AI는 모르는 자리를 그럴듯하게 지어내기 쉽습니다. 앞의 장면에서 회사 설정률 대신 엉뚱한 비율이 들어간 것도 이 때문이며, 이렇게 지어낸 답(할루시네이션)은 4장에서 다시 다룹니다.
판단의 근거를 넘기는 세 가지 방법
컨텍스트를 넘기는 방법은 AI가 발전하면서 입력에서 첨부로, 첨부에서 자동으로 넓어져 왔습니다.
1. 직접 입력
짧은 정보는 채팅창에 그대로 적습니다. 생년월일시나 대손 설정률처럼 양이 적으면 매번 입력해도 부담이 없습니다.
2. 파일 첨부
수백 쪽짜리 세법 개정 내용처럼 양이 많으면 파일을 통째로 첨부합니다. 한 대화에서 기억할 수 있는 양이 커지면서 PDF와 엑셀, 워드 파일도 AI가 읽게 되었습니다.
3. 자동: 스킬과 MCP
업무 절차는 스킬로 만들어 두고, 기준서처럼 바깥에 있는 자료는 MCP로 연결해 둡니다. 그러면 매번 첨부하지 않아도 AI가 필요할 때 스스로 찾아 읽습니다.
세 번째 방법은 AI가 필요할 때 스스로 펼쳐 보는 오픈북을 마련해 두는 것과 비슷합니다. 대손충당금 계산 파일을 만들라고 하면 AI는 대손충당금 절차를 담은 스킬을 찾아 읽고, IFRS 검토를 맡기면 기준서 원문이 연결된 MCP에서 원문을 직접 읽고 그것을 근거로 검토합니다.
클로드 코드에서는 작업 폴더가 곧 컨텍스트다
클로드 코드는 내 PC에서 일하는 로컬 에이전트라서 작업 폴더 안의 폴더와 파일이 모두 컨텍스트가 됩니다. 받은 자료와 작업 중인 파일, 스킬이 든 .claude/skills 폴더, MCP 연결 정보를 적은 .mcp.json, 작업 규칙을 적은 CLAUDE.md가 한 폴더 안에 모여 있고, 클로드 코드는 우리가 첨부하지 않아도 이 안을 스스로 찾아 읽습니다.
이 구조가 반복 업무에서 갖는 의미는 매달 같은 컨텍스트로 일을 시작할 수 있다는 점입니다. 챗봇에서는 어떤 파일을 첨부하고 어떻게 설명할지를 매번 사람이 골라야 하고, 이번 달에 빠뜨린 파일 하나가 결과를 바꾸기도 합니다. 반면 작업 폴더에 규칙과 절차를 파일로 남겨 두면, 다음 달에도 클로드 코드가 같은 파일을 읽고 같은 기준으로 일을 시작합니다.
작업 폴더 밖의 파일은 허락을 받거나 폴더를 추가해야 읽을 수 있습니다.
멀티모달: 스크린샷과 PDF도 읽는 이유
LLM은 글을 읽고 쓰는 모델이지만, 챗봇에 영수증 사진이나 PDF를 첨부해도 내용을 곧잘 읽어 냅니다. 시각 정보를 글자처럼 번역해서 읽는 구조 덕분이며, 이렇게 글 말고도 이미지 같은 여러 형태의 입력을 함께 다루는 방식을 멀티모달(Multimodal)이라고 합니다.
사진은 작은 조각으로 쪼갠 뒤 그 조각을 숫자로 바꿔 LLM이 읽는데, 이 조각을 '시각 토큰'이라고 부릅니다. PDF는 두 가지로 나뉩니다. 글자를 긁을 수 있는 문서라면 텍스트를 바로 뽑아 읽고, 종이를 스캔한 문서라면 사진처럼 번역해서 읽습니다.
이 조각이 시각 토큰
글자 그대로 꺼낸다
스크린샷과 같은 방식
다만 읽을 수 있다고 해서 정확히 읽는다는 보장은 없습니다. 첨부 파일을 컨텍스트로 넘길 때는 다음 두 가지를 기억해 두면 좋습니다.
- 비용: 이미지를 읽으면 같은 내용의 텍스트보다 훨씬 많은 토큰이 듭니다. 토큰은 4장에서 다룹니다.
- 숫자 왜곡: 해상도가 낮으면 3과 8, 0과 6이 뭉개져 틀린 숫자로 답할 수 있고, 잘못 읽힌 숫자가 그대로 판단의 근거가 됩니다.
1원까지 맞아야 하는 우리 일에서는 두 번째 문제가 특히 무겁습니다. 따라서 자료는 화면 캡처보다 텍스트나 원본 엑셀로 넘기는 편이 안전하고 비용도 적게 듭니다. 이미지와 스캔본은 텍스트 원본을 구할 수 없을 때 쓰는 차선책으로 남겨 둡시다.
프롬프트: 무엇을 어떤 순서로 할지 글로 정한다
프롬프트(Prompt)는 AI에게 원하는 일을 요청하려고 입력하는 글입니다. 무엇을 어떤 순서로 할지, 어디까지 하고 멈춰서 사람에게 물을지를 정하는 글이며, 확률 모델 때문에 결과가 달라지는 폭을 원하는 방향으로 줄이는 재료입니다.
예를 들어 결산 파일을 맡기면서 다음 한 줄을 함께 적어 봅니다.
먼저 파일들을 보고 매번 똑같이 하는 일이랑 판단이 필요한 일을 나눠서 계획을 짜 줘.
그러면 클로드 코드는 곧바로 파일을 만들지 않고 계획부터 세워 우리에게 확인을 받습니다. 이 한 줄이 프롬프트로 순서와 계획을 정한 예입니다. 클로드 코드에는 계획을 먼저 세우게 하는 계획 모드도 있습니다.
하고 싶은 일을 구체적으로
ChatGPT가 나온 지 얼마 되지 않았을 때는 "너는 20년 차 회계 전문가다"로 시작해 역할, 맥락, 지시, 형식을 틀에 맞춰 쓰라는 '프롬프트 엔지니어링' 공식이 크게 유행했습니다.
[역할] 너는 20년 차 회계 전문가다
[맥락] 25년 말 결산, 채권명세 첨부
[지시] 1년 초과 50%로 계산해 줘
[형식] 결과는 엑셀 표로
이 공식이 통한 이유는 프롬프트를 어떻게 쓰느냐에 따라 AI가 고를 수 있는 길이 좁혀지고, 결과가 원하는 방향으로 모이기 때문입니다. 다만 최신 모델은 이런 요령을 이미 안에 내재화하고 있습니다. 역할을 주지 않아도 회계 질문에는 전문가처럼 답하고, 형식을 정하지 않아도 읽기 좋게 정리합니다. 따라서 지금은 공식을 외우는 것보다 하고 싶은 일을 구체적으로 말하는 습관이 훨씬 중요합니다. 아래 두 요청을 비교해 보면 차이가 분명합니다.
대손충당금 계산해 줘.
첨부한 채권명세로 25년 말 대손충당금 계산해 줘. 1년 초과 50%, 2년 초과 100%, 결과는 엑셀 표로.
첫 번째 요청을 받은 AI는 어떤 채권으로, 언제를 기준으로, 몇 퍼센트로, 어떤 모양으로 낼지를 모두 추측해야 합니다. 그리고 추측이 들어가는 자리마다 답이 매번 달라집니다. 두 번째 요청은 재료(채권명세), 기준일(25년 말), 규칙(연령별 설정률), 받을 모양(엑셀 표)을 정해 주므로, 추측할 자리가 줄어든 만큼 결과가 요청에 가까워집니다.
여기서 오해하지 말아야 할 점이 있습니다. 구체적인 요청이 곧 긴 요청을 뜻하지는 않습니다. 두 번째 요청도 두 줄이면 충분합니다. 빠뜨리지 말아야 할 것은 AI가 스스로 알 수 없는 정보입니다.
때로는 일부러 넓게
반대로 방향을 일부러 열어 두는 편이 나을 때도 있습니다. 어떤 관점으로 데이터를 볼지 아직 정하지 못했다면 이렇게 물을 수 있습니다.
첨부한 3개년 월별·거래처별 매출 데이터로 무엇을 볼 수 있을까? 결산 때 눈여겨볼 만한 변동이나 패턴 위주로 관점을 제안해 줘.
이런 질문에는 계절성, 특정 거래처 집중도, 기말 직전의 매출 증가처럼 우리가 미처 생각하지 못한 관점이 돌아오기도 합니다. 넓게 물어 관점을 얻고, 그중 쓸 만한 것을 골라 다시 구체적으로 좁혀 시키면 됩니다. 물론 제안된 관점 가운데 무엇을 채택할지는 사람이 판단합니다.
매번 하는 말은 지침으로
"원본은 고치지 마라", "합계는 수식으로" 같은 말은 일할 때마다 해야 합니다. 하지만 매번 칠 수는 없으니 지침으로 적어 둡니다. 챗봇에도 ChatGPT의 맞춤형 지침이나 클로드의 프로젝트 지침처럼 이런 말을 적어 두는 칸이 있습니다(2026년 10월 기준 메뉴 이름).
클로드 코드에서는 작업 폴더의 CLAUDE.md라는 파일에 지침을 적어 두고, 클로드 코드는 일을 시작할 때마다 이 파일을 읽습니다.
- 01_받은자료는 원본이다. 고치지 않는다
- 합계·차이 칸은 수식으로 넣는다
한 업무에서만 쓰는 절차와 판단 기준은 스킬의 SKILL.md에 적어 두면, 클로드 코드가 그 업무를 맡을 때 읽습니다. 두 파일 모두 이름은 파일이지만 안에 든 것은 프롬프트입니다.
하지만 아무리 잘 쓴 프롬프트와 지침도 AI가 그 글을 따르려고 노력하게 만들 뿐, 매번 똑같이 따른다는 보장은 없습니다. 프롬프트는 결과가 달라지는 폭을 원하는 방향으로 줄여 주지만 없애지는 못합니다. 매번 같아야 하는 일에 코드가 필요한 이유가 여기에 있습니다.
코드: 컴퓨터는 적힌 대로만 실행한다
코드(Code)는 컴퓨터에게 원하는 일을 요청하려고 쓰는 글이며, 이런 글을 쓰는 언어를 프로그래밍 언어라고 합니다. 프롬프트가 AI에게 일을 요청하는 글이라면 코드는 컴퓨터에게 일을 요청하는 글이고, 컴퓨터는 확률로 고르지 않고 적힌 대로만 실행합니다. 이 연재에서는 파일로 저장해 두고 다시 돌리는 코드를 '스크립트'(Script)라고도 부르는데, 두 말은 같은 것을 가리킵니다.
어렵게 들리지만 우리가 매일 쓰는 엑셀 수식도 코드입니다. B14 셀에 =SUM(B2:B13)을 넣어 두면 열 번을 다시 계산해도, 백 번을 다시 계산해도 1,200이 나옵니다. 수식은 정해진 대로만 계산하고 확률로 고르지 않기 때문입니다. 엑셀 함수와 VBA도 코드의 한 종류이고, 클로드 코드가 엑셀 파일을 만들 때 주로 쓰는 파이썬(Python)도 프로그래밍 언어입니다.
합계 = df["매출"].sum() # → 1,200
위 파이썬 한 줄이 하는 일은 엑셀의 SUM과 같습니다. 코드는 엑셀 수식을 더 길게 이어 쓴 것이라고 보면 됩니다. 같은 입력이면 언제나 같은 결과가 나오는 이 성질을 결정론적(Deterministic)이라고 하고, 이 연재에서는 이 성질로 매번 같은 결과를 얻는 일을 '코드로 고정한다'고 부릅니다.
같은 요청을 세 번 했을 때
프롬프트로 AI에게 직접 물으면 사정이 다릅니다. "1월부터 12월 매출 합계 알려 줘"라고 똑같이 세 번 물어보면, 첫 번째 답은 "표로 정리해 드렸습니다"로, 두 번째는 "월별 합계는 다음과 같습니다"로, 세 번째는 "연간 매출은 약 1,200"으로 시작하는 식으로 답의 모양이 매번 달라집니다. 때로는 숫자까지 틀립니다.
두 방식의 차이를 정리하면 다음과 같습니다.
- 요청하는 상대: 프롬프트는 AI에게, 코드는 컴퓨터에게 요청합니다.
- 처리하는 방식: AI는 글을 읽고 다음 말을 확률로 고르고, 컴퓨터는 적힌 대로 실행합니다.
- 같은 입력을 넣으면: 프롬프트는 매번 출력이 달라지고, 코드는 몇 번을 실행해도 같은 결과가 나옵니다.
- 맡길 일: 프롬프트에는 작업 순서와 계획, 판단 기준을 맡기고, 코드에는 반복되는 계산과 서식, 대조를 맡깁니다.
판단은 프롬프트로, 반복은 코드로
따라서 매번 같아야 하는 일은 AI에게 계산을 직접 시키지 말고, 계산하는 코드를 쓰게 합니다. 그 코드를 사람이 한 번 검증하고, 맞으면 파일로 저장해 두었다가 다음부터는 그 코드를 다시 돌립니다. 엑셀로 치면 수식을 한 번 맞게 짜 두고 매달 값만 바꿔 넣는 방식과 같습니다.
코드는 AI가 써 줍니다. 실무자가 파이썬을 배울 필요는 없고, "이거 코드로 만들어서 저장해 줘"라고 말할 줄 알면 됩니다. 서론 그림에서 같은 원장을 코드로 네 번 돌렸을 때 네 번 모두 열 8개, 기말잔액 909,370,854원이 나온 것도 바로 이 방식입니다.
정리하면 작업 순서와 계획, 판단 기준은 프롬프트로 전하고, 매번 반복되는 계산은 코드로 고정하는 것이 확률 모델의 한계를 다루는 두 가지 방법입니다.
세 재료를 담아 두는 그릇
지금까지 살펴본 세 재료를 한데 모아 보겠습니다. 각 재료가 채우는 한계와 하는 일, 그리고 클로드 코드에서 각 재료를 담아 두는 곳은 다음과 같습니다.
- 컨텍스트: 사전학습의 한계를 채웁니다. 판단의 근거를 넘기며, 작업 폴더의 파일과 MCP, 스킬의 references·assets 폴더에 담아 둡니다.
- 프롬프트: 확률 모델의 한계를 채웁니다. 결과가 달라지는 폭을 원하는 방향으로 줄이고 순서와 계획을 정하며, 대화창의 요청과
CLAUDE.md, 스킬의SKILL.md에 담아 둡니다. - 코드: 역시 확률 모델의 한계를 채웁니다. 반복을 아예 고정하며, 저장한 스크립트와 스킬의 scripts 폴더, 훅에 담아 둡니다.
이 내용을 한 문장으로 모으면 이 연재의 핵심 전략이 됩니다. 반복은 코드로 고정하고 AI에게는 판단만 맡기며, 판단에는 컨텍스트를 넘겨주고 업무 순서와 총괄 계획은 프롬프트로 정합니다.
CLAUDE.md와 MCP, 스킬, 훅은 이 재료들을 저장해 두고 필요할 때 꺼내 쓰는 그릇입니다. 한 번 담아 두면 다음 달에도, 다음 분기에도 같은 재료로 일을 시작할 수 있으니, 매번 처음부터 설명하고 첨부하던 수고가 그만큼 줄어듭니다.
다음 4장에서는 세 재료를 실제로 쓰기 시작하면 매일 부딪히는 다섯 가지, 곧 모델과 컨텍스트 윈도우, 토큰, 마크다운, 할루시네이션을 살펴보겠습니다.
비슷한 고민을 하고 계신가요? AI 강의·워크숍, 업무 자동화 — 편하게 문의 주세요.