# 컨텍스트와 기억

> 무엇을 올려보내고 무엇을 남길 것인가. 열한 편 다 코드는 한 줄도 안 넘어왔고 규칙만 남았습니다.

- 수치: 11편 · 코드 0
- 사람이 보는 화면: https://aitryed.com/ko/teardowns/memory/
- 반대 언어: https://aitryed.com/en/teardowns/memory/index.md
- 이 사이트 안내(AI용): https://aitryed.com/ko/llms.txt

---

**AI에게 「무엇을 보여 주고 무엇을 안 보여 줄 것인가」를 다루는 글 열한 편입니다. 그리고 열한 편 전부 코드는 한 줄도 안 가져왔습니다.**

## 먼저 — 왜 「안 보여 줄 것」을 정해야 하나요

AI에게 일을 시킬 때, **아는 걸 전부 알려 주면 잘할 것 같지만 반대**입니다.

AI가 한 번에 읽을 수 있는 양에는 한계가 있습니다. 그 한계를 「책상 넓이」라고 생각해 보세요. 책상에 서류를 다 올려놓으면 정작 지금 필요한 한 장을 못 찾습니다. **넓은 책상이 좋은 게 아니라, 지금 필요한 것만 올라와 있는 책상이 좋습니다.**

그래서 진짜 문제는 「어떻게 더 많이 기억시킬까」가 아니라 <strong>「무엇을 책상 위에 올리고 무엇을 서랍에 둘까」</strong>입니다. 이 칸의 열한 편이 전부 그 이야기입니다.

## 코드는 한 줄도 안 넘어왔고, 넘어온 건 전부 규칙이었습니다

열한 편에서 제 작업으로 넘어온 것을 세어 보면 이렇습니다.

| 넘어온 것의 종류 | 개수 |
|---|---|
| 프로그램 코드 | **0** |
| 규칙·습관·배치 방식 | 전부 |

왜 이렇게 되냐면, **이 문제의 답이 내 데이터 안에 있기 때문**입니다.

남이 만든 정리 도구는 **남의 자료 모양**에 맞춰져 있습니다. 제 자료는 모양이 다릅니다. 그래서 도구를 통째로 가져오면 안 맞고, 가져올 수 있는 건 **「이런 식으로 재 봐라」는 방법**뿐입니다.

## 그리고 이 칸이 제 구멍을 제일 많이 찾아냈습니다

가져온 게 적은데 성과는 제일 컸습니다. **열한 편 중 일곱 편이 「남의 것을 자로 삼아 제 것을 재다가」 결함을 찾아냈습니다.**

이게 이 칸의 진짜 값어치입니다. 좋은 걸 배워 오는 게 아니라, **남의 기준으로 내 것을 재 보면 안 보이던 게 보입니다.**

## 넘어온 것 대부분이 「무엇을」이 아니라 「언제」와 「어디에」였습니다

처음 세 편일 때는 「코드가 안 넘어온다」만 보였습니다. 여덟 편이 되니 더 정확한 문장이 나왔습니다.

배워 온 것들의 모양이 이랬습니다.

- 「새 도구를 만들면 **그 자리에서 바로** 점검한다」 ← **언제**
- 「한 자료는 **딱 한 자리**에만 둔다」 ← **어디에**
- 「분류가 안 되는 건 **임시 칸**에 둔다」 ← **어디에**

무엇을 만들지가 아니라 **언제 하고 어디에 둘지**입니다. 이런 건 도구가 아니라 습관이라 그대로 옮겨집니다.

## 제일 값나간 것은 「근거가 다른데 결론이 같은 것」이었습니다

한 편이 특히 그랬습니다.

어떤 영상에서 말하는 정리 원칙 다섯 개가, **제가 따로 만들어 둔 것과 결론이 똑같았습니다.** 그런데 **이유는 하나도 안 겹쳤습니다.**

- 저쪽 이유: **복잡하면 사람이 지쳐서 안 쓴다**
- 제 이유: **경로가 분류에 묶이면 나중에 분류를 바꿀 때 다 깨진다**

완전히 다른 길로 갔는데 같은 지점에 도착한 것입니다. **그러면 그 지점이 맞을 확률이 올라갑니다.**

