세미나 · 데이터 저장 방식 검토

성능 시뮬레이션 산출물,
어떻게 저장하고 관리할 것인가

RAG · LLM-wiki · 표/DB를 나란히 놓고 비교한 뒤 우리 경우의 답을 정하기까지의 기록 — 그리고 그 과정에서 얻은, 개발자가 저장 방식을 고르는 일반 기준.

예시 값은 전부 자리표시자

요약 1 / 3 · 1부의 윤곽

구도 — AI에게 무엇을 읽힐 것인가

LLM은 우리 데이터를 모르고, 안다 해도 한 번에 다 읽지 못한다. 그래서 모든 방식은 결국 하나의 질문을 푼다 — 필요한 것만 골라 모델 앞에 놓는 방법.

"그 얘기 어디 있더라?"
찾기 — 질문받는 순간 골라 온다
RAG
"그래서 뭘 알아냈지?"
이해 — 미리 정리해 둔다
LLM-wiki
"몇 건이고 얼마인가?"
계산 — 레코드로 쌓아 계산한다
표 · DB
"일단 다 뒤져 봐"
탐색 — 쌓아 두고 매번 뒤진다
파일 더미
네 방식은 저마다 다른 질문에 답한다. 경쟁 관계가 아니므로, 실제 결정은 "무엇을 고를까"가 아니라 "무엇을 어디에 맡길까"가 된다. RAG와 LLM-wiki의 대비 — 찾기 vs 정리하기 — 가 이 구도의 중심축이다.

요약 2 / 3 · 2부의 윤곽

기준 — 질문이 저장을 정한다

이 구도는 우리 사례를 넘어 일반화된다. 저장 방식 선택은 제품 고르기가 아니라 데이터와 질문의 성격을 적는 일이다.

질문의 모양

미래에 던질 질문 — 집계인가, 단어 찾기인가, 뜻 찾기인가, 누적 결론인가 — 이 저장의 모양을 정한다. 그 반대가 아니다.

비용의 시점

여기서 비용은 돈이 아니라 정리하는 품이다. 이 품을 쓸 때 미리 낼 것인가(스키마 · wiki), 질문할 때마다 나눠 낼 것인가(검색 · RAG).

실패의 가시성

틀렸을 때 티가 나는 구조인가. AI가 끼는 시스템일수록 조용히 틀리는 저장소가 가장 위험하다.
그리고 원칙 하나 — 하나로 다 풀지 않는다. 성격이 다른 데이터는 나눠 담는 것이 정상이다. RAG 하나로, wiki 하나로 전부 담으려는 순간 어느 것도 잘 안 된다.

요약 3 / 3 · 3부의 윤곽

우리 답 — 저장 문제가 아니라 지식 문제였다

이 기준을 우리 데이터에 적용하자 필요한 장치가 계속 줄었고, 문제 자체가 다시 정의됐다.

산출물은 수치라 에 쌓으면 되고, 결론은 LLM-wiki에 모으면 된다. RAG는 빠졌다 — 인사이트에 필요한 것은 몇 조각의 표본이 아니라 전체의 모집단이기 때문이다. 남은 진짜 문제는 해석하는 지식이 사람 머릿속에만 있다는 것이었다.

그래서 답은 LLM-wiki + α스스로 채점하고, 모르는 곳을 드러내고, 실패에서 자라는 wiki다. 수치는 저절로 쌓이고(α①), 지식은 절차로 적히고(α②), 적중률이 낡음을 드러낸다(α③).
LLM-wiki documents + links + index conclusions, not excerpts written by people no vector DB, no index server — files and an LLM, nothing else BASE + Auto-accumulation layer runs → table rows · diagnoses → logs · no one writes them by hand α1 Diagnostic decision tree what to check first — a procedure, not an explanation α2 Self-scoring hit rate per topic → exposes where knowledge is missing α3 what to write next without α3 nobody knows whether the wiki is still right

답의 전체 윤곽 — α 세 장치가 wiki의 약점 셋에 하나씩 대응한다.

일반 wiki와 다른 점은 둘이다 — 쓰는 규율(LLM-wiki)과 장치(α)다. 쓰고 나면 맞는지 아무도 모른다는 wiki의 고질적 약점에, 자동 축적 · 진단 순서도 · 자기 채점이라는 피드백 장치 셋을 붙였다. 진짜 목적은 결과 보관이 아니라 머릿속 판단 기준의 외부화다.

1부

배경과 개념

RAG와 LLM-wiki가 각각 무엇이고, 무엇을 잘하고 못하는지를 먼저 정확히 잡는다. 여기까지는 우리 사례와 무관한 일반 개념이다.

1부 · 여는 관점

이해는 예측이다 — 새 동료와 일을 시작하는 법

기술 이야기 전에, 이 세미나가 서 있는 관점 하나를 먼저 놓는다.

무언가를 이해했다는 것은 결과가 예측 범위에 들어온다는 뜻이다. 기대보다 나빠도 이해가 부족한 것이지만 — 기대보다 좋아도 마찬가지다. 왜 잘됐는지 모르는 성공은 다음번에 재현할 수 없다.

새 동료가 왔다

평판이 아주 좋다 — "정말 똑똑한 사람이 온대." 그 소문만 믿고 아무 일이나 맡기면 어떻게 될까. 어떤 일은 기대 이상으로 해 오고, 어떤 일은 엉뚱하게 해 온다. 그리고 어느 쪽도 미리 알 수 없었다.

협업이 굴러가기 시작하는 것은 그다음부터다 — 무엇을 알고 있는지(도메인 지식), 무엇을 해 왔는지(커리어)를 파악하고, 작은 일을 시켜 결과물을 직접 본 뒤에야 예측이 서고, 맡길 일과 맡기지 않을 일이 갈린다.

LLM도 새 동료다

"아주 똑똑하다"는 소문(벤치마크 점수)만 믿고 아무 일이나 맡기면, 사람 동료 때와 정확히 같은 일이 벌어진다. 그러니 같은 관점으로 파악하면 된다.

사람 동료라면LLM이라면
무엇을 알고 있나 — 전공 · 도메인 지식 무엇을 학습했나 — 공개 지식은 안다. 우리 데이터는 모르고, 앞으로도 저절로 알게 되지 않는다
어떻게 일하나 — 습관 · 처리량 어떻게 읽나 — 한 번에 읽을 수 있는 양이 정해져 있고, 무엇을 건네주느냐가 결과를 좌우한다
작은 일을 시켜 보고 결과물을 본다 여기도 똑같다 — 맡겨 보고, 결과를 확인하고, 예측 범위를 좁혀 간다

이해했다면, 그다음은

사람 동료를 파악한 다음에 우리가 하는 일이 무엇인가 — 일을 잘할 수 있게 자료를 준비해 주는 것이다. 온보딩 문서를 만들고, 흩어진 자료를 정리해 인수인계한다. 준비가 좋을수록 결과가 예측 범위에 빨리 들어온다.

LLM도 같다. 이 동료를 이해했다면 다음 질문은 하나다 — "무엇을 어떻게 정리해서 읽힐 것인가."
이 세미나 전체가 그 질문에 대한 답이다.

1부 · 왜 이 주제인가

저장이 설계를 정한다 — 자료구조의 교훈

알고리즘이 중요하다는 것은 모두가 안다. 그런데 소프트웨어의 모양을 먼저 정하는 쪽은 대개 자료구조 — 무엇을 어떻게 저장하고, 관리하고, 꺼내 오는가 — 쪽이다.

"순서도(코드)를 보여 주고 표(데이터)를 감추면 나는 계속 어리둥절할 것이다. 표를 보여 주면 순서도는 대개 필요 없다." — 프레드 브룩스, 맨먼스 미신

"나쁜 프로그래머는 코드를 걱정하고, 좋은 프로그래머는 자료구조와 그 관계를 걱정한다." — 리누스 토르발스

구조를 정하는 순간, 할 수 있는 일이 정해진다

같은 데이터라도 어디에 담느냐에 따라 싸게 던질 수 있는 질문이 달라진다. 개발자라면 매일 하는 선택이다.

배열에 담으면

순서대로 훑기는 싸다.
"특정 값 찾기"는 전체 스캔이 된다
scan O(n)

해시에 담으면

"이 키의 값"은 즉답.
대신 범위·순서 질문을 잃는다
lookup O(1)

