2026년 7월 21일 화요일

app/database.py



from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base, sessionmaker

from app.config import settings

# 1. DB 엔진 생성
engine = create_engine(
  settings.DATABASE_URL,
  # SQLite를 사용할 때만 필요한 옵션 (다른 DB일 경우 지우세요)
  connect_args={"check_same_thread": False},
)

# 2. 세션 팩토리 생성
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# 3. 모델 작성을 위한 기본 클래스
Base = declarative_base()


# 4. FastAPI에서 사용할 DB 세션 의존성(Dependency) 함수
def get_session():
  session = SessionLocal()
  try:
    yield session
  finally:
    session.close()


database.py

import os from contextlib import contextmanager # contextmanager 임포트 from typing import Generator from dotenv...