[사례 5편] 정확도 88점, 도달률 49점 — 지식은 맞는데 저장소는 안 쓰였다

평가 시리즈 (2/2) — [4편]에서 만든 자로 실제 측정을 돌렸습니다. 결과는 좋지 않았고, 그게 이 글의 수확입니다.

소개

시도하고자 했던 것과 그 이유를 알려주세요.

4편에서 질문 15개와 채점 루브릭을 만들었습니다. 목적은 하나였습니다.

"AKM에 쌓은 지식이 실제로 꺼내지는가?"

특히 이번 주에 track-me라는 별도 프로젝트를 AKM에 붙이면서, 코드 저장소의 AGENTS.md에 포인터만 심어두면 지식이 공유된다는 가정을 세웠습니다. 그 가정이 맞는지 확인해야 했습니다.

방법은 같은 질문을 두 곳에서 묻고 비교하는 것입니다.

  • 조건 A — akm-week1 폴더만 연 새 세션 (AKM이 곧 작업 폴더)

  • 조건 B — track-me 폴더만 연 새 세션 (AGENTS.md 포인터를 타고 가야 함)

15문항 × 2조건 + 탐색 문항 1개 = 응답 31건을 모아 채점했습니다.

진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

도구: Claude Cowork(폴더별 새 세션) · 4편에서 만든 엑셀 기록지(6시트) · openpyxl 집계

① 31개 세션을 돌리다

원칙은 4편에서 정한 대로였습니다. 문항마다 새 대화, 힌트 금지, 같은 노트를 쓰는 문항 쌍(C2-1↔C2-2, C3-1↔C3-2)은 연달아 묻지 않기.

질문은 [문항] 시트에서 그대로 복사해 붙여넣기만 했습니다. 답이 오면 응답 전문과 함께 읽은 파일 목록을 받았습니다.

이 답변을 위해 참조한 파일들을 리스트업해주고 웹검색을 이용했는지 알려줘.

이 한 줄이 이번 측정의 핵심 도구였습니다. 답변만 봐서는 "저장소에서 나온 답"과 "원래 알던 답"을 구분할 수 없기 때문입니다.

② 실제로 던진 15문항

4편에서는 문항을 공개하지 않았습니다. "정답지를 저장소에 두면 다음 회차가 오염된다"는 이유였습니다. 이번 글에는 싣습니다 — 1회차를 이미 돌린 시점에서 이 15문항은 소진됐고, 2회차는 어차피 문항 교체가 필요하다고 4편에서 예고했기 때문입니다. 다만 채점용 필수 요소(정답지)는 여전히 싣지 않습니다.

카테고리는 "질문이 track-me에서 얼마나 떨어져 있는가"로 나눴습니다.

질문

답이 있어야 할 노트

C1

프로젝트 고유 사실 — AKM만으로 프로젝트를 이해할 수 있는가

C1-1

track-me 프로젝트에서 보호자와 피보호자의 인증 방식이 서로 다릅니다. 각각 어떻게 되어 있고, 왜 그렇게 정했나요?

30-context/projects/track-me 결정 3

C1-2

track-me에서 '앱이 종료되어도 추적이 지속된다'는 요구사항이 어떻게 바뀌었고, 그 근거는 무엇인가요?

같은 노트, "스펙에서 내린 요구사항"

C1-3

track-me에서 위치 이력을 얼마나, 어떤 형태로 보관하기로 했나요? 그렇게 정한 진짜 이유는 무엇인가요?

같은 노트, 결정 8

C2

승격된 범용 지식 — ★어댑터 주 지표. 질문에 track-me를 언급하지 않음

C2-1

위치 시계열을 '반경 200m 안에 30분 이상 머문 곳'만 남기고 압축하려 합니다. 이 파라미터를 그대로 쓰면 무엇을 놓치게 되나요?

20-knowledge/techniques/stay-point-detection

C2-2

데이터에 공백이 있는 시계열에서 체류 지점을 뽑을 때 특별히 조심할 점이 있나요?

같은 노트

C2-3

OS 제약 때문에 어떤 요구사항의 달성 여부가 불확실합니다. 어떤 순서로 확인해야 하나요?

50-procedures/platform-ceiling-spike

C3

도메인 범용 — track-me를 전혀 언급하지 않는 일반 질문

C3-1

Android에서 앱이 강제 종료된 뒤 백그라운드 위치 추적을 재개하는 경로는 무엇이고, iOS와 어떻게 다른가요?

20-knowledge/techniques/mobile-background-location-limits

C3-2

FCM high-priority 메시지로 단말을 깨워 백그라운드 작업만 수행하려 합니다. 위험이 있나요?

같은 노트

C3-3