정렬 트리에 담으면

범위 질의가 살아난다.
대신 넣을 때마다 정렬 비용을 낸다
range O(log n)
담는 구조가 가능한 연산과 그 비용을 정한다 — 알고리즘은 그 위에서 고르는 것이다. 저장소 선택은 이 결정의 시스템판이다. 표·검색엔진·wiki 중 무엇에 담느냐가, 나중에 답할 수 있는 질문과 답의 신뢰도를 정한다.

게다가 가장 되돌리기 어려운 결정이다

코드는 리팩터링하면 되지만 데이터는 이주해야 한다. 쌓인 뒤에 구조를 바꾸는 비용은 쌓인 양에 비례해 커진다. 그래서 저장 구조는 처음에 가장 신중해야 할 결정에 속한다.

그리고 읽는 주체가 하나 늘었다

지금까지 데이터의 독자는 코드와 사람이었다. 여기에 LLM이 추가되면서, "어떤 구조로 담을 것인가"라는 오래된 질문을 문서와 지식에 대해 다시 묻게 됐다. 이 세미나가 다루는 것이 그 선택이다.

1부 · 기존 지형

익숙한 저장 방식들 — 어디에 강하고, 어디서 무너지나

새것을 보기 전에 이미 손에 있는 도구부터. 각 방식이 어떤 질문에 최적화된 자료구조인지, 그리고 자리를 잘못 잡으면 시스템이 어떻게 앓는지.

방식이런 질문에 강하다 자리를 잘못 잡으면 — 실제로 벌어지는 일
파일 · 폴더 "그 파일 그대로 줘." 형식 자유, 도구 없이 시작 수만 건에서 "조건에 맞는 것만"을 묻는 순간 — "지난달 평균" 하나 내려고 전부 열어 파싱하는 스크립트부터 짠다. 파일명 규칙이 사실상의 스키마가 되는데, 아무도 강제하지 않아 곧 깨진다
관계형 DB 집계 · 조건 일치 · 조인. 트랜잭션 정합성 자유 텍스트를 넣고 본문 검색을 시키면 — LIKE '%지연%'은 색인을 못 타 전체 스캔이 되고, 데이터가 늘면 그 질의 하나가 서비스 전체를 끌어내린다. 모양이 자주 바뀌는 데이터면 마이그레이션이 꼬리를 문다
키-값 · 캐시 "이 키의 값." 초고속 단건 조회, 세션 · 캐시 관계를 묻기 시작하면 — "값이 X인 키 전부"는 전 키 순회다. "이 사용자의 주문 전부" 같은 역방향 질의가 필요해지는 순간, 애플리케이션 코드가 DB 흉내를 내기 시작한다
문서형 DB 건마다 모양이 조금씩 다른 JSON. 스키마 진화가 잦은 초기 제품 규율 없이 쌓으면 — 같은 필드가 세 가지 이름과 두 가지 타입으로 존재하게 되고, 집계를 하려는 순간 분석보다 데이터 정제 프로젝트가 먼저 생긴다
검색엔진
(역색인)
"이 단어가 들어간 문서 전부." 대량 문서에서 즉답, 랭킹 정합성이 필요한 원장으로 쓰면 — 결과는 근사이고 재색인은 늦는다. 그리고 단어가 다르면 뜻이 같아도 못 찾는다 — "느려짐"으로 물으면 "지연 증가"라 적힌 문서는 조용히 빠진다
wiki ·
지식베이스
"그래서 뭘 알아냈나?" — 정리된 결론, 링크로 이어진 맥락 쓰는 품이 끊기는 순간 낡기 시작하는데 낡아도 겉이 멀쩡하다. 몇 년 뒤 절반이 틀렸는데 어느 절반인지 몰라, 결국 다들 문서 대신 옆자리에 묻게 된다
오른쪽 열이 앞 절 명제의 실증이다. 병목과 장애는 코드가 아니라 구조 선택에서 시작되는 경우가 많다 — 그것도 처음이 아니라, 데이터가 충분히 쌓인 뒤에야 드러난다.
지금까지 이 표의 독자는 코드와 사람이었다. 각 방식의 강점도 약점도 그 두 독자를 전제로 설계된 것이다. 다음 절에서 셋째 독자가 등장한다.

1부 · 전환점

새로운 독자 — LLM이 오면서 달라진 것

코드와 사람만 읽던 데이터를 이제 LLM도 읽는다. 그런데 이 셋째 독자에게는 두 가지 타고난 제약이 있다.

㉮ 모르는 것은 모른다

LLM은 학습 시점까지의 공개 자료로 만들어진다. 어제 돌린 우리 시뮬레이션 결과는 그 안에 없고, 앞으로도 저절로 들어가지 않는다.
지식 컷오프 · knowledge cutoff

㉯ 한 번에 읽을 수 있는 양이 정해져 있다

모델이 한 번에 볼 수 있는 분량에는 상한이 있다. 문서가 수만 건이라면 "전부 읽고 답해 줘"는 애초에 성립하지 않는다.
컨텍스트 윈도 · context window
그래서 남는 질문은 하나다. 필요한 것만 골라서 모델 앞에 놓아 주는 방법은 무엇인가.

갈림길 — 모델을 바꾸나, 읽힐 것을 바꾸나

① 모델 자체를 바꾼다

우리 데이터로 모델을 다시 훈련한다.
비싸고, 느리고, 데이터가 바뀔 때마다 다시 해야 한다.
추가 학습 · fine-tuning
vs

② 모델은 그대로 두고, 읽힐 것을 바꾼다

질문할 때 필요한 자료를 함께 건넨다.
★ RAG와 LLM-wiki가 모두 여기에 속한다.
문맥 주입 · context injection
RAG와 LLM-wiki는 모델을 건드리지 않는다. 둘 다 "질문받는 순간, 모델 앞에 무엇을 놓아 줄 것인가"에 대한 서로 다른 답일 뿐이다. 이 점을 놓치면 뒤의 비교가 전부 헷갈린다. 읽힐 것을 바꾸기로 했으니 — 다음 절에서 이 독자를 앞 절의 저장 방식들 앞에 실제로 앉혀 본다.
더 보기 — "학습이 가능하다면 그쪽이 정답 아닌가?"

질문을 정확히 하면 "무엇을 학습 대상으로 삼을 것인가"다. "성능 분석 지식"은 한 덩어리가 아니라 네 층이고, 층마다 답이 다르다.

구체 예 어디에 사는가이유
A. 사고 방식 가설을 세우고 검증, 변인 통제, 상관≠인과 base 모델 — 이미 학습됨 범용, 거의 불변
B. 도메인 일반론 "버퍼 포화 → 지연 증가", 큐잉 · 캐시 동작 base 모델 — 이미 학습됨 공개 지식, 훈련 데이터에 이미 있음
C. 우리 판단 규칙 "우리 장비에서 지연 이상이면 점유율부터 (12번 중 9번 적중)" 진단 순서도 — 외부 채점되고 고쳐지는 살아 있는 지식
D. 결과 · 기록 run 수치, 진단 로그, 적중률 표 · 로그 — 외부 매일 갱신, 근거 추적

A · B는 이미 학습돼 있다. 갈림길에서 ①(모델을 바꾼다)을 안 고른 것은 학습의 거부가 아니라 — base 모델에 학습할 것이 남아 있지 않아서다. 논쟁 지점은 C 하나다.

C를 학습하지 않고 순서도로 두는 이유 — C는 살아 있는 지식이다. 적중률로 채점되고(9/12 → 10/13), 틀리면 그 갈림길만 고치고, 결론마다 근거 실행 번호가 달린다. 가중치에 넣는 순간 셋 다 불가능해진다 — 채점할 수 없고, 하나만 고칠 수 없고, 근거를 못 댄다. C를 학습하면 α(자기 채점)가 통째로 죽는다. C가 굳어 "상식"이 된 먼 시점에야 학습 후보가 되고, 그때의 학습 데이터도 순서도와 로그에서 나온다 — 외부화가 학습의 전제 조건이다.

