본문 바로가기
C.W.K.
Stream
Lesson 05 of 10 · published

대체 경로 — 여러 모델로 하나의 약속 지키기

~14 min · production, fallback

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

모델 하나에만 기대면 쉽게 멈춰

제공업체에 장애가 나고 호출 한도에 닿으며 처리 용량이 흔들려. 중요한 시스템은 주 경로를 쓸 수 없어도 사용자가 답을 받을 수 있도록 대체 경로를 가져야 해.

대체 경로의 모양

  • 주 모델 — 품질이 가장 좋고 기본으로 쓰는 모델.
  • 보조 모델 — 비슷한 능력의 다른 제공업체 모델. 기반 시설이 달라 장애 양상도 달라.
  • 마지막 모델 — 더 싸거나 로컬에서 돌아 품질은 낮아도 이용 가능한 모델.
  • 캐시·고정 응답 — 일부 요청에는 유용한 안내가 든 “잠시 뒤 다시 시도해”가 막힌 요청보다 나아.

실패를 감지하고 이동해

  • 5xx, 시간 초과, 무해한 요청의 정책 거절, 검증과 재시도 실패를 감지해.
  • 실패할 때 다음 경로로 옮기고 모든 단계를 기록해.
  • 최대 세 번처럼 이동 상한을 정하고 그 뒤에는 구조화 오류로 깨끗이 끝내.
  • 마지막 모델도 정기적으로 요청을 받는다면 평가 모음에 포함해 품질을 재.

Code

대체 경로 연쇄·python
CHAIN = [
    {"provider": "anthropic", "model": "claude-opus-4-7"},
    {"provider": "openai",    "model": "gpt-5.5"},
    {"provider": "local",     "model": "llama4"},
]

async def call_with_fallback(req):
    last_err = None
    for step in CHAIN:
        try:
            return await call(step, req)
        except (TimeoutError, RateLimited, RefusalOnBenign) as e:
            last_err = e
            log.warning("fallback step failed", extra={"step": step, "err": str(e)})
    raise ServiceUnavailable from last_err

External links

Exercise

두 제공업체를 잇는 두 단계 대체 경로를 만들어봐. 통신 규칙이나 중단 스위치로 주 경로를 일부러 실패시키고 보조 경로가 요청을 처리하는지, 이동이 기록과 지표에 남는지 확인해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.