공개용 기술 학습 노트 · 2026.11.09

자료가 어떻게
근거 있는 답이 될까요?

SQLite → 문서 조각 → 임베딩 → 검색 → RAG → 평가. 직접 움직이는 작은 실험과 외부의 검증된 시각화·튜토리얼을 연결했습니다.

모바일 대응단일 정적 HTML로컬에서 인터랙션공식 학습 링크
학습 방법
① 이 문서의 예제를 움직여 보세요. ② 해당 장의 ‘원본 자료’를 엽니다. ③ 원본의 그림·실습과 우리 예제의 공통점·차이점을 정리합니다.
15분 · 감 잡기흐름과 SQL·벡터 데모
25분 · 직접 탐색Projector · SQLBolt · RRF
20분 · 검증 이해RAG trace · 평가 지표

교육용 단순화 사례입니다. 아래의 몬스터·마법 수치와 시각화 좌표는 실제 게임 데이터나 실제 임베딩 모델 출력이 아닙니다. 운영 문서의 경로·주소·DB 식별자·원본 데이터는 포함하지 않았습니다.

01 · 개념 구분

Indexing과 Fine-tuning은 전혀 다릅니다

검색 자료를 늘리기

Indexing / Embedding

기존 문서를 추출·정리·분할하고 숫자 벡터로 표현해 검색 DB에 보관합니다. 질문할 때 이 자료를 다시 찾을 수 있습니다. 답변 LLM의 가중치는 바뀌지 않습니다.

모델의 동작을 바꾸기

Fine-tuning

훈련 예제로 모델 가중치를 수정합니다. 최신 문서 추가와 출처 조회를 대신하는 기본 기능으로 혼동하면 안 됩니다.

RAG는 그중 첫 번째 흐름을 이용하여 답변을 생성합니다. 검색 결과를 모델에 근거로 제공하되, 출처가 실제 주장을 뒷받침하는지는 따로 확인합니다.

02 · 전체 지도

색인을 만드는 길과 질문을 처리하는 길

A · Indexing: 자료 변경 때 실행
원문 수집출처·버전 기록
→
ETL / Chunk문장·관계 보존
→
Embedding문장 → 벡터
→
Index검증 후 검색 가능
B · Query: 질문 때 실행
질문이름·의도 분석
→
Retrieval원문 후보 찾기
→
Evidence관계·출처 확인
→
Generation필요 시 답변 LLM

정확한 DB 검색만 필요한 질문은 마지막 LLM 생성 없이 답할 수 있습니다. 벡터 DB가 원본이나 관계 DB를 완전히 대체하는 것도 아닙니다.

원본 자료를 따라 배우기

LangChain · RAG 학습 경로 ↗ · 개념·구현 튜토리얼
학습 포인트: Semantic Search와 RAG Agent를 구분하여, 검색 결과를 만들 때와 답변을 만들 때를 나눠 설명해 보세요.

03 · 관계형 데이터

SQLite: JOIN으로 사실 관계를 확인합니다

SQL은 개체의 고유 ID를 기준으로 표를 연결합니다. 아이템의 획득처처럼 정확한 관계·수량·NULL이 중요한 질문은 문장 유사도만 보는 것보다 구조화된 DB 조회가 적절할 수 있습니다.

교육용 가상 자료 · 운영 데이터 아님

monsters · 몬스터 표

idnamehp
m1연습쥐10
m2연습박쥐20
m3미상몬스터NULL

drops · 드롭 표

monster_iditem
m1 → monsters.id연습열매
m2 → monsters.id연습열매

이름이 바뀌어도 ID 연결은 유지할 수 있습니다. JOIN은 두 표의 같은 ID를 맞춰 붙이는 동작입니다.

이 화면은 고정 예시를 JavaScript로 보여 줍니다. 실제 SQLite 실행은 10장의 실습 A에서 합니다.

NULL은 0과 다릅니다. 모르는 HP를 0이라고 바꾸면 평균·최소·최대의 해석이 달라집니다. 검색 결과 상위 5개만으로 전체 최대값을 단정할 수 없습니다.
원본 자료를 따라 배우기

SQLBolt · JOIN 인터랙티브 실습 ↗ · 브라우저 실습
학습 포인트: 두 표를 JOIN한 뒤, JOIN 조건을 바꾸면 결과 행이 어떻게 달라지는지 확인해 보세요.

04 · 의미 공간

임베딩: 문장의 뜻을 숫자로 표현합니다

문서를 표현하는 벡터와 질문 벡터의 방향·거리를 비교해 관련 문서를 찾습니다. 아래 2차원 예제는 사람이 만든 좌표이며 실제 학습 모델의 고차원 벡터가 아닙니다.