그래서 실제 동작은 이렇다 — 이슈(증상) + 판단 규칙(C) + 관련 기록(D)을 컨텍스트로 건네고, 사고와 일반론(A · B)은 모델이 담당한다. 학습이 아무리 좋아져도 D의 갱신 속도 · 근거 추적 · 개별 수정 때문에 외부 저장은 남는다 — 학습은 저장의 대체재가 아니라 저장된 것을 더 잘 읽는 독자를 만드는 일이다.

1부 · 빈자리와 새 후보

빈자리 둘, 새 해법 둘 — RAG와 LLM-wiki는 무엇이 다른가

기존 방식에 LLM을 붙이면 수치·조건 질문은 이미 풀린다 — 스키마를 읽고 SQL을 쓰면 된다. 끝내 안 풀리는 질문이 둘 남고, 해법 둘이 각각 하나씩을 맡는다 — 하나는 새 기술(RAG)이고, 하나는 옛 도구를 LLM에 맞게 고친 변종(LLM-wiki)이다.

빈자리 ① — "이런 현상 있었나?"

기존 — 검색엔진 · DB

단어나 조건이 일치해야 찾는다. "느려짐"으로 물으면 "지연 증가"라 적힌 기록을 놓친다 — 묻는 사람이 저장된 표현을 미리 알아야 한다.

RAG — 찾는 기준을 바꾼다

저장은 그대로 두고(원문), 검색의 축을 단어에서 뜻으로 바꾼다. 표현이 달라도 뜻이 가까우면 찾아진다.

빈자리 ② — "그래서 뭘 알아냈나?"

기존 — wiki가 이미 맡아 온 자리다

판단을 담는 일은 원래 wiki의 몫이었다. 그러나 앞 절에서 봤듯 사람이 쓰고 사람이 읽는 것을 전제로 만들어진 물건이다 — 주제가 섞인 긴 문서, 독자가 알아서 채우는 맥락. LLM에게 그대로는 읽히지 않는다.

LLM-wiki — LLM에 맞게 고친 변종

담는 것(결론과 링크)은 wiki 그대로, 읽는 주체를 LLM으로 상정해 쓰는 규율을 바꾼 것이다. 무엇이 어떻게 달라지는지는 §10 끝에서 따로 본다.
정리하면 계보가 둘이다. 검색엔진 → RAG — 찾는 기준이 단어에서 뜻으로 바뀐 새 기술. wiki → LLM-wiki — 도구는 옛것이되 독자가 사람에서 LLM으로 바뀐 변종. 이 자료에서 둘을 부르는 이름도 그래서 구분한다.

각각이 정확히 무엇이고 어떻게 동작하는지, 그리고 이 교환의 대가로 무엇을 잃는지는 다음 두 절에서 하나씩 본다.

1부 · 후보 1

RAG — 찾아서 건네주는 방식

검색 증강 생성 · Retrieval-Augmented Generation

질문이 들어오면 저장된 문서에서 관련 있어 보이는 조각을 찾아내, 질문과 함께 LLM에게 건네주는 방식.

비유 — 노트를 전부 읽어 본 조수

연구실에 실험 노트가 5,000권 쌓여 있다. 여기에 노트를 전부 읽어 본 조수가 한 명 있다고 하자.

"확산 조건에서 뭔가 이상했던 기록 있었나?" 하고 물으면, 조수는 서고로 가서 관련될 만한 몇 쪽만 복사해서 가져온다. 5,000권을 다 들고 오지 않는다. 그렇다고 요약해 주지도 않는다. 판단은 여전히 묻는 사람의 몫이다.

조수의 특징
말이 정확히 일치하지 않아도 찾는다 "느려짐"이라고 물어도 "지연 증가"라고 적힌 쪽을 가져온다 — 의미 검색
항상 정해진 수만큼 가져온다 맞는 기록이 없어도 5쪽을 가져온다상위 k개 · top-k
판단은 하지 않는다가져온 조각을 해석하는 것은 LLM과 사람의 몫이다

동작 — 준비 한 번, 질문마다 세 단계

PREP — once, and per new document Documents raw files Chunking split into pieces Embedding text → vector Vector store near = similar meaning QUERY — every time Question → same vector space Similarity search nearest N pieces Context injection question + pieces → LLM Answer generated from the pieces 1 2 3 ① context is cut at the split    ② always N pieces, even when none fit    ③ a fluent answer on whatever came back — silent failure

위 줄은 미리 하는 준비, 아래 줄은 질문마다 도는 경로. 주황 번호가 실패가 스며드는 세 지점이다.

"의미 좌표" 하나만 이해하면 된다

임베딩은 글을 숫자 묶음(벡터)으로 바꾸는 장치다. 뜻이 가까운 글은 가까운 숫자가 되도록 바꾼다. 그래서 단어가 달라도 검색된다 — 이것이 RAG가 단어 일치 검색보다 나은 유일한 지점이다.

MEANING SPACE — each phrase becomes a point “latency went up” “feels slow” “throughput dropped” same meaning, different words query: “why is it slow?” “buffer occupancy 0.8” “queue nearly full” “clock config” near = related in meaning · the query pulls in its nearest neighbours, whatever words they use

"느려짐"과 "지연 증가"는 단어가 다르지만 좌표가 가깝다. 질문(주황)은 자기 주변의 점들을 끌어온다.

잘하는 것 / 못하는 것

잘하는 것

  • 표현이 달라도 찾는다 — 정확한 용어를 몰라도 질문할 수 있다
  • 원본을 손대지 않는다 — 있는 그대로 넣으면 된다
  • 새 문서 반영이 빠르다 — 색인만 추가하면 끝
  • 양에 눌리지 않는다 — 꺼내 오는 것은 어차피 N개뿐
  • 어느 문서에서 왔는지 출처가 남는다

못하는 것

  • 셈을 못 한다 — 유사도는 비슷하다는 뜻이지 크다·많다가 아니다
  • 집계를 못 한다 — 평균·분포는 검색이 아니라 계산의 일이다
  • 정확한 조건 조회에 약하다 — "일치"는 유사도의 일이 아니다
  • 맥락이 잘린다 — 조각으로 쪼개서 저장하므로
  • ★ 조용히 틀린다 — 아래 참조
  • 정리는 해 주지 않는다 — 물을 때마다 처음부터
조용한 실패 — 맞는 기록이 없어도 그나마 가장 가까운 조각을 가져온다. 사람이라면 "이건 관련 없네" 하고 걸러 내지만, AI는 받은 조각을 근거 삼아 답을 만든다. 근거가 엉뚱해도 답은 그럴듯하게 나온다 — 그래서 틀린 줄을 모른다.
완화 수단은 있다 — 단어 검색을 섞거나(하이브리드 검색), 꺼낸 조각을 다시 걸러 낸다(재순위). 다만 비용이 늘 뿐, 실패를 없애 주지는 못한다.
더 보기 — 질문 한 번마다 실제로 일어나는 일

검색(기계)이 끝난 뒤에도 일이 끝난 것이 아니다. 조각을 받아 든 LLM과 질문자에게 다섯 가지가 남는다.

  1. 읽기 — N개 조각을 처음부터 읽는다. 지난 질문 때 같은 조각을 읽었어도, 그때의 이해는 어디에도 저장되지 않았다
  2. 거르기 — top-k는 맞는 것이 없어도 개수를 채워 오므로, 어느 조각이 진짜 관련 있는지 판별해야 한다
  3. 맥락 복원 — 청킹으로 잘린 발췌들을 이어 붙여 전체 그림을 재구성한다
  4. 조정 — 조각끼리 시점이나 조건이 어긋나면(옛 실험 vs 새 실험) 어느 쪽이 유효한지 판단한다
  5. 결론 만들기 — 조각은 "이 부분에 있다"는 발췌지 "이렇더라"는 결론이 아니다. "그래서 무엇인가"를 매번 새로 만든다

그리고 이 작업의 결과는 버려진다. 다음 질문이 오면 ①~⑤를 처음부터 반복한다 — §11에서 "읽을 때 낸다"고 부르는 비용의 실체가 바로 이 반복이다.

1부 · 후보 2

wiki — 정리해 두는 방식

지식베이스 · knowledge base

알아낸 것을 주제별 문서로 정리해 두고, 문서끼리 링크로 이어 놓은 저장소.

비유 — 선배가 써 둔 정리 노트

같은 연구실이다. 이번에는 조수 대신 선배가 써 둔 정리 노트가 있다. 노트에는 실험 원본이 아니라 이렇게 적혀 있다.

