RAG2026-5일20차시 · Edge 이해15 / 18← 이전목차다음 →MetaContents

20차시. Edge 이해

퀴즈 1 — 상한을 먼저 보는 재시도 분기

retries가 상한 이상이면 stop, 아니면 retry를 반환하세요. State는 수정하지 않습니다.

빈칸 코드에서 시작합니다.

Python
def route(state, limit):
    pass
결과 보기 (예시 풀이)
Python
def route(state, limit):
    # 분기 함수는 State를 읽기만 하고 경로 이름만 돌려줍니다.
    # 상한 검사를 맨 위에 두어야 재시도 분기가 먼저 먹지 않습니다.
    if state.get("retries", 0) >= limit:
        return "stop"
    # 상한 아래면 한 번 더 시도합니다.
    return "retry"

def bump(state):
    # 카운터를 올리는 일은 분기 함수가 아니라 노드가 맡습니다.
    return {"retries": state.get("retries", 0) + 1}

# 그래프 대신 while로 루프를 흉내 냅니다. 상한은 2입니다.
state = {"retries": 0}
while True:
    path = route(state, 2)
    # 확인 1: retries가 0, 1일 때는 retry, 2가 되면 stop이 나와야 합니다.
    print("retries =", state["retries"], "→", path)
    if path == "stop":
        break
    state.update(bump(state))

# 확인 2: retries 키가 없는 State도 get 기본값 0 덕분에 retry로 갑니다.
print("빈 State →", route({}, 2))

실행 결과

출력
retries = 0 → retry
retries = 1 → retry
retries = 2 → stop
빈 State → retry

채점 기준: 상한 검사가 먼저다. state[...] = 대입이 있으면 오답이다.

관련 교안: 20차시 「6. 루프 — 되돌아가는 Edge」 › 6-2) 안전한 루프 만들기

← 이전 절20차시 · 실습 1 — Edge 이해 실습 따라 하기다음 절 →20차시 · 퀴즈 2 — 문서 유무로 ok와 empty 고르기