시작 전에
과정 안내
이 교안은 "실습으로 배우는 LangGraph: 내 손으로 RAG 시스템 만들기" 40차시 과정을 5일로 나눠 웹으로 옮긴 것입니다. 회사 문서를 근거로 답하는 RAG를 LangChain으로 먼저 만들고, 그것을 LangGraph 그래프(질문 분류, 검증, 재생성, 질문 재작성, 장애 대응)로 키운 다음, 평가와 미니프로젝트로 마무리합니다. 파이썬의 변수, 함수, 딕셔너리, 예외 정도는 안다고 보고 시작합니다.
5일 과정 한눈에 보기
하루 8차시씩입니다. "실습 코드"는 본문 쪽 아래에 끼워 넣은 실습 파일 수, "퀴즈"는 결과 보기(예시 풀이)가 달린 코딩 퀴즈 수입니다.
| 날 | 차시 | 실습 코드 | 퀴즈 |
|---|---|---|---|
| Day 1 | 1차시 과정 이해와 RAG 개요 | - | 2 |
| Day 1 | 2차시 생성형 AI와 RAG의 관계 | - | 2 |
| Day 1 | 3차시 RAG 기본 구조 깊이 있게 이해하기 | - | 2 |
| Day 1 | 4차시 실습 환경 구축 | 1 | 2 |
| Day 1 | 5차시 LangChain 입문 | 3 | 2 |
| Day 1 | 6차시 문서 로딩 실습 | 4 | 2 |
| Day 1 | 7차시 텍스트 분할 이해 | 3 | 2 |
| Day 1 | 8차시 첫 번째 RAG 실습 | 2 | 2 |
| Day 2 | 9차시 임베딩 이해 | 3 | 2 |
| Day 2 | 10차시 벡터저장소 이해 | 3 | 2 |
| Day 2 | 11차시 Retriever 기초 실습 | 4 | 2 |
| Day 2 | 12차시 RAG 품질 문제 | 1 | 2 |
| Day 2 | 13차시 프롬프트 최적화 | 4 | 2 |
| Day 2 | 14차시 성능 비교 실습 | 3 | 2 |
| Day 2 | 15차시 기본 RAG 앱 만들기 | 6 | 2 |
| Day 2 | 16차시 1부 종합정리 | 4 | 2 |
| Day 3 | 17차시 LangGraph 입문 | 4 | 2 |
| Day 3 | 18차시 State 이해 | 4 | 2 |
| Day 3 | 19차시 Node 이해 | 5 | 2 |
| Day 3 | 20차시 Edge 이해 | 5 | 2 |
| Day 3 | 21차시 첫 번째 LangGraph 실습 | 5 | 2 |
| Day 3 | 22차시 RAG를 Graph로 바꾸기 | 6 | 2 |
| Day 3 | 23차시 Modular RAG 개념 | - | 2 |
| Day 3 | 24차시 Retriever Node 분리 | 6 | 2 |
| Day 4 | 25차시 Generator Node 분리 | 2 | 2 |
| Day 4 | 26차시 Verifier Node 설계 | 1 | 2 |
| Day 4 | 27차시 기본 Modular RAG 구현 | 3 | 2 |
| Day 4 | 28차시 Conditional Edge 이해 | 1 | 2 |
| Day 4 | 29차시 Conditional Edge 실습 | 4 | 2 |
| Day 4 | 30차시 질의 재작성 및 재검색 | 3 | 2 |
| Day 4 | 31차시 예외 처리 설계 | 5 | 2 |
| Day 4 | 32차시 고도화된 Modular RAG | 1 | 2 |
| Day 5 | 33차시 Modular RAG 최적화 | - | 2 |
| Day 5 | 34차시 RAG 평가 개요 | 1 | 2 |
| Day 5 | 35차시 평가 데이터셋 구축 | 2 | 2 |
| Day 5 | 36차시 평가 실습 | - | 2 |
| Day 5 | 37차시 루브릭 설계 | - | 2 |
| Day 5 | 38차시 미니프로젝트 ① 주제 선정과 설계 | 4 | 2 |
| Day 5 | 39차시 미니프로젝트 ② 구현과 개선 | 6 | 2 |
| Day 5 | 40차시 발표와 정리 | - | 2 |
원본 교재(PDF)의 4부 구성으로 보면 1부 RAG 기초(1~16차시), 2부 LangGraph(17~22차시), 3부 Modular RAG(23~33차시), 4부 평가·프로젝트(34~40차시)입니다. 부마다 끝에 "마일스톤"이 있어 실제로 돌아가는 결과물을 하나씩 확보합니다.
차시 한 개의 구성
| 순서 | 페이지 | 무엇이 있나 |
|---|---|---|
| 1 | 먼저 큰 그림부터 | 그 차시를 일상 비유와 그림 한 장으로 미리 봅니다 |
| 2 | 용어 짚고 가기 | 원본 PDF의 "핵심 용어" 표. 모두 모아 용어집이 됩니다 |
| 3 | 이번 차시에서 배우는 것 | 학습 목표, 교안 해설, 강의 PPT 슬라이드 흐름 |
| 4 | 1. … 2. … | 원본 PDF 본문을 절 단위로 옮긴 페이지. 실습 코드는 내용이 이어지는 쪽 바로 아래에 있습니다 |
| 5 | 체크리스트와 과제 | 원본 PDF 끝의 체크리스트, 과제, 다음 차시 미리보기 |
| 6 | 실습 1 | 교안 해설의 실행 흐름, 실습 순서, 코드와 원본 PDF 쪽의 연결표 |
| 7 | 퀴즈 1, 2 | 직접 코드를 짜 보는 문제. "결과 보기 (예시 풀이)"를 누르면 주석 단 풀이와 실행 결과가 나옵니다 |
| 8 | 정리 · 확인문제와 해답 | 핵심 정리와 객관식·단답형 |
실습 코드와 원본 PDF가 이어지는 방식
- 본문 페이지마다 맨 위에
출처: 원본 PDF … N~M쪽줄이 있습니다. 쪽 번호를 누르면 원본 쪽 그림이 새 창으로 열립니다. - 실습 코드는
#### 실습 코드 · 파일 경로제목으로 들어 있고, 바로 아래 분홍색 줄이 "위의 원본 PDF N차시 M쪽 「소제목」과 이어집니다"라고 알려 줍니다. 그 쪽의 글을 읽고 곧바로 아래 코드를 보면 됩니다. - 실습 페이지의 "수업 자료와 이어지는 곳" 표에 코드 파일과 원본 쪽의 짝이 한눈에 정리되어 있습니다.
- 어느 쪽 아래에 넣을지는 원본 PDF의 글(파일 이름, 함수 이름)과 코드를 견주어 이 교안에서 정한 것입니다.
실행 환경
실습 프로젝트의 루트는 AI교안PDF_커서/AI교안/실습 입니다. 대부분의 예제가 ../../data/... 경로를 쓰므로 해당 차시 폴더에서 실행합니다.
cd 실습
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
pip install pymupdf실습/.env 파일은 직접 만듭니다. 이 교안에는 실제 키를 한 글자도 싣지 않았습니다.
OPENAI_API_KEY=발급받은_API_키cd src\05
python textloader.py- 임베딩과 챗 모델을 부르는 파일은 키가 있어야 답이 나옵니다. 키가 없으면 코드 아래 "실행 결과 샘플"로 출력 모양을 확인합니다. 모델의 답은 실행할 때마다 조금씩 달라집니다.
- 인덱스를 만드는 파일은 실행하면 그 차시 폴더에
faiss_index/를 만듭니다. 임베딩 모델이나 청크 설정을 바꾸면 그 폴더를 지우고 다시 만듭니다. - 퀴즈의 예시 풀이는 API 키 없이 파이썬 표준 라이브러리만으로 돌아갑니다.
실습 문서
| 파일 | 쓰는 곳 |
|---|---|
실습/data/notice.txt | 5~7차시의 짧은 고객 안내문 |
실습/data/manual.pdf | 8차시 이후 RAG의 본 문서 |
실습/data/01~05_*.pdf | 도서관, 회의실, 무선마우스, 캠핑장, 교육프로그램 안내 (여러 문서 실습) |
실습/src/rag_app_prj/docs/busan_guide.pdf | 미니프로젝트 예시(부산 방문 안내) |
차시 번호
이 교안의 차시 번호는 강의 교재 PDF와 PPT 파일 번호, 실습/src 폴더 번호와 같습니다. 예를 들어 24차시 Retriever Node 분리는 PDF 24차시_RetrieverNode분리.pdf, 코드는 실습/src/24 입니다. 33~40차시는 PPT와 교안 해설이 따로 없고, 보충 문서(평가 설계, 테스트셋, 루브릭, 미니프로젝트)를 내용이 맞는 차시에 붙였습니다.