한국에서 타인의 위치정보를 수집하려면 동의를 어떻게 받아야 하나요? 사업이 아니면 면제되나요?

20-knowledge/guides/korea-location-information-act

C4

AKM 시스템 자체 — 지침이 규칙 문서까지 연결되는가

C4-1

작업하다 알게 된 내용을 이 지식 저장소에 남기려고 합니다. 저장 위치를 정하는 절차와 지켜야 할 형식을 알려주세요.

99-system/ROUTER · 00-inbox/README · SCHEMA

C4-2

AKM 지식 저장소를 여러 프로젝트가 함께 씁니다. 프로젝트별로 어떻게 구분하나요?

40-memory/project-routing + 프로젝트 노트

C4-3

세션을 넘어 같은 실수가 반복되고 있다는 걸 발견했습니다. 이 저장소의 규칙상 어떤 절차로 처리해야 하나요?

99-system/LOOP Learn Back + 70-evaluation/failure-patterns/…

C5

완전 무관 — ★경계 주 지표. track-me가 나오면 오염

C5-1

LLM Wiki 패턴과 RAG는 어떻게 다르고, 어떤 경우에 무엇을 고르나요?

20-knowledge/comparisons/llm-wiki-vs-rag

C5-2

구형 Intel Mac에 에이전트를 설치할 때 흔히 걸리는 실패 지점은 무엇인가요?

20-knowledge/patterns/agent-install-common-pitfalls + 기기 제약 노트

C5-3

온톨로지는 택소노미·스키마·지식그래프와 어떻게 구분되나요?

20-knowledge/comparisons/ontology-vs-taxonomy-…

탐색 문항 P (조건 A 전용, 별도 세션):

이 앱에서 보호자와 피보호자의 인증 방식이 서로 다릅니다. 각각 어떻게 되어 있나요?

C1-1과 내용은 같지만 "이 앱"으로 지시 대상을 비워 뒀습니다. AKM 폴더에는 가리킬 앱이 없으므로, 저장소를 뒤져 스스로 track-me를 특정하는지를 봅니다. 되묻는 것도 만점으로 채점합니다.

③ 채점 — 조건별로 "정당한 근거 위치"를 다르게 잡다

채점하면서 원칙을 하나 정해야 했습니다. 도달 점수를 무엇으로 볼 것인가.

조건 A와 B는 접근 가능한 저장소가 다릅니다. B는 코드 저장소의 docs/specs/도 봅니다. 그래서 카테고리마다 정당한 근거 위치를 다르게 잡았습니다.

카테고리

조건 A의 정당한 근거

조건 B의 정당한 근거

C1 프로젝트 고유

AKM 프로젝트 노트

AKM 또는 docs/specs/ (둘 다 정당)

C2·C3 공유 지식

AKM 공유 레이어

AKM 공유 레이어 (로컬만 쓰면 어댑터 실패)

C4 AKM 시스템

99-system/

AGENTS.md 경유 99-system/

C5 무관 영역

AKM 기존 노트

AKM 기존 노트

이 구분이 없으면 어댑터 신호가 통째로 사라집니다. C1에서 B가 자기 스펙으로 답하는 건 정상이고, C2에서 B가 로컬로만 답하는 건 실패입니다. 같은 행동이 카테고리에 따라 다르게 읽힙니다.

④ 집계

기록지의 집계 시트가 카테고리 합계·차이·플래그·위험신호를 자동으로 냅니다. (캡처 1: 집계 시트)

결과와 배운 점

배운 점과 나만의 꿀팁을 알려주세요.

총점보다 먼저 봐야 할 두 숫자

정확 (필수 요소를 몇 개 포함했나)   79/90   88%
도달 (저장소에서 근거를 가져왔나)   44/90   49%

답은 잘합니다. 저장소는 절반만 쓰입니다.

이 격차가 이번 측정의 전부입니다. 정확도만 봤다면 "잘 되고 있네"로 끝났을 겁니다. 도달을 따로 재지 않았으면 영영 몰랐을 문제입니다.

조건 A (AKM)

조건 B (track-me)

도달

28/45

16/45

정확

40/45

39/45

총점

68/90

55/90

정확은 40 대 39로 거의 같은데 도달은 28 대 16입니다. 답의 품질은 비슷한데 저장소를 쓴 정도는 두 배 가까이 차이납니다.

위험 신호 — 4편에서 미리 정의해둔 것이 그대로 나왔다

  • 도달 0점: 30건 중 12건 (40%)

  • 도달 0점 + 정확 3점: 6건 ← 4편에서 "가장 위험한 신호"로 지정해둔 조합

  • 경계 플래그: ⚠ 이탈 4건, ✗ 오염 1건