체험 · 사람이 만든 2차원 예제 / 실제 모델 출력 아님
질문과 자료의 방향 비교원점에서 회복 문서는 오른쪽 낮은 각도에, 공격 문서는 위쪽 높은 각도에 있다. 슬라이더로 질문 벡터를 돌리면 같은 방향의 문서와 코사인 유사도가 높아진다. 회복 문서 · 10° 공격 문서 · 50° 질문원점교육용 x축

거리 계산 결과

코사인 유사도 = 두 화살표가 같은 방향을 보는 정도.
cosine distance = 1 − cosine similarity

실제 vec0는 현재 cosine distance를 사용하며 거리가 작을수록 가깝습니다. 여기서는 각도를 직접 정해 원리를 보여 줍니다. 2차원으로 실제 검색 품질을 재현하지는 않습니다.

먼저 각도를 움직여 회복·공격 문서의 순위 변화를 보세요. 이후 TensorFlow Projector에서 실제 고차원 표현을 2D/3D로 축소해 탐색해 보시면 좋습니다. 단, 차원 축소 그림에서 가까운 점이 모든 원래 차원에서도 항상 가장 가까운 것은 아닙니다.

원본 자료를 따라 배우기

TensorFlow · Embedding Projector ↗ · 인터랙티브 시각화
학습 포인트: 데모 데이터를 불러와 PCA·t-SNE·UMAP 보기와 데이터 레이블을 전환해 보세요. 2D 배치는 고차원 유사도의 완전한 보증이 아닙니다.

OpenAI · Vector embeddings ↗ · 공식 개념·API
학습 포인트: 벡터 차원과 유사도 사용 사례를 읽고, 질문과 문서 임베딩에 같은 모델 구성이 필요한 이유를 정리해 보세요.

05 · 원문 전처리

청킹: 잘 자르는 것보다 맥락을 보존하는 것이 중요합니다

수집 원문웹·텍스트·JSON·이미지 등
→
ETL추출 → 정리 → 저장
출처·필드·관계 보존
→
Projection서로 다른 표를
공통 검색 레코드로
→
Chunk검색용으로 나눈
문장 조각

긴 문서 전체를 하나의 벡터로 만들면 세부 항목이 묻힐 수 있고, 아주 짧게 자르면 숫자·조건·부정 표현이 서로 떨어질 수 있습니다.

좋은 조각

연습회복술

대상: 자신
조건: 마력 10 이상
효과: HP 30 회복
출처: 교육용 문서 2절

이름·조건·효과가 연결됩니다.

나쁜 조각

30 회복

누가? 무엇을? 언제?
다음 페이지에는 “실패할 수 있음”

숫자만 잘 검색돼도 조건을 잃으면 오답이 됩니다.

문서의 제목·절·표·조건에 맞춰 조각을 나눌지 판단하고, 각 조각에서 출처와 원문 범위를 역추적할 수 있도록 만듭니다.

원본 자료를 따라 배우기

Pinecone · Chunking Strategies ↗ · 그림·설명
학습 포인트: 고정 길이 분할과 문서 구조 기반 분할을 비교하고, 조건·효과가 서로 떨어지는 사례를 찾아보세요.

06 · 검색 전략

정확·키워드·의미·혼합 검색을 구분합니다

모드비교 대상적합한 예
exact정확한 이름·ID아이템 ID가 알려졌을 때
lexical핵심 단어·철자정확한 고유명사나 표현을 포함할 때
semantic벡터의 의미상 거리이름을 모르고 의미만 설명할 때
hybrid키워드와 의미 결과를 함께 사용일상적인 혼합 질문에 범용 접근
RRF 순위 합치기 · 교육용 고정 순위

점수의 단위가 다르면 ‘순위’를 합칩니다

문서 A가 키워드 1위·의미 3위, 문서 B가 키워드 2위·의미 1위일 때:

RRF는 각 채널에서 1/(60 + 순위)를 더합니다. 현재 코드도 이 공식을 쓰지만, 정확 일치·명시 이름 우선과 의미 후보 재정렬이 추가되어 최종 순위가 이 단순 예제와 같지는 않습니다. 출력 score는 확률이 아닙니다.

RRF는 각 검색 방식의 점수 크기가 달라도 순위 자체를 합칠 수 있습니다. 실제 서비스는 이름 우선 규칙이나 후단 재정렬 등을 추가할 수 있습니다.

원본 자료를 따라 배우기

sqlite-vec · KNN queries ↗ · 공식 SQL 예제
학습 포인트: MATCH·k·distance 조건을 확인하고, 벡터 생성과 벡터 검색의 책임을 구분해 보세요.