같은 이유로 같은 결론이 나오면 그건 그냥 같은 이야기를 두 번 들은 것입니다. **다른 이유로 같은 결론이 나오는 게 훨씬 강한 증거**입니다.

## 그리고 이 칸에서 제일 위험한 판정은 「그건 이미 하고 있다」였습니다

제가 이 칸에서 제일 자주 내리는 판정이 <strong>「이미 하고 있다」</strong>입니다. 아홉 번째 편에서 그 판정 자체가 흔들렸습니다.

**「이미 하고 있다」고 말할 때, 저는 그걸 무엇으로 확인했을까요.** 대개는 **기억으로** 했습니다. 실제로 열어 보지 않았습니다.

그래서 층을 셋으로 나눴습니다.

| 층 | 물어야 하는 것 | 어떻게 확인하나 |
|---|---|---|
| 1 | **갖고 있나** | 파일이 있나 |
| 2 | **돌긴 도나** | 실제로 눌러 보면 결과가 나오나 |
| 3 | **켠 적은 있나** | **마지막 실행 날짜가 있나** |

1층에서 멈추면 「있다」로 끝납니다. 그런데 아홉 번째 편에서는 **2층에서 걸렸고**(있는데 안 돎), 열 번째 편에서는 **3층에서 걸렸습니다**(돌긴 도는데 24일 동안 한 번도 안 켰음).

**셋은 완전히 다른 상태인데 「이미 하고 있다」라는 같은 문장으로 덮입니다.**

## 마지막 — 배울 게 없는 자료도 값을 합니다

재미있는 게 하나 있습니다. **아홉 번째와 열 번째 편은 둘 다 배울 게 거의 없는 자료**였습니다.

그런데 배울 게 없으니 오히려 **대조표를 끝까지 채우게 됐고**, 그 과정에서 **제 쪽 빈칸이 드러났습니다.**

→ **남의 것을 자로 쓸 때, 그 자가 훌륭할 필요는 없습니다.** 눈금만 있으면 됩니다.

## 여기부터는 자세한 기록입니다

모델에 무엇을 올려보내고 무엇을 밖에 남길 것인가를 다루는 것들. 컨텍스트 압축, 벡터 없는 검색, 제2의 뇌, 그리고 **레포를 사람과 에이전트 둘 다 읽을 수 있게 정리하는 방식.**

마지막 항목이 이 분류에 들어오는 게 처음엔 이상해 보입니다. 당근 SEED는 디자인 시스템인데, 실제로 건진 건 컴포넌트가 아니라 **문서를 배치한 방식**이었습니다. 여기 기준은 대상이 무엇이냐가 아니라 **"기계가 무엇을 읽게 할 것인가"를 다루느냐**입니다.

## 열하나, 그리고 코드는 한 줄도 안 넘어왔다

| 대상 | 넘어온 것 | 형태 |
|---|---|---|
| [Headroom](/ko/teardowns/memory/headroom/index.md) | 못 재는 값에 신뢰구간과 라벨을 붙인다 | 규약 1건 |
| [당근 SEED](/ko/teardowns/memory/karrot-seed/index.md) | 소스를 고치면 빌드 자동 실행 · 세션 끝 검증 리마인더 | 훅 2개 |
| [벡터DB 없는 RAG](/ko/teardowns/memory/rag-without-vectors/index.md) | 규모를 축으로 잘라 경계선을 긋는 법 | 구조 1건 |
| [세컨드 브레인 강의](/ko/teardowns/memory/second-brain-course/index.md) | 새 스킬을 만든 **그 턴 안에서** 채점한다 | 타이밍 규칙 1건 |
| [그래프 엔지니어링](/ko/teardowns/memory/graph-engineering/index.md) | 적대 리뷰 3렌즈를 병렬로 — 런당 9.9분 | 배선 1건 |
| [옵시디언 LLM 위키](/ko/teardowns/memory/llm-wiki-obsidian/index.md) | 한 자료는 딱 한 자리 · AI 접근 기록 | 위생 규칙 2건 |
| [세컨드 브레인 인터뷰](/ko/teardowns/memory/second-brain-interview/index.md) | "자동화 전에 맥락" — 도구는 여럿인데 판단 기준이 얇다 | 태도 1건 |
| [파일 관리 체계](/ko/teardowns/memory/file-management/index.md) | 분류가 안 되는 것의 임시 거처 · 인덱스에 정원 | 규칙 2건 + 정정 2건 |
| [세컨드 브레인 4단계](/ko/teardowns/memory/second-brain-4steps/index.md) | 안 넘어왔다 — 대신 **내 칸 하나가 비어 있는 걸 찾았다** | 채택 1건 + 결함 확정 1건 |
| [dsh-anchored-standard](/ko/teardowns/memory/dsh-anchored-standard/index.md) | 안 넘어왔다 — **설치할 훅 자체가 없었다** | 기각 1건 + 미실행 24일 확정 |
| [public-apis](/ko/teardowns/memory/public-apis/index.md) | 값싼 검사를 비싼 검사 앞에 두면 **뒤가 실행된 적 없이도 돌아 보인다** | 함정 1건 + 결함 확정 1건 |