"확산 조건에서는 B가 임계값을 넘으면 지연이 급증한다.
실험 #142, #187, #203에서 반복 확인. 원인은 → [버퍼 포화] 항목 참조."

이것은 발췌가 아니라 결론이다. 그리고 링크가 달려 있다. 누군가 이미 5,000권을 읽고 판단까지 끝낸 결과를 적어 둔 것이다.

구조 — 항목 · 링크 · 인덱스

        [ 목차 / 인덱스 ]
               │
      ┌────────┼────────┐
      ▼        ▼        ▼
   [항목 A]  [항목 B]  [항목 C]
      │         ↕         │
      └────► 서로 링크 ◄──┘
장치역할
항목 page / node 한 항목 = 한 주제. 결론이 적히는 자리
링크 link / backlink 관련 항목을 이어 준다. AI가 타고 이동하는 길
인덱스 index 위에서 아래로 좁혀 들어가는 진입점
RAG가 "질문 → 조각"이라면, wiki는 "입구 → 항목 → 링크 → 항목"이다.
찾아내는 것이 아니라 걸어 들어간다.

잘하는 것 / 못하는 것

잘하는 것

  • 결론이 남는다 — 실행 500번의 교훈이 한 페이지로
  • 매번 다시 읽을 필요가 없다 — 판단이 이미 문서 안에 있다
  • 관계를 표현한다 — 검색으로는 안 되는 일
  • 사람도 그대로 읽을 수 있다
  • 없는 것이 보인다 — 빈 항목이 눈에 띈다
  • 어떤 경로로 결론에 닿았는지 추적된다

못하는 것 — 앞의 셋이 α의 이유가 된다

① 누군가 써야 한다 자동 생성물이 저절로 wiki가 되지는 않는다
② 낡는다 내용이 틀려져도 겉으로는 드러나지 않는다
③ 안 쓴 것은 못 찾는다 정리하지 않은 방향의 질문에는 무력하다
개별 수치 조회에 약하다원본 수치는 wiki가 답할 일이 아니다
주관이 들어간다틀린 판단도 문서가 되면 그대로 유통된다
비용의 성격이 RAG와 다르다. RAG의 비용은 처음에 든다(색인 구축). wiki의 비용은 계속 든다(쓰고 고치는 품). 이 차이가 다음 절의 핵심이다.

wiki에서 LLM-wiki로 — 무엇이 달라지나

여기까지는 수십 년 된 wiki 일반의 이야기다. §8에서 말한 변종 — LLM-wiki — 는 같은 wiki 엔진 위에서 쓰는 규율을 바꾼 것이다. 독자가 사람에서 LLM으로 바뀌면 다음이 달라진다.

wiki (사람용)LLM-wiki
독자사람 LLM — 사람도 그대로 읽을 수 있다
항목의 크기자유 — 주제가 섞인 긴 문서도 흔하다 한 항목 = 한 주제. 필요한 항목만 골라 컨텍스트 윈도에 올리는 단위가 되기 때문이다
링크있으면 편리한 정도 필수. AI가 타고 이동하는 길이라, 링크가 없는 지식은 사실상 못 찾는 지식이다
메타데이터선택 기계가 읽는 정보표(frontmatter) — 작성일 · 조건 · 태그
출처관행에 맡긴다 결론마다 근거를 단다. 측정 · 사람 판단 · AI 추론을 구분해서 — 안 그러면 AI가 자기 추측을 사실로 다시 읽는다
문체독자가 맥락을 알아서 채운다 항목 하나만 읽어도 뜻이 서야 한다 — 암묵적 맥락 금지, 용어는 한 가지로
도구를 바꾸는 것이 아니라 쓰는 규율을 바꾸는 것이다. 그리고 이 표까지는 "잘 쓰는 법"일 뿐, wiki의 고질병 — 낡아도 티가 안 남 — 은 그대로 남아 있다. 그 병에 대한 처방(α)이 3부의 주제다.

1부 · 핵심

핵심 차이 — 찾기 vs 정리하기

RAG는 "찾아 주는" 기술이고, LLM-wiki는 "정리해 두는" 방식이다.
하나는 검색 문제를 풀고, 다른 하나는 이해 문제를 푼다.
푸는 문제가 다르므로 — 경쟁 관계가 아니다.
RAGLLM-wiki
다루는 것원본 뭉치 그대로정리된 지식
일하는 시점질문받는 순간미리 — 쓰는 시점
누가 정리하나아무도. 기계는 찾기만 한다사람 또는 AI가 쓴다
결과물의 성격발췌 — "이 부분에 있다"결론 — "이렇더라"
초기 / 지속 비용중간 / 낮음낮음 / 높음
답이 없을 때그럴듯한 발췌를 준다항목이 비어 있는 것이 보인다
실패가 보이나✗ 안 보인다✓ 보인다
RAG — pay up front indexing maintenance stays low time → effort LLM-wiki — pay as you go writing & fixing, forever grows with content time → the question is not “which is cheaper” but “when do you want to pay”

비용 총량이 아니라 내는 시점이 다르다. 무엇을 고르든 이 곡선 중 하나를 사는 것이다.

여기서 "비용"은 돈이나 토큰이 아니라 품이다 — 데이터를 "질문하면 답이 나오는 형태"로 만드는 사람과 시스템의 일. 둘로 나누면 곡선이 정확해진다. 장치의 품(색인 구축 · 저장소 준비)은 대부분 자동이라 싸다. 비싼 것은 정리의 품 — 뜻을 읽고 결론을 만드는, 자동화되지 않는 일이다. LLM-wiki는 이것을 쓸 때 사람이 미리 낸다. RAG 자체는 찾기만 한다 — 내지 않은 정리의 품은 사라지지 않고 질문 시점으로 밀린다. 가져온 조각을 읽고, 관련 없는 것을 걸러 내고, 잘린 맥락을 이어 붙여 결론을 만드는 일을 LLM과 질문자가 매번 하고, 그 결과는 저장되지 않으므로 다음 질문에서 또 한다(그 목록은 §9의 더 보기). 2부에서 "읽을 때 낸다"고 부르는 것이 이 반복이다.
더 보기 — 조수 비유로 다시 보면

조수는 복사만 해 온다. 복사본 몇 쪽을 읽고 "그래서 확산 조건에서 무엇이 문제였는지" 알아내는 것은 매번 묻는 사람의 몫이다. 알아낸 것을 적어 두지 않는 한, 다음 질문자도 같은 쪽을 받아 같은 일을 반복한다.

알아낸 것을 적어 두기 시작하는 순간 — 그것이 wiki고, LLM이 읽도록 다듬으면 LLM-wiki다. 두 방식의 관계는 대립이 아니라, 반복되는 읽기 노동을 한 번의 쓰기로 굳히는 이행이다.

결국, 답하는 질문이 다르다

"그 얘기 어디 있더라?"
찾기
RAG
"그래서 뭘 알아냈지?"
이해
LLM-wiki
"몇 건이고 얼마인가?"
계산
표 · DB
"일단 다 뒤져 봐"
탐색
기준선

연구실 서고로 다시 보면

방식서고에서는
문서를 그냥 쌓아 둠실험 노트가 서랍마다 쌓여 있다
표 · DB실험 대장 — 날짜·조건·결과 수치가 표로 적혀 있다
RAG노트를 다 읽어 본 조수 — 물으면 해당 쪽을 복사해 온다
LLM-wiki선배의 정리 노트 — "이 조건에선 이렇더라"가 문장으로 남아 있다
서로 다른 질문에 답하는 장치들이다. 하나로 전부 해결하려 들면 어느 것도 잘 안 된다. 대장도, 조수도, 정리 노트도 다 있는 연구실이 가장 좋다는 것까지 이 비유가 보여 준다.

1부 · 정리

흔한 오해 네 가지

RAG와 wiki가 화제에 오르는 자리에서 자주 듣게 되는 말들이다.