"도달 0 + 정확 3"은 답은 완벽한데 저장소가 아무 일도 안 했다는 뜻입니다. 6건이면 우연이 아닙니다.

카테고리별

A

B

차이

예상

판정

C1 프로젝트 고유

18

18

0

B가 높은 게 정상

✅ 정상 (✚는 3 대 5로 B가 상세)

C2 승격 지식

10

7

−3

차이 없어야 정상

❌ 어댑터 실패

C3 도메인 범용

7

10

+3

차이 없어야 정상

❌ A가 더 낮음 (예상과 반대)

C4 AKM 시스템

18

12

−6

B가 약간 불리

⚠ 예상보다 크게 벌어짐

C5 무관 영역

15

8

−7

완전히 같아야 정상

❌ 오염 + B 도달 붕괴

🔥 가장 큰 발견 — INDEX가 "비어 있다"고 말하고 있었다

C3-1과 C3-3의 조건 A가 이렇게 답했습니다.

"지식 레이어(20-knowledge/)는 INDEX 기준으로 비어 있어서 참조할 기존 노트가 없었고, 답변 내용은 전부 외부 조사에서 나왔습니다."

확인해보니 사실이었습니다. 배포되는 99-system/INDEX.md는 모든 레이어가 (empty)입니다. 실제 노트 목록은 INDEX.local.md에 있고, 이건 인스턴스 데이터라 gitignore 대상입니다.

AKM 설계상 의도된 분리입니다 — 공개 저장소를 클론해도 남의 노트 목록이 안 딸려오도록. 그런데 에이전트는 INDEX.md만 보고 "저장소가 비었다"고 결론짓고 웹으로 나갔습니다.

노트를 아무리 잘 써도, 입구에서 "여긴 아무것도 없다"고 하면 도달률은 0입니다. 이건 문항 설계 문제가 아니라 고칠 수 있는 실제 결함이었습니다.

🔥 두 번째 발견 — 어댑터는 "적힌 만큼만" 전달한다

C4에서 조건 B가 흥미로운 패턴을 보였습니다.

문항

B의 행동

도달

정확

C4-1 저장 절차

폴더 연결을 요청·승인받아 AKM 직접 읽음

3

3

C4-2 프로젝트 구분

AKM 마운트 실패 → AGENTS.md만 읽음

1

3

C4-3 반복 실수 처리

AGENTS.md만 읽음

1

1

C4-1은 어댑터가 작동한 증거입니다. 에이전트가 스스로 "이건 AKM을 봐야 한다"고 판단해 폴더 접근을 요청했습니다.

C4-2가 더 재미있습니다. AKM에 도달하지 못했는데도 필수 4개를 전부 맞췄습니다. 스코핑 규약(공유 레이어는 평평하게, usedBy로 구분, 전용 폴더는 3개뿐)이 AGENTS.md 스니펫에 다 적혀 있었기 때문입니다.

C4-3은 정반대입니다. 같은 조건인데 1점. LOOP의 Learn Back 매핑표와 "40-memory에 예방 포인터" 규칙이 스니펫에 없었습니다.

→ 어댑터에 무엇을 더 넣어야 하는지가 정확히 드러났습니다. 포인터만 심으면 되는 게 아니라, 자주 쓰는 규칙은 스니펫에 실체를 적어야 합니다.

오염 1건

C5-1(LLM Wiki vs RAG)은 track-me와 아무 상관없는 대조군 문항입니다. 조건 B의 답변 말미에 이 문장이 있었습니다.

"지금 track-me + AKM 구성이 딱 Wiki 쪽 절반입니다."

무관해야 할 질문에 프로젝트가 새어 들어왔습니다. 심각한 수준은 아니지만 대조군이 있었기에 잡혔습니다.

탐색 문항 P — 2점, 그런데 해석 주의

"이 앱의 인증 방식은?"이라고 지시 대상을 비워 물었습니다. 저장소를 뒤져 track-me를 찾아냈지만 되묻지 않고 단정해서 2점입니다.

다만 4편에서 미리 적어둔 함정이 그대로 작동했습니다 — AKM에 앱 성격 프로젝트가 track-me 하나뿐이라 후보가 애초에 하나였습니다. 이 2점을 "구조가 좋아서"로 읽으면 안 됩니다.


꿀팁 ①: 정확도만 재면 실패를 못 본다

가장 크게 배운 점입니다. 답이 맞는 것과 지식관리가 작동하는 것은 다릅니다.

이번 측정에서 정확도만 봤다면 88%로 "성공"이었습니다. 도달을 분리해 재고 나서야 절반이 저장소 없이 나온 답이라는 게 보였습니다.

