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

18차시. State 이해

퀴즈 1 — 덮어쓰기와 이어 붙이기 견주기

reducer가 없을 때와 있을 때의 로그 합치기를 함수로 나누세요.

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

Python
def replace_log(old, new):
    pass

def append_log(old, new):
    pass
결과 보기 (예시 풀이)
Python
def replace_log(old, new):
    # reducer가 없을 때입니다. 새로 온 값이 기존 값을 통째로 덮어씁니다.
    return new

def append_log(old, new):
    # operator.add reducer가 있을 때입니다.
    # 리스트끼리 더하면 앞 리스트 뒤에 새 리스트가 이어 붙습니다.
    return old + new

# 세 노드가 차례로 log에 한 칸짜리 리스트를 돌려준다고 가정합니다.
updates = [["1단계 완료"], ["2단계 완료"], ["3단계 완료"]]

# 같은 updates를 두 방식으로 합쳐 봅니다.
log_a = []
log_b = []
for up in updates:
    log_a = replace_log(log_a, up)
    log_b = append_log(log_b, up)

# 확인 1: reducer가 없으면 마지막 값만 남아야 합니다.
print("Reducer 없음:", log_a)
# 확인 2: reducer가 있으면 세 단계가 모두 쌓여야 합니다.
print("Reducer 있음:", log_b)

실행 결과

출력
Reducer 없음: ['3단계 완료']
Reducer 있음: ['1단계 완료', '2단계 완료', '3단계 완료']

채점 기준: append_log는 앞 리스트를 유지한 채 뒤를 붙인다.

관련 교안: 18차시 「6. 실습 ② — Reducer 비교 실험」

← 이전 절18차시 · 실습 1 — State 이해 실습 따라 하기다음 절 →18차시 · 퀴즈 2 — question은 두고 query만 바꾸기