① "우리 데이터를 AI에게 학습시키는 거군요"
아니다. RAG도 LLM-wiki도 모델을 바꾸지 않는다. 질문할 때 자료를 함께 건네줄 뿐이다. 모델을 실제로 바꾸는 것은 추가 학습(fine-tuning)이고, 그것은 완전히 다른 길이다.
② "RAG를 붙이면 다 해결되지 않나요"
RAG는 검색이다. 개수 세기·평균·정렬·조건 일치는 검색으로 풀리지 않는다. 수치를 다루는 질문이 대부분이라면 RAG는 오히려 표·DB만 못하다.
③ "wiki는 사람이 보는 문서니까 AI와는 무관하죠"
읽는 주체가 LLM이 되는 순간 쓰는 방식이 달라진다. 한 항목 = 한 주제, 명시적인 링크, 일관된 구조, 기계가 읽는 정보표(frontmatter)가 중요해진다 — §10 끝에서 본 LLM-wiki가 그 답이다.
④ "그래서 둘 중에 뭘 골라야 하나요"
배타적인 선택이 아니다. 실제로 고르는 것은 방식이 아니라 비용을 어디에 쓸 것인가다 — 색인에 한 번 낼 것인가, 정리에 계속 낼 것인가. 이 관점은 다음 부에서 일반 기준으로 넓힌다.
더 보기 — "임베딩도 벡터를 만드는데, RAG는 작은 학습 아닌가?"

①을 한 겹 더 파면 나오는 질문이고, 직관 자체는 맞다 — 임베딩 모델도 신경망이고 LLM과 같은 기술 계열이며, 둘 다 "글 → 벡터"를 한다. 결정적 차이는 텍스트가 어디로 가는가다.

  1. 학습 — 텍스트가 모델의 가중치 속으로 녹아들어 사라진다. 어느 문장이 어디 저장됐는지 지목할 수 없으므로 출처를 못 대고, 한 문서만 지우거나 고칠 수 없고, 갱신은 재학습이다. 여기서 벡터(가중치)는 지식 그 자체
  2. RAG 색인 — 텍스트는 밖에 원문 그대로 남는다. 임베딩은 문서를 바꾸지 않고 각 조각에 "의미 주소"를 붙일 뿐이며, 검색은 그 주소로 원문을 찾아오는 것이다. 여기서 벡터(임베딩)는 지식이 아니라 색인 키

그래서 RAG는 "작게 학습한 것"이 아니라 아무것도 배우지 않는다. 학습이 사서의 뇌를 훈련시키는 것이라면, 색인은 서가에 카드 목록을 만드는 것이다 — 카드 목록을 아무리 만들어도 사서가 똑똑해지지는 않는다.

"합쳐서 답을 만든다"는 절반만 맞다. 최종 답은 LLM이 파라미터 지식과 건네받은 조각을 함께 보고 생성하지만, 결합은 비대칭이다 — 조각은 프롬프트에 텍스트로 끼워 넣어질 뿐이고(문맥 주입), 대화가 끝나면 모델은 그 조각을 본 적 없는 상태로 돌아간다.

2부

개발자의 선택 기준

1부의 네 방식을 개발자가 일상적으로 만나는 저장소 전체로 넓힌다. 무언가를 만들 때 "데이터를 어디에 담을까"를 정하는 일반 기준이다.

2부 · 지형도

저장 방식의 지형도

RAG와 wiki는 갑자기 나타난 별종이 아니다. 개발자가 늘 쓰던 저장소 계보의 연장선에 있다.

방식데이터의 단위 잘 답하는 질문대표 예
파일 · 오브젝트 저장파일 통째 "그 파일 그대로 줘"파일시스템, S3 계열
관계형 DB스키마가 정해진 레코드 집계 · 조건 일치 · 조인 — "조건별 평균은?"SQLite, PostgreSQL
키-값 저장소키 하나에 값 하나 "이 키의 값" — 아주 빠른 단건 조회Redis 계열
문서형 DB스키마가 느슨한 JSON 레코드마다 형태가 조금씩 다른 데이터MongoDB 계열
시계열 DB시간축 위의 수치 구간 집계 · 추세 — "지난주 p99는?"모니터링 지표 저장소
검색엔진 (역색인)문서 속의 단어들 "이 단어가 들어간 문서 전부"Elasticsearch 계열
벡터 저장소의미 좌표 (임베딩) "뜻이 비슷한 조각" — RAG의 기반벡터 DB, pgvector
그래프 DB노드와 간선 관계를 따라가는 질문 — "A에 의존하는 것 전부"의존 관계 추적
wiki · 지식베이스정리된 결론 문서 "그래서 뭘 알아냈나"사내 wiki, Obsidian 계열
organize when READING store as-is, search on demand organize when WRITING shape it first, read cheaply forever values & records ▲ text & meaning ▼ Log files grep when needed Relational DB schema up front Time-series DB metrics by time Key-value fast exact lookup File dump docs in folders Search engine find by words Vector store / RAG find by meaning wiki / knowledge base distilled conclusions Graph DB explicit relations left: cheap to add, cost paid at every question · right: costly to add, cheap and precise to read

가로축 — 정리하는 품을 읽을 때 내는가, 쓸 때 내는가. 세로축 — 다루는 단위가 값·레코드인가, 글·의미인가. RAG(좌하)와 wiki(우하)는 같은 "의미" 줄의 양 끝이다.

이 지도에서 1부의 결론을 다시 읽을 수 있다. RAG와 wiki의 관계는 "신기술 대 구기술"이 아니라, 정리 비용을 언제 내느냐는 오래된 축 위에서 "의미"라는 새 줄에 놓인 두 선택지다.

2부 · 기준

고르기 전에 던질 다섯 질문

제품 이름부터 고르면 실패한다. 데이터와 질문의 성격을 먼저 적어 보면 답이 거의 정해진다.

Q1 · 데이터의 단위가 무엇인가
레코드(같은 필드가 반복)인가, 문서(자유로운 글)인가, 관계(무엇이 무엇과 이어지는가)인가, 결론(판단이 담긴 지식)인가. 단위를 잘못 잡으면 그다음 선택이 전부 어긋난다 — 수치 20개짜리 실행 결과를 "문서"로 다루는 순간 이미 틀린 길이다.
Q2 · 어떤 질문을 던지게 되는가
집계·정확 일치("조건별 평균은?") → 표·DB ·  단어로 찾기("이 에러 문자열 어디 나왔지?") → 검색엔진 ·  뜻으로 찾기("비슷한 현상 있었나?") → 벡터 검색 ·  누적된 결론("그래서 뭘 알아냈나?") → wiki. 저장 방식은 결국 미래에 던질 질문의 모양으로 정해진다.
Q3 · 읽는 주체가 누구인가
코드가 읽으면 스키마와 타입이 중요하고, 사람이 읽으면 서사와 시각화가 중요하다. AI가 읽으면 그 중간 — 구조는 느슨해도 되지만 맥락이 잘리지 않아야 하고, 한 덩어리가 컨텍스트 윈도에 들어가야 한다. AI 독자는 새로 생긴 제약 조건이다.
Q4 · 정리하는 품을 언제 낼 것인가
쓸 때 내면(스키마 설계, wiki 정리) 읽기가 싸고 정확해진다. 읽을 때 내면(검색, RAG) 쌓기는 싸지만, 질문마다 검색이 돌고 가져온 것을 읽고 맞는지 판단하는 품이 든다. 자주 읽을 데이터는 쓸 때, 어쩌다 읽을 데이터는 읽을 때 내는 것이 이득이다 — 지형도의 가로축이 이 질문이고, DB 쪽 용어로는 schema-on-write vs schema-on-read의 일반화다.
Q5 · 틀렸을 때 티가 나는가
DB는 없는 레코드를 지어내지 않지만, RAG는 맞는 조각이 없어도 무언가를 가져오고, wiki는 낡아도 겉이 멀쩡하다. AI가 끼는 시스템일수록 실패가 보이는 구조인지가 정확도보다 먼저다. 조용히 틀리는 저장소는 신뢰를 한 번에 잃는다.
다섯 가운데 실무에서 가장 자주 놓치는 것이 Q2다. "데이터가 있으니 일단 쌓자"로 시작하면, 나중에 던지고 싶은 질문에 답할 수 없는 모양으로 쌓인다. 질문이 저장을 정한다 — 그 반대가 아니다.

2부 · 순서도

선택 순서도

다섯 질문을 실제 결정 순서로 늘어놓으면 이렇게 된다. 위에서부터 처음 "예"가 나오는 곳이 출발점이다.

