AI 서재
책으로 읽는 AI서재
한 권을 고르고, 목차에서 차례대로 읽을 수 있게 정리했습니다.
PDF 다운로드 책
다국어로 읽는 대학생 교양 인공지능
한국어 원문과 외국어 번역을 함께 실은 유학생용 교재입니다. 각 책 소개 페이지에서 PDF를 받을 수 있습니다.
[AI서재] 23장 맥락 관리의 기술: 어시스턴트 똑똑하게 쓰기
클로드 코드 완전정복
23장 맥락 관리의 기술: 어시스턴트 똑똑하게 쓰기
김경진 변호사
도입
어시스턴트에게 "지난달 결정한 신제품 출시 일정이 언제였지?"라고 물었을 때, 에이전트가 몇 초 안에 정확한 날짜와 그때의 이유까지 찾아 준다면 — 그것은 에이전트가 똑똑해서가 아닙니다. 정보가 올바른 위치에 올바른 형식으로 저장되어 있기 때문입니다.
반대의 경우를 상상해 보겠습니다. 모든 정보가 CLAUDE.md 한 파일에 몰려 있습니다. 사용자 정보, 팀 구성, 프로젝트 현황, 의사결정 기록, 스킬 사용법까지 500줄이 넘는 문서를 에이전트가 매번 처음부터 끝까지 읽어야 합니다. 모델이 세는 글 조각이 빠르게 소모되고, 컨텍스트 윈도의 한계에 금방 도달합니다. 에이전트의 응답은 느려지고, 정밀도는 떨어집니다.
컨텍스트 관리(Context Management)는 이그제큐티브 어시스턴트의 성능을 좌우하는 보이지 않는 인프라입니다. 화려한 스킬보다 이 인프라를 얼마나 잘 설계하느냐가 어시스턴트의 천장을 결정합니다.
context, decisions, archives 폴더의 역할
프로젝트 폴더 안에는 세 개의 핵심 폴더가 있습니다. 이름만 보면 평범해 보이지만, 각각이 담당하는 시간축이 다릅니다.
context 폴더: 현재를 담는 곳.
이 폴더에는 지금 이 순간 유효한 정보가 들어갑니다. me.md에는 사용자의 이름, 역할, 선호 사항이, work.md에는 사업체의 현재 구조와 주요 제품이, team.md에는 함께 일하는 사람들의 이름과 역할이, priorities.md에는 이번 주, 이번 분기의 핵심 과제가 기록됩니다.
goals.md에는 연간 목표와 분기별 마일스톤이 있습니다.
에이전트가 모닝커피 스킬을 실행하거나, 콘텐츠를 작성하거나, 리서치를 수행할 때, 이 폴더의 파일들이 판단 기준이 됩니다. "이번 분기 목표가 뭐였지?"라는 질문에 에이전트가 답할 수 있는 것은, context/goals.md를 읽으면 되기 때문입니다.
이 폴더의 파일들은 정적이지 않습니다. 분기가 바뀌면 priorities.md가 업데이트되고, 새 팀원이 합류하면 team.md에 추가됩니다. 에이전트에게 "priorities를 업데이트해 줘"라고 말하면, 에이전트가 직접 파일을 수정합니다.
decisions 폴더: 과거의 판단을 보존하는 곳.
중요한 의사결정이 내려질 때마다 이 폴더의 log.md에 기록이 남습니다. 날짜, 결정 내용, 이유, 당시의 맥락이 함께 저장됩니다.
## 2026-03-10
**결정**: 서부 해안 확장 일정을 4월로 연기
**이유**: 현재 웹사이트 런칭에 리소스가 집중되어 있어 동시 진행 시 품질 저하 우려
**맥락**: 웹사이트 런칭 마감 3월 31일, 팀원 1명 추가 채용 진행 중이 기록이 왜 중요한가? 두 달 뒤 "왜 서부 확장을 4월로 미뤘었지?"라는 질문이 떠오를 때, 에이전트가 이 로그를 찾아 답할 수 있습니다. 기억에 의존하지 않아도 됩니다. 조직이 커질수록, 과거의 결정 이유를 추적하는 일이 점점 어려워지는데, 이 폴더가 그 문제를 해결합니다.
archives 폴더: 지난 시즌의 기록을 보관하는 곳.
분기가 끝나면 해당 분기의 목표와 진행 기록이 이곳으로 옮겨집니다. context 폴더에는 현재 분기의 정보만 남기고, 지난 분기의 데이터는 아카이브합니다. 이렇게 하면 context 폴더가 비대해지는 것을 막으면서도, 필요할 때 과거 기록을 찾아볼 수 있습니다.
[그림 23-1] context, decisions, archives 폴더의 시간축 다이어그램]
세 폴더의 관계를 요약하면 이렇습니다. context는 현재, decisions는 결정의 역사, archives는 과거의 스냅샷입니다. 시간이 흐르면 context의 일부가 archives로 이동하고, 새로운 정보가 context에 채워집니다. decisions는 계속 누적됩니다.
정보의 계층적 배치
20장에서 CLAUDE.md가 라우터 역할을 한다고 설명했습니다. 이 개념을 한 단계 더 깊이 들여다보겠습니다.
에이전트가 사용자의 메시지를 처리하는 순서는 다음과 같습니다.
1. CLAUDE.md를 로드합니다. (매 대화의 시작점)
2. 사용자의 요청을 분석합니다.
3. 필요한 정보가 어디에 있는지 CLAUDE.md의 경로 안내를 따라 파악합니다.
4. 해당 파일만 선택적으로 읽습니다.
이 구조가 없다면 어떻게 될까요? CLAUDE.md에 모든 정보를 넣거나, 에이전트가 프로젝트 전체를 뒤져야 합니다. 전자는 모델이 세는 글 조각 낭비이고, 후자는 시간 낭비입니다.
[그림 23-2] 정보 계층 구조: CLAUDE.md → 라우팅 → 개별 컨텍스트 파일]
CLAUDE.md에는 이런 식으로 적혀 있습니다.
## 컨텍스트 안내
- 사용자에 대해 알아야 하면 → context/me.md
- 사업체 정보가 필요하면 → context/work.md
- 팀원 정보가 필요하면 → context/team.md
- 현재 집중 과제를 확인하려면 → context/priorities.md
- 분기 목표를 보려면 → context/goals.md
## 프로젝트 안내
- 웹사이트 런칭 → projects/website-launch/README.md
- 서부 확장 → projects/west-coast-expansion/README.md
- 겨울 이벤트 → projects/winter-events/README.md이 방식의 이점은 모델이 세는 글 조각 절약에만 있지 않습니다. 정보의 단일 진실 공급원(Single Source of Truth)이 유지됩니다. 사용자 정보가 me.md 한 곳에만 있으므로, 수정할 때 한 파일만 고치면 됩니다. 만약 CLAUDE.md와 me.md 양쪽에 사용자 정보가 중복되어 있다면, 한쪽만 수정했을 때 불일치가 발생합니다.
라우팅 구조를 설계할 때의 원칙은 명확합니다.
CLAUDE.md에는 경로와 핵심 규칙만 둡니다.- 상세 정보는 전용 파일에 분리합니다.
CLAUDE.md의 분량을 150줄 이내로 유지합니다.- 파일이 늘어나면
CLAUDE.md에 해당 경로를 추가합니다.
스킬 파일에서도 같은 원칙이 적용됩니다. 스킬의 YAML 프론트매터에는 이름과 설명만 넣고, 에이전트가 스킬을 선택한 뒤에야 전체 지시문을 로드합니다. 참조 파일이나 스크립트는 필요한 경우에만 추가로 읽습니다. 이 3단계 로딩을 점진적 컨텍스트 로딩이라 부릅니다.
| 로딩 단계 | 읽는 범위 | 토큰 소모 |
|---|---|---|
| 1단계: 스킬 탐색 | YAML 프론트매터 (이름, 설명) | 약 100토큰 |
| 2단계: 스킬 실행 | skill.md 전체 | 1,000~3,000토큰 |
| 3단계: 추가 참조 | 스크립트, 레퍼런스 파일 | 필요 시에만 |
[그림 23-3] 점진적 컨텍스트 로딩의 3단계]
프로젝트 관리 도구와의 연동
context 폴더의 파일들이 아무리 잘 정리되어 있어도, 실시간 데이터가 빠져 있다면 어시스턴트의 판단은 과거에 머물게 됩니다. 팀원이 오늘 아침 태스크를 완료했는데, priorities.md에는 그 태스크가 여전히 "진행 중"으로 적혀 있다면 문제입니다.
이 간극을 메우는 것이 프로젝트 관리 도구와의 연동입니다. 클릭업, 노션, 아사나 같은 도구에 에이전트가 직접 접속해서 최신 데이터를 가져옵니다. 연동 방식은 크게 두 가지입니다.
API 연동. 해당 도구의 API 키를 .env 파일에 저장하고, 에이전트가 API를 호출해 데이터를 읽고 쓸 수 있도록 스킬을 구성합니다. 에이전트에게 "클릭업 연동 스킬을 만들어 줘. API 키는 .env에 넣을 거야"라고 말하면, 에이전트가 API 문서를 조사하고 스킬을 작성합니다.
MCP 연결 서버 연동. MCP(Model Context Protocol) 서버를 통해 연결하는 방식입니다. MCP 연결 서버가 프로젝트 관리 도구와 에이전트 사이의 다리 역할을 합니다. 클릭업용 MCP 연결 서버가 있다면 에이전트가 자연어로 "이번 주 마감인 태스크를 보여 줘"라고 요청할 수 있습니다.
[그림 23-4] 프로젝트 관리 도구 연동 아키텍처 다이어그램]
연동이 완료되면, 모닝커피 스킬이나 펄스 체크 스킬이 실시간 데이터를 기반으로 작동합니다. priorities.md에 적힌 정적 정보와 프로젝트 관리 도구에서 가져온 동적 정보가 결합되어, 에이전트의 판단 정밀도가 올라갑니다.
연동 과정에서 주의할 점이 하나 있습니다. 에이전트가 프로젝트 관리 도구에서 데이터를 검색할 때, 매번 리스트를 탐색하고 ID를 추출하는 과정이 모델이 세는 글 조각을 크게 소모할 수 있습니다. 21장에서 언급한 것처럼, 자주 사용하는 리스트 ID를 스킬 파일에 미리 기록해 두면 이 비용을 줄일 수 있습니다.
에이전트가 작업하는 과정을 관찰하면서 반복되는 탐색 패턴을 발견했다면, 그것을 하드코딩하는 것이 실용적인 최적화입니다.
# 펄스 체크 스킬 내 하드코딩 예시
## ClickUp 리스트 ID
- 콘텐츠 제작: list_abc123
- 웹사이트 런칭: list_def456
- 서부 확장: list_ghi789
이 ID를 사용하여 직접 접근하세요.
리스트 검색 API를 호출하지 마세요.매일 사용할수록 정밀해지는 어시스턴트의 진화 경로
어시스턴트를 한 달 동안 매일 사용하면, 프로젝트 폴더의 모습이 크게 달라집니다. 첫날에는 context 폴더에 네 개의 파일과 CLAUDE.md가 전부였지만, 30일 뒤에는 스킬 폴더에 여러 스킬이 추가되고, 리서치 보고서가 쌓이고, 의사결정 로그가 길어지고, 프로젝트별 폴더에 산출물이 채워져 있습니다.
이 축적이 곧 어시스턴트의 지능입니다. 에이전트 자체의 모델이 바뀌지 않아도, 참조할 수 있는 데이터가 풍부해지면서 응답의 정밀도가 올라갑니다.
진화의 경로를 시간순으로 그려 보겠습니다.
1주차: 기초 정립.
인터뷰를 통해 context 파일을 채우고, 첫 번째 스킬을 만듭니다. 아직 에이전트의 응답이 일반적으로 느껴질 수 있습니다. "내 사업을 잘 모르는 신입 비서"와 대화하는 감각입니다.
2주차: 패턴 발견. 매일 사용하다 보면, 반복되는 요청이 보이기 시작합니다. "이건 스킬로 만들 수 있겠다"는 감각이 생깁니다. 기존 ChatGPT 프로젝트나 커스텀 GPT의 프롬프트를 가져와 스킬로 전환합니다. 에이전트에게 수정 의견을 주면서 스킬의 품질이 올라갑니다.
3에서 4주차: 정착. 모닝커피 스킬을 매일 돌리고, 리서치 스킬로 주 2에서 3회 조사를 수행하고, 콘텐츠 생성 스킬로 소셜 미디어 게시물을 작성합니다. 에이전트가 사업의 맥락을 깊이 이해하게 되면서, 제안의 적중률이 눈에 띄게 올라갑니다. "1개월 전과는 완전히 다른 도구를 쓰고 있는 것 같다"는 느낌이 드는 시점입니다.
[그림 23-5] 어시스턴트 진화의 타임라인: 1주 → 2주 → 4주]
진화를 가속하는 몇 가지 습관이 있습니다.
에이전트에게 "기억해 둬"라고 말하기. "나는 항상 오전에 집중 작업을 선호한다는 걸 기억해 둬." 에이전트가 이 정보를 me.md나 적절한 파일에 저장합니다. 다음 모닝커피 스킬 실행 시, 집중 작업이 자연스럽게 오전에 배치됩니다.
스킬 실행을 관찰하고 수정 의견 주기. 처음 서너 번은 에이전트가 스킬을 실행하는 과정을 지켜봅니다. 불필요한 API 호출이 보이면 "그 과정은 생략하고 이 ID를 직접 써"라고 지시합니다. 에이전트가 스킬 파일을 수정하면, 다음 실행부터 더 효율적으로 작동합니다.
주기적으로 컨텍스트 파일을 점검하기. 에이전트는 CLAUDE.md에 적힌 주기(주간, 월간, 분기)에 따라 파일 업데이트를 제안합니다. 주간으로는 자동 메모리 정리, 월간으로는 priorities.md 업데이트, 분기마다 목표 파일 갱신. 이 루틴을 따르면 컨텍스트가 낡지 않습니다.
.claude 폴더 구조 깊이 보기
.claude 폴더는 어시스턴트의 내부 설정을 담는 공간입니다. 프로젝트 루트에 위치하며, 크게 세 개의 하위 폴더로 구성됩니다.
.claude/
├── skills/
│ ├── morning-coffee/
│ │ └── skill.md
│ ├── research/
│ │ ├── skill.md
│ │ └── references/
│ ├── pulse-check/
│ │ └── skill.md
│ └── infographic-builder/
│ ├── skill.md
│ └── scripts/
├── agents/
│ ├── research-agent.md
│ └── clickup-searcher.md
└── rules/
└── communication-style.mdskills 폴더. 각 스킬이 독립된 하위 폴더를 갖습니다. 스킬 폴더 안에는 skill.md가 있고, 필요에 따라 references/나 scripts/ 하위 폴더가 추가됩니다. 참조 파일이나 스크립트의 위치는 반드시 .claude/skills/ 안에 있어야 하는 것은 아닙니다. skill.md 안에서 정확한 경로를 가리키고 있으면 프로젝트 어디에든 둘 수 있습니다.
agents 폴더. 보조 에이전트의 설정 파일이 저장됩니다. 각 에이전트 파일에는 역할, 사용할 모델, 수행할 작업이 기술되어 있습니다. 메인 에이전트가 작업을 위임할 때 이 파일을 참조합니다.
rules 폴더. 소통 스타일, 포맷팅 규칙, 금지 표현 등 에이전트의 행동을 규제하는 규칙이 들어갑니다. "불릿 포인트 사용", "간결한 어조", "엠 대시 사용 금지" 같은 세부 지침들입니다.
[그림 23-6] .claude 폴더의 내부 구조와 각 하위 폴더의 역할]
이 구조에서 핵심은 분리와 참조입니다. 모든 설정을 한 파일에 넣지 않고, 용도별로 분리한 뒤, 필요한 곳에서 경로로 참조합니다. 스킬이 10개, 20개로 늘어나도 이 원칙을 지키면 관리가 어렵지 않습니다.
글로벌 스킬(Global Skill)이라는 개념도 있습니다. .claude/skills/ 안이 아니라, 사용자의 홈 디렉터리(Home Directory)에 스킬을 설치하면, 어떤 프로젝트를 열든 해당 스킬을 사용할 수 있습니다. 프론트엔드 디자인 스킬처럼 특정 프로젝트에 국한되지 않는 범용 스킬에 적합합니다.
마무리
컨텍스트 관리는 화려하지 않습니다. 폴더를 만들고, 파일을 분리하고, 경로를 정리하는 — 지루해 보이는 작업입니다. 그러나 이 인프라가 없으면 스킬은 맥락 없이 작동하고, 에이전트의 응답은 일반적인 수준에 머물며, 사용할수록 똑똑해지는 선순환이 시작되지 않습니다.
context 폴더가 현재를 담고, decisions가 판단의 역사를 기록하고, archives가 과거를 보존하며, CLAUDE.md가 이 모든 것의 교차로 역할을 하는 구조 — 이것이 어시스턴트를 단순한 챗봇이 아니라 사업의 두뇌로 만드는 기반입니다.
이 기반 위에서 스킬은 점점 정교해지고, 에이전트는 사용자의 판단 패턴을 학습하며, 한 달 전에는 상상할 수 없었던 수준의 자동화가 일상이 됩니다. 하지만 하나의 에이전트가 모든 것을 처리하는 데는 한계가 있습니다. 복잡한 작업을 여러 전문 에이전트에게 나누어 위임하는 구조, 즉 보조 에이전트의 세계가 다음에 펼쳐집니다.
이 책이 잠시라도 당신 곁에 머물렀다면, 다음 이야기가 세상에 나올 수 있도록 후원해 주세요.
(자발적 후원 부탁 구좌 : 농협 302-1096-0948-81 예금주 : 김경진)
