15차시. 기본 RAG 앱 만들기
체크리스트와 과제
원본 PDF 끝부분의 체크리스트, 과제, 다음 차시 미리보기를 한 페이지에 모았습니다.
이번 차시 체크리스트
출처: 원본 PDF 20쪽 · 쪽 그림 20쪽
개념 이해
□ 왜 모듈로 나눠야 하는지 설명할 수 있다
□ "바뀌는 이유가 다르면 다른 파일"의 뜻을 안다
□ 단일 인터페이스(ask 하나만 노출)의 이점을 안다
□ 반환 형식을 통일하는 이유를 안다
실습
□ config.py에 모든 설정을 모았다
□ Path로 경로 문제를 해결했다
□ indexer.py로 인덱스 준비를 분리했다
□ rag.py에서 ask() 하나만 외부에 노출했다
□ try-except로 오류 상황을 처리했다
□ 검색 결과 0건에도 앱이 죽지 않는다
□ app.py로 반복 질문이 가능하다
□ (선택) Streamlit 웹 화면을 만들었다
과제
출처: 원본 PDF 20쪽 · 쪽 그림 20쪽
🎯 이번 차시 과제
1. 4개 모듈 완성 (필수)
config · indexer · rag · app을 만들고
python app.py로 정상 동작을 확인하세요.
2. 고장 테스트 (필수)
아래 상황에서 앱이 죽지 않는지 확인하세요.
· 아무것도 입력하지 않고 엔터
· 문서에 전혀 없는 질문
· .env의 API 키를 일부러 틀리게 수정
· 인터넷 연결을 끊고 질문
네 경우 모두 안내 메시지가 나오고 계속 동작해야 합니다.
3. 설정 변경 테스트 (필수)
config.py의 TOP_K만 3으로 바꿔보세요.
다른 파일을 하나도 안 고치고 반영되면 성공입니다.
4. 웹 화면 (선택)
Streamlit으로 web.py를 만들고 캐싱까지 적용하세요.
다음 차시 미리보기
출처: 원본 PDF 21쪽 · 쪽 그림 21쪽
16차시: 1부 종합정리
드디어 1부의 마지막입니다.
· 1~15차시 핵심 개념 총복습
· 자료 없이 RAG 파이프라인 백지에 재구성
· 새 문서로 30분 안에 RAG 만들기 (미니과제)
· 2부로 넘어갈 준비가 됐는지 자가진단
여기서 막히는 부분이 있다면
그 차시를 복습하고 2부로 넘어가세요.
💬 마무리
오늘은 새로운 기능을 하나도 추가하지 않았습니다. 어제와 똑같은 답변이 나옵니다.
그런데 무엇이 달라졌을까요?
이제 남에게 건네줄 수 있습니다. "python app.py 실행하세요"라고 하면 됩니다. 설정을 바꾸려면 config.py만 열면 됩니다. 화면을 바꾸려면 app.py만 고치면 됩니다.
실험 코드와 앱의 차이는 기능이 아니라 구조입니다. 그리고 이 구조 감각이 3부에서 모듈을 분리할 때 그대로 힘이 됩니다.
1부의 마지막 차시에서 만나요! 🧱