Same fields repeat? aggregate / filter / join? “average by condition”, “top 10 slowest” → Table · Relational DB start with one file / SQLite; scale later Free text, found by exact words? error strings, IDs, code symbols → Search engine (inverted index) grep is the honest first version Free text, wording varies, meaning matters? “was anything like this reported?” → Vector search / RAG accept top-k noise; add keyword hybrid Accumulating judgments & relations? “what did we learn”, cross-run conclusions → wiki / knowledge base budget for upkeep — or it rots (→ α) None of the above, or not sure yet → plain files in folders the honest default — migrate when a real question shows up, not before yes yes yes yes no no no no

각 질문에 "예"면 오른쪽 답으로, "아니오"면 아래로. 마지막 줄 — 확신이 없으면 일단 파일이 정직한 기본값이다.

순서에도 뜻이 있다. 위쪽 답일수록 도구가 성숙하고 실패가 잘 보인다. 아래로 갈수록(벡터 검색, wiki) 운영 규율이 필요해진다. 같은 문제가 위쪽 방식으로 풀린다면 굳이 아래로 내려가지 않는다.

2부 · 원칙

원칙 — 하나로 다 풀지 않는다

저장소는 하나여야 한다는 규칙은 없다.
데이터의 성격이 다르면 담는 곳도 다른 것이 정상이다.

익숙한 예로, 평범한 웹 서비스 하나도 이미 그렇게 만들어져 있다.

데이터담는 곳이유
주문 · 회원관계형 DB정확한 집계와 트랜잭션
세션 · 캐시키-값 저장소빠른 단건 조회, 날아가도 됨
상품 검색검색엔진단어·오타·랭킹
이미지 · 첨부오브젝트 저장통째로 넣고 통째로 꺼냄
운영 노하우사내 wiki판단과 맥락이 담김

누구도 이것을 이상하게 여기지 않는다. 그런데 AI가 읽을 데이터가 되면 갑자기 "RAG 하나로", "wiki 하나로" 전부 담으려는 유혹이 생긴다. 같은 실수를 이름만 바꿔 반복하는 것이다.

이번 검토도 이 원칙을 그대로 밟았다. 수치는 로, 해석은 실행에 붙은 문서로, 결론은 LLM-wiki로, 판단 절차는 순서도로 — 3부가 그 실제 사례다.

3부

우리 경우 — 성능 시뮬레이션 산출물

2부의 기준을 실제로 적용한 기록이다. 데이터의 성격을 적고, 질문의 모양을 적고, 그 결과로 RAG가 빠지고 LLM-wiki + α가 남기까지.

3부 · 요구사항

어떤 데이터가 나오고, 무엇을 얻으려 하나

Q1(데이터의 단위)부터 적어 본다. 시뮬레이션 한 번이 남기는 것은 셋이다.

설정
파라미터 값들. 전체 개수는 아주 많지만 실험에서 실제로 바뀌는 것은 10개 이내
고정 + 변동
결과
성능 수치. 주요 항목 10개 이내. 항목이 나중에 늘어날 수 있다
스키마 고정
해석 (선택)
사용자 리뷰 의견 · AI 분석. 모든 실행에 붙지는 않는다
사후 추가
핵심 성질따라오는 결론
실행 1건 = 수치 약 20개 문서 한 편이 아니라 표의 한 줄에 가깝다
결과 항목은 고정, 조건만 바꿔 가며 비교비교가 일어나는 곳은 표다
해석은 나중에 덧붙는다한 번 쓰고 끝나는 구조로는 안 된다

그다음 Q2 — 어떤 질문을 던지게 되나

질문 종류누가 주로맞는 방식
계산 (집계)"가장 느린 10건", "조건별 평균"표 · DB
조회 (정확 일치)"이 파라미터 조합의 결과"표 · DB
탐색 (의미 검색)"이런 현상 기록된 적 있나"사람RAG
이해 (누적 결론)"이 조건에서 왜 이렇게 되나" AIwiki
얻으려는 것은 개별 실험의 수치가 아니라, 여러 실행을 가로지르는 인사이트다. 그리고 AI는 조회 도구가 아니라 함께 분석하는 상대로 쓰려 한다.

3부 · 검토 결과

RAG는 왜 빠졌나

세 가지 이유가 겹쳤고, 마지막 것이 결정적이었다.

① 데이터의 성격
산출물이 설정 + 결과 수치다. 표에 가까워서 의미 검색의 대상이 아니다
Q1
② 필요한 연산
"관련 있는 과거 실행 찾기"는 실제로는 수치 비교다. 글을 의미 좌표로 바꾸는 단계가 애초에 필요 없다
Q2
③ 목표의 성격
얻으려는 것은 인사이트인데, RAG가 주는 것은 표본이고 비교와 추론에 필요한 것은 모집단이다
결정적

압축하는 방식이 다르다

RAG — 골라서 압축

관련된 N개 조각을 고른다
→ 손에 남는 것은 표본

표 · wiki — 증류해서 압축

전체를 요약한다
→ 손에 남는 것은 모집단의 상(像)
경향에서 벗어난 지점을 알아보려면 전체가 보여야 한다. "가장 비슷한 다섯 건"만 보여 주는 RAG로는 그것이 안 된다.

3부 · 되짚기

진짜 문제는 저장이 아니었다

처음의 질문

"수만 건을 어떻게
저장하고 검색할까"

검토가 진행될수록

필요한 장치가 계속 줄었다.
벡터 검색이 빠지고, 사전 집계 계층이 빠졌다

이유

저장·검색이 문제가
아니었기 때문이다
실제 문제는 판단 지식이 사람 머릿속에만 있다는 것이었다.
결과가 수만 건 쌓여도, 그것을 해석하는 지식이 밖으로 나와 있지 않으면 조직이 아는 것은 늘지 않는다.
도구 검토가 문제 정의를 바꾼 순간이다. "무엇으로 저장하나"에서 "암묵지를 어떻게 꺼내서 쌓나"로. 이후의 설계는 전부 이 바뀐 질문에 대한 답이다.

3부 · 답 (1)

무엇을 어디에 — 네 개의 층

2부의 원칙("성격이 다르면 담는 곳도 다르다")을 그대로 적용하면 넷으로 갈라진다.

구체 · 대량 · 저절로 쌓임추상 · 소량 · 사람이 씀
실행 레코드
설정 + 결과 수치 → 표 한 줄. 문서로 만들지 않는다
수만 건
해석
리뷰 · AI 분석 → 실행에 귀속된 문서. 필요한 건에만 선별 작성
수백 건
인사이트
여러 실행을 가로지르는 결론 → 별도 층 + 근거 실행 번호
수십~수백
진단 순서도
"어디부터 보나 / 왜 그런가" → 트리 구조 + 지식 문서
트리 1개
Run record one row in a table changed params + results 10,000s AUTO Interpretation doc attached to one run 100s Insight cross-run conclusion 10s Diagnostic tree 1 trace back to the runs that support it concrete · bulk · accumulates itself abstract · few · written by people volume falls, value rises →

오른쪽으로 갈수록 양은 줄고 가치는 오른다. 주황 점선 — 모든 결론은 자기 근거 실행으로 되짚어 갈 수 있다.

왜 수치를 문서로 만들지 않나

실행 1건이 수치 20개다. 문서로 만들면 제목·머리말·표 골격이 알맹이보다 커진다. 수만 개 파일이 생기는데 담긴 내용은 각각 한 줄 분량이고, 비교하려면 어차피 표로 다시 모아야 한다.

왜 결론을 따로 모으나

"실행 #142, #187, #203에서 반복 확인"이라는 결론은 어느 한 실행에 속하지 않는다. 개별 문서에 흩어 놓으면 세 군데에 중복되거나 어디에도 남지 않는다. 이것이 LLM-wiki 층이 필요한 이유다.
★ 출처를 반드시 구분한다 — measured(측정) · human(사람의 판단) · llm(AI 추론). 구분하지 않으면 AI가 자신의 과거 추측을 사실로 다시 읽어 강화한다. 근거는 늘지 않았는데 확신만 커지는, 가장 위험한 상태다.

3부 · 답 (2)

지식을 절차로 적는다 — 진단 순서도

LLM-wiki 층에 담는 지식의 형태가 이 설계의 중심이다. 설명이 아니라 절차로 적는다.

설명형