Elastic · Hybrid Search ↗ · 그림·개념
학습 포인트: 키워드 검색이 놓치는 질문과 의미 검색이 혼동하는 숫자·고유명사 사례를 각각 하나씩 생각해 보세요.

Elastic · Reciprocal Rank Fusion ↗ · 공식 수식·예제
학습 포인트: 문서의 순위가 1위·3위인 경우와 2위·1위인 경우를 비교하여 RRF가 원점수를 사용하지 않는 이유를 살펴보세요.

07 · 검색 결과를 답변으로

RAG: 출처를 붙인 답변을 만듭니다

Retrieval-Augmented Generation은 검색과 문장 생성을 연결하는 패턴입니다. 예를 들어 ‘어디서 얻나요?’라는 질문에는 근거 문서뿐 아니라 몬스터·드롭·지역 관계가 필요할 수 있습니다.

한 단계씩 보기 · 실제 API 호출 없는 모형

질문
후보 검색
원문·관계
모델 + 도구
인용 검사
근거 ID 존재 ≠ 주장 검증 완료
인용 번호가 실제로 등록되어 있어도 해당 근거가 수량·조건·시대 등 모든 주장을 뒷받침하는지 별도 확인해야 합니다. 외부 도구 호출 횟수, 비용, 오류 처리도 운영 설계에 포함됩니다.
원본 자료를 따라 배우기

LangChain · RAG 학습 경로 ↗ · 개념·구현 튜토리얼
학습 포인트: Semantic Search와 RAG Agent를 구분하여, 검색 결과를 만들 때와 답변을 만들 때를 나눠 설명해 보세요.

Arize Phoenix · Tracing Tutorial ↗ · 실행 추적·시각화
학습 포인트: 질문에서 검색·도구 호출·모델 응답까지 span으로 추적하면 어떤 단계의 오류인지 확인할 수 있는지 살펴보세요.

08 · 검증과 관측

검색 품질과 답변 품질을 따로 검사합니다

검색 단계

정답 문서가 상위 k개에 들어오는지, 필터 밖의 문서가 섞이지 않는지, 특정 관계가 누락되지는 않는지를 검사합니다.

예: Recall@5, 누락률, 조건별 회귀 테스트

답변 단계

검색된 근거가 실제 답을 뒷받침하는지, 원문에 없는 내용이 추가되지는 않았는지, 출처를 올바르게 인용하는지 검사합니다.

예: Faithfulness, 정답 대조, 인용 적합성 검사

오류를 구간으로 나눠 보기
수집 오류원문 누락·OCR
→
검색 오류청킹·필터·순위
→
생성 오류주장·출처 혼동
→
Trace / Eval구간별 검사

실제 호출을 시각화하는 Phoenix와 평가 메트릭을 설명하는 Ragas를 함께 비교해 보세요. 도구를 도입하지 않고 개념만 학습해도 좋습니다.

원본 자료를 따라 배우기

Arize Phoenix · Tracing Tutorial ↗ · 실행 추적·시각화
학습 포인트: 질문에서 검색·도구 호출·모델 응답까지 span으로 추적하면 어떤 단계의 오류인지 확인할 수 있는지 살펴보세요.

Ragas · RAG 평가 메트릭 ↗ · 평가 개념·예제
학습 포인트: Context Recall과 Faithfulness가 서로 다른 실패를 측정한다는 점을 사례로 설명해 보세요.

09 · 외부 학습 경로

원본 시각화·공식 튜토리얼 11선

원본 사이트의 자료를 그대로 링크합니다. 이미지·영상·예제 코드를 이 사이트에 복사하거나 재배포하지 않았습니다. 실습에 필요하면 공용 예제 데이터만 사용하시고, 운영 데이터와 API 키는 올리지 마세요.

각 링크의 개념은 이 공개 교육 예제를 보완하기 위한 것으로, 특정 제품의 정확한 구현이나 검색 결과가 일치한다는 의미는 아닙니다. 외부 사이트의 인터페이스와 URL은 향후 바뀔 수 있습니다.

10 · 확인 문제

이 다섯 가지를 이해하시면 첫 번째 학습이 완성됩니다

1. 새 문서에 임베딩을 수행하면 답변 LLM의 가중치도 바뀝니다.
2. 유사도가 높으면 해당 문장이 반드시 사실입니다.
3. 정확한 수량·아이템 획득 관계를 찾을 때 유용한 방법은?
4. RRF는 각 검색기의 원점수 자체를 더합니다.
5. 답변에 존재하는 출처 ID를 인용했다면 모든 내용이 맞습니다.