**전부 규칙·훅·구조·배선입니다. 코드 이식은 0건.** 컨텍스트 문제는 대개 남의 코드로 안 풀립니다 — 내 데이터가 어떻게 생겼는지에 답이 있어서, 남한테서 가져올 수 있는 건 자를 대는 방식뿐입니다.

## 그리고 이 분류가 제 구멍을 가장 많이 찾아냈다

일곱 편이 남의 것을 자로 삼아 제 것을 재다가 숫자를 냈습니다.

- 제 볼트 마크다운 **1,021개 중 프론트매터가 있는 건 47개(4.6%)** — 검색이 안 되는 원인이 도구가 아니라 비어 있는 메타데이터일 가능성
- 캐시 재사용률 92.5~96.3%, 미캐시 입력이 콜당 1.8~2.0 토큰 — **압축 도구가 줄여 줄 대상이 존재하지 않았다**
- 수확이라고 적은 7종 중 5종이 **제 `settings.json`을 열어 보니** 이미 있거나 헛다리
- 스킬 99개 전수 스캔에서 **설명문이 아예 없어 자동 호출이 안 되던 것 1건**과 500줄 초과 16종
- 52개 런 로그에서 **영상이 「핵심」이라 부른 기능의 발동 조건이 단 1회**
- 자율 축적 트랙을 실제로 돌려보니 **쌓인 항목 0 · 파일 0 · 관측기 훅 0** — 설치만 돼 있었다
- 한 달 전에 만든 API 카탈로그를 열어 보니 **링크 생사 실측이 1,791건 중 300건(17%)에만** 걸려 있었다

셋째가 제일 아팠습니다. 레포를 아무리 정독해도 안 잡히는 종류의 오류였습니다.

## 두 번째 축 — 넘어온 건 「언제」와 「어디에」였다

셋일 때는 "코드가 안 넘어온다"만 보였습니다. 다섯이 늘고 나니 **더 정확한 문장이 따로 있었습니다 — 넘어온 것 대부분이 「무엇을」이 아니라 「언제」와 「어디에」였습니다.**

세컨드 브레인 강의에서 건진 건 새 점검 도구가 아니라 **점검을 언제 돌리느냐**였고, 그래프 편에서 건진 것도 새 단계가 아니라 **있던 단계를 언제 동시에 돌리느냐**였습니다. 파일 관리 편에서 건진 것도 새 폴더 구조가 아니라 **분류가 안 되는 것을 어디에 두느냐**였습니다. **전부 이미 있는 것의 시점과 자리를 옮긴 것**입니다.

이 분류에서 남의 것으로부터 새 부품을 얻은 적은 거의 없습니다. 얻은 건 **제 부품을 언제 어디에 쓸지에 대한 판단**이었습니다.

## 세 번째 축 — 제일 값어치 있었던 건 「근거가 다른 일치」였다

파일 관리 편이 그 극단입니다. 그 영상은 제가 따로 만든 설계와 **결론 다섯 개가 일치**했는데 **근거가 하나도 안 겹칩니다** — 그쪽은 *"복잡하면 사람이 도망간다"*, 저는 *"경로가 분류에 종속되면 깨진다"*. **서로 다른 길로 같은 지점에 도달하면 그 지점이 맞을 확률이 올라갑니다.**

반대 방향도 있었습니다. 같은 기법인데 **한쪽에선 무해하고 한쪽에선 치명적**인 경우 — 폴더 이름에 번호를 붙이는 것은 **ID 기반 저장소면 괜찮고 경로 기반이면 안 됩니다.** *"저 사람은 되는데 나는 안 된다"* 로 끝냈으면 취향으로 남았을 것을, **왜 갈리는지를 찾으니 규칙이 됐습니다.**