"버퍼가 포화되면 지연이 늘어난다"
→ 맞는 말이다. 그러나 지금 무엇을 확인해야 하는지는 알려 주지 않는다

절차형

"지연이 이상하면 → 먼저 버퍼 점유율을 본다 → 임계 근처면 버퍼 포화 의심 (12번 중 9번 적중) → 아니면 다음으로 클럭을 본다"
★ 받은 즉시 쓸 수 있다
   지연이 기대보다 낮다
   ├─ 1. 버퍼 점유율을 본다
   │      임계 근처?  ── 예 ──▶  버퍼 포화 의심   (12번 중 9번 적중)
   │                 └─ 아니오 ─▶  2로
   ├─ 2. 클럭을 본다
   │      기준 이하?  ── 예 ──▶  ...
   │                 └─ 아니오 ─▶  3으로
   └─ 3. 아는 것으로는 안 잡힘   ← ★ 여기가 중요하다
Symptom observed Check 1 — occupancy near threshold? → suspect saturation hit 9 of 12 — ranked first because of it Check 2 — clock below baseline? → suspect the next cause hit 3 of 11 Not covered by what we know ★ the pile here is the map of what we do not know yes yes no no every branch carries what is checked, what it implies, and how often it has been right

갈림길마다 "무엇을 보는지 · 무엇을 의심하는지 · 지금까지 몇 번 맞았는지"가 함께 붙는다.

절차형이 숙련자 지식의 실제 모양이다. 베테랑의 머릿속에 있는 것도 설명의 목록이 아니라 "이럴 땐 여기부터"라는 순서다. 각 갈림길에는 "왜 그 조건을 보는가"를 설명하는 지식 문서가 링크로 딸린다 — 절차와 이유가 짝을 이룬다.

3부 · 핵심

모르는 곳이 드러난다 — 그리고 실패에서 자란다

RAG였다면

답이 없어도 그럴듯한 발췌를 준다
모른다는 사실 자체를 모른다

순서도는

답이 없으면 "안 잡힘"으로 떨어진다
★ 모른다는 사실이 기록으로 드러난다
안 잡힌 사례가 쌓이는 자리가 곧 우리가 모르는 영역의 지도다.
보이는 결손은 채우면 된다. 모르는 줄도 모르는 것과는 완전히 다른 처지다.
자기 채점(α③)이 여기서 나온다. 진단이 내놓은 가설은 검증 실험으로 맞았는지 판정되고, 그 결과가 갈림길마다 적중률(제시 횟수 대비 확인 횟수)로 쌓인다 — "버퍼 포화 의심, 12번 중 9번 적중"처럼. 별도의 감사 절차가 아니라 일상적인 진단·검증의 부산물이다. 이 숫자가 하는 일이 셋이다 — 가설 후보의 순위를 정하고, 떨어지기 시작하면 낡았다는 신호가 되고, 안 잡힌 사례와 합쳐져 지식의 성적표가 된다. "쓰고 나면 맞는지 아무도 모른다"던 wiki가 이렇게 스스로 채점된다.

어떻게 자라는가

New result arrives Run the tree follow the branches Caught verify → record the hit Confidence of that branch rises frequent ones move to the front Not caught investigate separately Cause found → new branch added ★ this is where the tree grows next time this symptom is caught — the misses are the raw material caught missed

위 경로(잡힘)는 신뢰도를 올리고, 아래 경로(안 잡힘)는 새 갈림길이 되어 돌아온다. 아래쪽이 성장 경로다.

안 잡힌 사례를 버리면 순서도는 처음 만든 그대로 멈춘다. 실패가 다음 지식의 원료라는 것 — 이 구조 전체에서 가장 중요한 한 줄이다.

3부 · 지금 할 일

지식은 일하면서 꺼낸다

"아는 것을 다 적어 주세요"는 통하지 않는다. 사람은 자기 지식을 그런 식으로 꺼내지 못한다.

사람이 판단한다
"이건 버퍼 쪽 같은데"
1
AI가 되묻는다
"왜 그렇게 보셨습니까?"
2
사람이 답한다
"그 값이 임계 근처면 보통 거기부터 봅니다"
3
그 답이 갈림길이 된다
순서도에 노드 추가 — 방금 암묵지 하나가 구조가 됐다
4
적어야 할 것은 결론이 아니라 판단의 이유다. 결론만 적으면 다음에 재사용할 수 없다.

그래서 AI의 역할이 시기마다 다르다

시기지식의 상태 AI가 하는 일기대치
초기 ← 지금대부분 사람 머릿속 물어보는 사람분석은 못 한다. 그것이 정상이다
중기순서도 골격이 생김순서도에 태워 보고 빈 곳을 짚는 사람일부 자동 판정
후기지식 문서가 쌓임분석하는 사람후보 대부분을 자동 제시
지금은 초기다. AI에게 분석을 기대할 때가 아니라 사람의 지식을 꺼내게 할 때다. 이 단계 구분을 모르고 시작하면 "왜 분석을 못 하지"에서 멈춘다.

3부 · 사례 (1)

무엇을 만드는가 — 시뮬레이션 작업 저장소

결론(LLM-wiki + α)을 우리 업무에 그대로 옮긴 도구다. 화면은 §26에서 본다.

결과가 쌓이는 저장소에 AI를 붙여, 등록 → 진단 → 지식화가 일하는 흐름 안에서 저절로 일어나게 한다. "LLM-wiki를 따로 쓰는 시간"은 존재하지 않는다.
축적층
실행 결과는 표 한 줄, 진단 기록은 로그 한 줄. 아무도 손으로 쓰지 않는다
α①
지식층 = LLM-wiki
인사이트 문서 · 진단 순서도 · 지식 문서 — 링크로 잇고, 결론마다 근거 실행 번호가 붙는다
본체 + α②
AI (agent)
두 층을 오가는 주체 — 파일을 직접 읽고, 스크립트로 계산하고, 순서도를 타고, 문서 초안을 쓴다
검색 장치 없음

LLM-wiki와 데이터가 만나는 두 방향

① 축적 — 아래에서 위로

실행 → (이상하면) 해석 → (반복 확인되면) 인사이트 → (일반화되면) 순서도의 새 분기. LLM-wiki의 모든 문장은 아래층 데이터에서 올라온 것이다.

② 적용 — 위에서 아래로

새 실행 → AI가 순서도를 타고 내려가며 → 노드가 지목한 수치만 확인 → 필요하면 근거 실행과 해석을 연다. LLM-wiki가 "무엇을 볼지"를 정해 준다.
①로 자라고 ②로 쓰인다. 같은 자료를 두 방향이 반대로 통과한다. 결론이 자기 근거 실행 번호를 알고 있으므로, 새 결과가 기존 결론과 어긋나면 역참조에서 자동으로 걸린다.

3부 · 사례 (2)

어떻게 돌아가나 — 결과 하나의 일생

사람이 등장하는 곳은 두 군데뿐이다. 이상 건의 판단, 그리고 검증 방향의 결정.

1 · 등록
시뮬레이션이 끝나면 표에 한 줄 추가 + 유사 실행 자동 첨부 + 기존 결론 영향 검사 + 이상 판정. 정상이면 사람을 부르지 않는다
자동
2 · 진단
AI가 순서도를 탄다 → "버퍼 포화 유력 — 12건 중 9번 적중" + 근거 실행 · 지식 문서 링크. 못 잡으면 미분류로 남기고, 관련 축만 비교해 원인 후보를 순위로 제시
AI
3 · 검증
사람이 가설을 고르면 → 가장 가까운 과거 실행에서 그 축 하나만 바꿔 재현 → 재현되면 적중 기록, 아니면 기각
사람 + 자동
4 · 지식 갱신
적중이면 그 갈림길의 신뢰도 상승. 미분류에서 원인을 찾으면 순서도에 새 분기 — LLM-wiki가 자라는 순간이다
AI 초안
이 도구가 주는 것은 정답이 아니라 순위가 매겨진 가설 목록이다. 역할은 다음에 어떤 실험부터 돌릴지 정해 주는 것 — 그리고 그 과정의 부산물로 LLM-wiki가 쓰인다.
진단하는 중에 지식이 나온다. 사람이 "이건 버퍼 쪽 같다"고 하면 AI가 "왜 그렇게 보셨는지"를 되물어 조건·분기·결론으로 구조화한다 — §23의 문답이 이 흐름의 2와 4 사이에서 일어난다.

