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

18차시. State 이해

1. 왜 State라는 개념이 필요할까?

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

17차시에서 그래프는 노드와 엣지로 이루어진다고 배웠습니다. 그런데 노드끼리 어떻게 정보를 주고받을까요?

1-1) 함수 인자로 주고받으면

출력
■ 노드가 3개일 때 — 아직 견딜 만합니다
──────────────────────────────────────
def retrieve(query):
    return docs

def generate(docs, question):
    return answer

def show(answer, docs):
    ...

■ 노드가 6개로 늘면 — 감당이 안 됩니다
──────────────────────────────────────
def rewrite(question, retries, prev_query, fail_reason):
    return new_query, retries

def retrieve(query, top_k, category, min_score):
    return docs, scores

def generate(docs, question, prompt_ver, retries):
    return answer, insufficient

def verify(answer, docs, question, retries):
    return grade, reason

... 인자 목록이 계속 길어집니다
... 중간에 노드 하나를 끼우면 앞뒤를 다 고쳐야 합니다

⚠️ 인자 전달 방식의 4가지 문제
① 인자 목록이 계속 길어집니다
노드가 늘수록 감당이 안 됩니다
② 노드를 끼워 넣기 어렵습니다
중간에 검증 노드를 넣으면 앞뒤 함수를 다 고쳐야 합니다
③ 값의 출처를 추적하기 어렵습니다
retries가 어디서 만들어져 어디까지 갔는지 모릅니다
④ 조건 분기에서 판단할 정보가 부족합니다
분기 함수에도 필요한 값을 다 넘겨줘야 합니다

← 이전 절18차시 · 이번 차시에서 배우는 것다음 절 →18차시 · 2. State — 하나의 공유 공책