## 네 번째 축 — 「이미 갖고 있다」는 판정이 제일 위험하다

아홉 번째 편이 앞의 세 축을 전부 흔들었습니다. 이 분류에서 가장 자주 내리는 판정이 **"그건 이미 하고 있다"** 인데, **그 판정을 무엇으로 내렸는지를 한 번도 안 물었습니다.**

자율 축적 단계를 대조할 때 저는 "설치돼 있다"를 근거로 **동등**이라고 적었습니다. 실제로 눌러보니 **쌓인 항목도, 파일도, 관측기 훅도 전부 0**이었습니다. 승격이 0건인 게 아니라 **관측이 없어 만들 재료가 애초에 없었습니다.**

**보유 ≠ 작동.** 그리고 이건 그 칸 하나로 끝나지 않습니다 — 같은 표의 「동등」 판정 넷이 전부 **설치 여부 기준**이었습니다. 나머지 셋은 아직 안 눌러봤고, 그때까지는 **장부상 숫자**입니다.

이 축이 [에이전트 하네스](/ko/teardowns/harness/index.md)의 결론과 정면으로 맞물립니다. 그쪽에서 가장 자주 나온 문장이 *"내가 이미 갖고 있었다"* 인데, **그 문장이 맞는지를 재는 방법이 여기서 나왔습니다.**

## 열 번째가 네 번째 축을 한 겹 더 팠다 — 「안 켰다」

아홉 번째 편은 **배울 게 거의 없는 자료**였는데, 그래서 오히려 대조표를 끝까지 채우게 됐고 거기서 빈칸이 나왔습니다. **가져올 게 없는 자료도 값을 합니다** — 남의 것을 자로 쓸 때는 그 자가 훌륭할 필요가 없습니다. 열 번째가 그걸 한 번 더 증명했습니다.

아홉 번째가 **보유 ≠ 작동**을 찾았다면, [열 번째](/ko/teardowns/memory/dsh-anchored-standard/index.md)는 그 아래 칸을 열었습니다. **보유 ≠ 실행 이력.**

이 편은 컨텍스트 예산을 줄이는 남의 프리셋을 뜯으러 갔습니다. 그런데 도입 판정이 나기 전에 조사가 멈췄습니다 — **제 하네스에는 세션 첫 요청에서 주입을 *빼는* 훅이 없습니다.** 설치할 자리가 없으니 채택도 기각도 아니라 **적용 불가**입니다.

그 자리에서 더 아픈 게 나왔습니다. 그걸 **재려고** 반년 전에 들여놓은 측정 스킬이 있는데, **설치 후 24일 동안 한 번도 실행되지 않았습니다.** 산출물 0건, 받쳐 줄 명령은 만들어지지도 않았습니다. 그리고 같은 날 [하네스 쪽 조사](/ko/teardowns/harness/deepseek-harness/index.md)가 **서로 모르는 채로 같은 스킬을 가리켰습니다.**

그래서 네 번째 축이 이렇게 늘어납니다:

| 층 | 물어야 하는 것 |
|---|---|
| 1 | 갖고 있나 — **설치 여부** |
| 2 | 도나 — **눌러 보면 산출이 나오나** (아홉 번째 편) |
| 3 | **켠 적 있나** — 마지막 실행 날짜가 있나 (열 번째 편) |

1층만 보고 「이미 갖고 있다」를 적으면 **창고에 있는 물건을 밖에서 사 오자는 결론**이 나옵니다. 그리고 이 분류에서 가장 자주 내리는 판정이 바로 그것입니다.

**한 줄 더.** 이 편은 제 설정 자체가 **남의 프리셋 묶음을 통째로 복사한 결과**라는 것도 확정했습니다 — 스킬 절반 이상, 룰 대부분, 훅 열 개가 거기서 왔고 자작 훅은 둘입니다. 남의 프리셋을 심사하러 갔다가, 제가 이미 남의 프리셋 위에 앉아 있다는 걸 확인한 셈입니다. **그걸 재려고 같이 집어온 자가 24일째 포장도 안 뜯긴 채였습니다.**
