RAG2026-5일18차시 · State 이해3 / 19← 이전목차다음 →MetaContents

18차시. State 이해

이번 차시에서 배우는 것

출처: 원본 PDF 18차시_State이해.pdf 1쪽 · 쪽 그림 1쪽

State 이해 — 노드들이 함께 쓰는 공책

✓ State가 왜 필요한지, 무엇을 대신해주는지 이해한다 ✓ TypedDict로 State 스키마를 직접 설계한다
✓ 노드가 '바뀐 값만' 반환하는 규칙을 이해한다
✓ Reducer로 값을 덮어쓰지 않고 누적한다
✓ RAG용 State를 3부까지 고려해 설계한다
✓ State 흐름을 눈으로 추적하는 방법을 익힌다

교안 해설: 이 시간에 하는 일

출처: 교안 18_State이해.md

노드가 늘면 함수 인자로 질문, 문서, 재시도 횟수를 전부 넘기기 어렵습니다. State 하나에 키를 추가합니다. 노드는 바꾼 키만 return합니다. return하지 않은 키는 남습니다. State 딕셔너리를 함수 안에서 직접 고치면 reducer가 적용되지 않을 수 있으므로, 새 딕셔너리를 return합니다.

reducer_demo.py가 핵심입니다. reducer가 없으면 log는 마지막 노드 값만 남습니다. operator.add reducer가 있으면 세 단계 문자열이 이어 붙습니다. 질문처럼 하나여야 하는 키에는 reducer를 붙이지 않습니다.

RAG State는 question(사용자 원문, 불변)과 query(검색어, 나중에 재작성)를 나눕니다. 이 구분은 32차시에서 값을 합니다. graph_state.py는 키 선언이라 표준 출력이 없습니다.

강의 PPT 흐름

출처: 강의 PPT 18차시_State이해.pptx (19장)

장꼬리표슬라이드 제목
1-실습으로 배우는 LangGraph : 내 손으로 RAG 시스템 만들기
2LEARNING GOALS이번 차시에서 배우는 것
3WITHOUT STATE함수 인자로 주고받으면
4ONE NOTEBOOK하나의 공유 공책
5KEY TERMS핵심 용어
6FOUR RULESState의 동작 규칙 네 가지
7RETURN ONLY CHANGES바꾼 키만 반환한다
8WATCH IT GROWState가 자라나는 모습
9REDUCER덮어쓰지 않고 쌓아야 할 때
10WHICH KEYS어떤 키에 Reducer를 쓸까
11RAG STATERAG용 State 설계하기
12TWO QUESTIONSquestion과 query를 나누는 이유
13INITIAL STATE초기값을 챙겨 넣기
14TRACE ITState 흐름을 눈으로 추적하기
15DON'T MUTATEState를 직접 수정하면 안 되는 이유
16TROUBLESHOOTING자주 겪는 문제
17CHECKLIST이번 차시 체크리스트
18NEXT다음 차시 미리보기 — 19차시 Node 이해
19-마무리
← 이전 절18차시 · 용어 짚고 가기다음 절 →18차시 · 1. 왜 State라는 개념이 필요할까?