6. 의존성 주입 (Dependency Injection) 정복

# 6 강. 의존성 주입 (Dependency Injection) ## 🎯 학습 목표 - 의존성 주입 (DI) 개념 이해 - Depends() 활용법 - 의존성 체인과 캐싱 --- ## 1. 의존성 주입이란? ```python # ❌ 반복되는 인증 로직 @app.get("/users/me") def read_user(): token = get_token() user = verify_token(token) return user # ✅ 의존성 주입 def get_current_user(token: str = Header(...)) -> User: return verify_token(token) @app.get("/users/me") def read_user(user: User = Depends(get_current_user)): return user ``` --- ## 2. 의존성 체인 ```python def get_db(): db = SessionLocal() try: yield db finally: db.close() def get_user_by_id(user_id: int, db = Depends(get_db)): return db.query(User).filter(User.id == user_id).first() def require_admin(user = Depends(get_user_by_id)): if user.role != "admin": raise HTTPException(403, "Not enough permissions") return user ```