Logo
내 게시판 만들기
파이썬

FastAPI 의존성 주입 — Depends

멍뭉이 | 2026.04.27 13:06:18
조회 14 | 추천 0

FastAPI의 「Depends」는 의존성 주입(DI) 시스템입니다.

DB 세션·인증된 사용자·설정 같은 「공통적으로 필요한 값」을 함수가 자동으로 받게 해 줍니다.

테스트도 매우 쉬워집니다.



기본 패턴.

from fastapi import Depends.

def get_db(): db = SessionLocal(); try: yield db; finally: db.close().

@app.get("/users") def list(db = Depends(get_db)): return db.query(User).all().

라우트 함수가 db를 자동으로 받음.



체이닝.

의존성이 또 다른 의존성을 가질 수 있습니다.

def get_current_user(token: str, db = Depends(get_db)): ...

→ 라우트가 user = Depends(get_current_user)만 선언해도 db도 자동으로 따라옴.



yield로 정리 코드.

yield 다음에 쓴 코드는 응답이 나간 후 실행.

db.close(), 파일 닫기, 트랜잭션 commit 같은 정리 작업이 자동.

with 문과 비슷한 라이프사이클.



테스트 친화적.

app.dependency_overrides[get_db] = test_db로 의존성 통째로 교체 가능.

실제 DB 대신 테스트 DB나 모킹된 객체를 주입할 수 있어, 라우트 코드를 안 바꾸고도 단위 테스트 작성이 쉽습니다.




한 줄 요약


FastAPI의 Depends는 DI 시스템으로 DB·인증·설정 같은 공통 값을 자동 주입합니다.

yield로 정리 코드, dependency_overrides로 테스트가 쉽습니다.




더 알아볼 것


- BackgroundTasks — 응답 후 작업

- dependency_overrides 테스트

- Sub-dependencies 구조

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
161 햇살이 26/04/27 12 0
160 다람쥐 26/04/27 19 0
159 구름이 26/04/27 17 0
158 햇살이 26/04/27 14 0
157 멍뭉이 26/04/27 14 0
156 토순이 26/04/27 14 0
155 야옹이 26/04/27 14 0
154 별님이 26/04/27 14 0
153 다람쥐 26/04/27 17 0
152 구름이 26/04/27 20 0
151 구름이 26/04/27 15 0
150 곰돌이 26/04/27 17 0
149 야옹이 26/04/27 20 0
148 다람쥐 26/04/27 16 0
147 구름이 26/04/27 16 0
146 다람쥐 26/04/27 40 0
145 구름이 26/04/27 16 0
144 별님이 26/04/27 13 0
143 곰돌이 26/04/27 14 0
142 너구리 26/04/27 16 0
141 야옹이 26/04/27 14 0
140 너구리 26/04/27 18 0
139 멍뭉이 26/04/27 15 0
138 야옹이 26/04/27 15 0
137 별님이 26/04/27 12 0
136 야옹이 26/04/27 16 0
135 멍뭉이 26/04/27 14 0
134 햇살이 26/04/27 14 0
133 햇살이 26/04/27 12 0
132 토순이 26/04/27 16 0
신고하기

신고 사유를 선택해 주세요.