RAG든 위키든, "답이 좋아졌다"를 근거로 시스템의 가치를 주장하면 안 됩니다. 시스템을 껐을 때도 같은 답이 나오는지를 봐야 합니다.

꿀팁 ②: "읽은 파일 목록"을 반드시 함께 받을 것

이 측정 전체가 그 한 줄에 걸려 있었습니다. 답변 텍스트만으로는 도달을 판정할 방법이 없습니다.

그리고 에이전트가 스스로 밝힌 내용이 놀랍도록 정직했습니다. C3-2 조건 A는 자기 출처의 부정확성을 표로 정리해서 내놨습니다.

"답변 하단에 인용한 링크는 본문을 확인하지 않고 검색 결과 목록에 있다는 이유로 출처에 넣은 것입니다. 3번 항목의 근거로 제시했지만 실제로는 검증되지 않았고, Android 13 문서는 애초에 적절한 출처도 아닙니다."

물어보면 말해줍니다. 안 물어보면 모릅니다.

꿀팁 ③: 정답지와 문항은 수명이 다르다

4편에서 "정답지를 저장소에 두지 말라"고 썼는데, 이 글에는 문항을 실었습니다. 모순처럼 보이지만 문항과 정답지는 수명이 다릅니다.

  • 문항은 1회차를 돌린 순간 소진됩니다. 채점자가 답을 알게 되고, 노트도 그에 맞춰 고쳐지니까요. 이미 태워버린 것이라 공개해도 잃을 게 없고, 오히려 공개해야 채점이 공정했는지 남이 판단할 수 있습니다.

  • 정답지(필수 요소)는 다릅니다. 문항을 교체해도 재사용되는 채점 기준이라 계속 감춰야 합니다.

즉 회차가 끝나면 문항은 공개하고 루브릭은 숨긴다가 맞는 운영입니다.

꿀팁 ④: 실패가 나와야 자가 된다

이번 결과는 나쁩니다. 그런데 나쁘게 나온 덕분에 고칠 곳 세 군데가 특정됐습니다.

만약 전부 만점이 나왔다면, 그건 자가 무디다는 뜻이었을 겁니다. "우리 시스템 잘 돌아갑니다"를 확인하는 평가는 만들 이유가 없습니다.

시행착오

채점 기준을 채점 도중에 정해야 했습니다. C2-3 조건 B가 AKM 절차 노트 대신 코드 저장소의 스파이크 README로 같은 내용을 답했을 때, 이걸 도달 3으로 볼지 1로 볼지가 애매했습니다.

결국 "카테고리마다 정당한 근거 위치가 다르다"는 규칙을 세워 해결했지만, 이건 측정 전에 정했어야 하는 것입니다. 4편 질문지에 이 표가 빠져 있었습니다.

조치 — Learn Back

발견

고칠 곳

상태

INDEX.md가 "비었다"고 말해 웹으로 나감

99-system/INDEX.md에 "INDEX.local.md를 함께 읽으라"를 더 강하게 / CLAUDE.md 지시문

진행 예정

어댑터 스니펫에 LOOP·40-memory 규칙 부재

track-me/AGENTS.md 스니펫 보강

진행 예정

C5 오염 1건

usedBy 스코핑, 노트 description 점검

진행 예정

조건별 근거 위치 표 누락

질문지 v3

진행 예정

앞으로의 계획

2회차를 돌릴 계획입니다. 다만 4편에서 적어둔 본질적 한계가 그대로 남아 있습니다 — 이제 저는 답을 알고, 노트도 그에 맞춰 고칠 것이기 때문에 2회차 점수 상승분에는 "저장소가 좋아진 것"과 "이 15문항에 최적화된 것"이 섞입니다.

문항 일부를 교체하되 카테고리 구조와 작성 규칙은 유지하는 방식으로 가려 합니다. 더 나은 방법을 아시는 분이 있다면 의견 부탁드립니다.

도움이 필요한 부분: 도달률 49%가 이 정도 규모의 개인 지식관리에서 "정상"인지 "문제"인지 감이 없습니다. 비슷한 측정을 해보신 분의 수치가 궁금합니다.

도움 받은 글 (옵션)

  • deck6ix님의 AKM(Agent Knowledge Management) — 이 시리즈 전체의 바탕

  • [사례 4편] 지식을 쌓기만 하면 되는 걸까? — 평가 시스템 만들기 (이 글의 1편)

  • [사례 1편] AKM으로 리서치 → 검증 → 학습 루프 돌려보기

  • [사례 2편] 온톨로지 5부작을 AKM에 인테이크하기

  • [사례 3편] 밀린 계획 청산, 그리고 설치 프로젝트로 AKM 전 레이어 돌리기

1개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 아침,
읽고 바로 써먹을 AI 소식만