3부 · 사례 (3)

화면 세 장

만들고 있는 도구를 세 화면으로 본다 — 쌓이는 곳, 진단의 기록, 스스로 매기는 점수.

① 쌓이는 것 — 실행 표

실행 표 화면 — 실행별로 변한 파라미터, 결과 수치, 상태가 표로 나열됨
축적층이다. 한 실행 = 한 줄, 변한 파라미터만 표시된다. 나머지 설정은 스냅샷으로 접혀 있고, 실행을 클릭하면 그 실행에 붙은 해석 · 진단 · 인사이트가 역참조로 열린다 — 수치에서 결론까지 클릭 몇 번이다. 집계·비교는 이 표 위에서 AI가 스크립트로 수행한다.

② AI가 순서도를 탄 기록 — 진단 재생

진단 재생 화면 — 트리 위에 주황 경로, 오른쪽에 갈림길별 판단 근거와 결론
진단 한 건을 되돌려 보는 화면. 주황 경로가 AI가 지나간 길이다. 갈림길마다 무엇을 읽었고 값이 얼마였는지가 남는다 — "param-C / buffer-size = 0.8 → true". 결론에는 검증 실행, 적중률(9/12), 사람이 남긴 판단 이유까지 붙는다. 이 기록이 다음 LLM-wiki 갱신의 근거가 된다.

③ 스스로 매기는 점수 — 진단 현황

홈 화면 — 지표별 진단 트리 현황과 최근 진단 목록, confirmed·refuted·unclassified 상태 배지
confirmed · refuted · 미분류가 진단마다 그대로 드러난다. 틀린 진단(refuted)은 순서도를 고치라는 신호이고, 미분류가 쌓이는 곳이 지식 공백의 지도다 — "낡아도 티가 안 난다"던 wiki의 약점이 여기서 채점으로 바뀐다.

3부 · 경계

이 구조가 못 하는 것

할 수 있는 것만 말하는 설계는 신뢰할 수 없다. 경계를 분명히 긋는다.

못 하는 것이유대신 하는 것
원인을 확정한다상관은 계산되지만 인과는 아니다 가설 목록을 순위와 함께 제시
모르는 원인을 찾아낸다순서도에 없는 것은 잡을 수 없다 "안 잡힘"으로 드러낸다
비슷한 과거가 없을 때 좁힌다새 영역에는 비교 대상이 없다 검증 실험 제안으로 전환
얽힌 여러 원인을 분해한다개별 효과의 합이 전체와 맞지 않는다 어긋남 자체를 신호로 보고
처음부터 잘 작동한다축적이 없으면 판단 근거도 없다 초기에는 지식 꺼내기(§23)에 집중
이 구조가 주는 것은 답이 아니라 가설 목록이다. 원인 규명은 결국 추가 실험이고, 이 구조의 역할은 어떤 실험부터 돌릴지 정해 주는 것이다.

3부 · 맺음말

맺음말 — 가져갈 것 세 가지

우리 사례를 걷어 내고 남는, 어디에나 적용되는 세 문장.

① 질문이 저장을 정한다
"데이터가 있으니 쌓는다"가 아니라 "이런 질문에 답하고 싶다"에서 출발한다. 집계인가, 단어 찾기인가, 뜻 찾기인가, 누적 결론인가 — 질문의 모양이 정해지면 저장 방식은 거의 따라 나온다. (2부 Q2)
② 성격이 다르면 나눠 담는다
수치는 표에, 문서는 문서대로, 결론은 지식 층에. 하나의 저장소로 전부 풀려는 순간 어느 것도 잘 안 된다 — RAG 하나로, wiki 하나로 다 담으려는 것도 같은 실수다. (2부 원칙)
③ 실패가 보이는 구조를 고른다
AI가 끼는 시스템은 조용히 틀리는 것이 가장 위험하다. "모른다"가 기록으로 드러나는 구조 — 빈 항목, 안 잡힘, 적중률 — 를 골라야 지식이 자랄 자리가 생긴다. (3부 전체)
저장 방식 검토로 시작해서, 암묵지를 꺼내 쌓는 구조에 도착했다.
도구는 바뀌어도 이 세 기준은 남는다.

부록

용어 대응표

본문이 쉬운 말로 풀어 쓴 개념들의 정식 명칭. 더 찾아볼 때 검색어로 쓴다.

부록

쉬운 말 ↔ 전문 용어

공통

쉬운 말전문 용어설명
한 번에 볼 수 있는 분량컨텍스트 윈도 (context window)여기 안 들어가면 없는 것과 같다
아는 시점의 한계지식 컷오프 (knowledge cutoff)학습 이후의 일은 모른다
질문할 때 자료를 같이 건넴문맥 주입 (context injection)RAG·wiki가 공통으로 하는 일
모델 자체를 다시 훈련파인튜닝 (fine-tuning)RAG와는 다른 길
문서 맨 위의 정보표프론트매터 (frontmatter)작성일·조건·태그 등 기계가 읽는 부분
그럴듯하게 지어냄환각 (hallucination)근거가 없거나 엉뚱할 때 발생

RAG 쪽

쉬운 말전문 용어설명
검색해서 붙여 주기RAG (Retrieval-Augmented Generation)검색 + 생성
잘게 쪼개기청킹 (chunking)조각 크기가 검색 품질을 좌우한다
의미 좌표임베딩 (embedding)글을 숫자 묶음으로. 뜻이 가까우면 숫자도 가깝다
좌표 보관소벡터 저장소 (vector store / DB)조각과 좌표를 담아 두는 곳
뜻으로 찾기의미 검색 (semantic search)단어가 달라도 찾는다
단어로 찾기키워드 검색 (keyword search, BM25)정확한 말이 있어야 찾는다
둘을 섞기하이브리드 검색 (hybrid search)의미 + 단어. 조용한 실패를 줄인다
가져올 개수상위 k개 (top-k)맞는 것이 없어도 이 개수만큼 가져온다
꺼낸 것을 다시 거르기재순위 (re-ranking)정확도가 오르는 대신 비용이 는다
미리 등록해 두기색인 (indexing)등록해야 검색된다
출처를 밝힘근거 제시 (citation / grounding)어느 문서에서 왔는지

wiki 쪽

쉬운 말전문 용어설명
정리해 둔 지식 저장소지식베이스 (knowledge base)원본이 아니라 결론이 담긴다
항목페이지 / 노드 (page, entry, node)한 항목 = 한 주제
링크연결 / 역링크 (link, backlink)관계를 표현하는 수단
항목과 링크의 관계망지식 그래프 (knowledge graph)링크가 쌓이면 그래프가 된다
링크를 타고 이동그래프 탐색 (graph traversal)찾는 것이 아니라 걸어 들어간다
비어 있는 항목빈 링크 / 스텁 (broken link, stub)모른다는 사실이 드러나는 지점
낡아서 틀려짐정합성 붕괴 (staleness)원본이 바뀌면 wiki가 틀려진다
쓰고 고치는 품관리 비용 (curation cost)wiki의 최대 비용
검색과 wiki를 합친 방식그래프 RAG (GraphRAG)관계망 위에서 검색
LLM용으로 고쳐 쓴 wikiLLM-wiki이 자료의 용어 — 한 항목=한 주제 · 필수 링크 · frontmatter · 출처 구분 (§10)

진단 순서도 쪽

쉬운 말전문 용어설명
진단 순서도결정 트리 / 진단 절차 (decision tree)증상에서 갈라져 내려가는 확인 순서
갈림길노드 · 분기 (node, branch)무엇을 확인하고 어디로 가는지
안 잡힘미분류 · 폴백 (unclassified, fallback)★ 모른다는 것이 드러나는 자리
몇 번 맞았나적중률 (hit rate)도달 횟수 대비 검증 확인 횟수
모르는 영역의 지도지식 결손 (knowledge gap)안 잡힌 사례가 쌓인 자리
미리 계산해 붙여 둠사전 계산 (precomputation)질문받고 찾는 대신 등록 시점에 계산
아는 것을 밖으로 꺼냄암묵지 외부화 (tacit knowledge externalization)이 구조의 최종 목적
근거를 되짚을 수 있음추적 가능성 (traceability)신뢰성의 실체