---
tags: [개발/설계, template/mermaid, flowchart, logic]
---

# 플로우차트 — 분기 로직

조건 분기가 있는 처리 로직을 그린다. 요청 처리·검증·라우팅 설명에 쓴다.

```mermaid
flowchart TD
    START([요청 수신]) --> VALIDATE{입력 검증}
    VALIDATE -->|실패| REJECT[400 반환]
    VALIDATE -->|통과| AUTHZ{권한 확인}
    AUTHZ -->|없음| DENY[403 반환]
    AUTHZ -->|있음| CACHE{캐시 히트?}
    CACHE -->|예| RETURN[캐시 응답]
    CACHE -->|아니오| PROCESS[처리 실행]
    PROCESS --> EXT{외부 호출 필요?}
    EXT -->|예| CALL[외부 API 호출]
    CALL --> OK{성공?}
    OK -->|타임아웃·5xx| RETRY[재시도 백오프]
    RETRY -->|상한 초과| FALLBACK[폴백·에러 반환]
    RETRY -->|재시도| CALL
    OK -->|성공| SAVE[결과 저장]
    EXT -->|아니오| SAVE
    SAVE --> RETURN2[200 반환]

    REJECT --> END([종료])
    DENY --> END
    RETURN --> END
    FALLBACK --> END
    RETURN2 --> END

    classDef err fill:#DC262622,stroke:#DC2626;
    class REJECT,DENY,FALLBACK err;
```

방향: `TD`=위→아래, `LR`=좌→우. 반드시 표기할 것: 입력 검증·권한 지점, 캐시 경로, 외부 호출의 타임아웃·재시도·폴백(성공 경로만 그리지 말 것), 에러 반환 코드. → 실패 처리 [[AI-DEVELOPMENT-RULES]] B-5, 색상 규칙 [[10_지식/08_인프라/_설계_키트/표기_규칙|표기 규칙]].
