7.1 SQLite와 MySQL 소개

약 6분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

7.1 SQLite와 MySQL 소개

이번 장에서는 SQLite와 MySQL의 기본 개념을 소개하고, Python을 사용하여 FastAPI와 함께 이 두 데이터베이스를 연결하는 방법을 배워보겠습니다. SQLite는 경량 데이터베이스로 작은 프로젝트나 임시 데이터 저장에 적합하며, MySQL은 보다 복잡하고 대규모 애플리케이션에 사용되는 관계형 데이터베이스입니다. 이 두 데이터베이스의 차이점과 장단점을 이해하는 것은 프로젝트에 적합한 데이터베이스를 선택하는 데 도움을 줍니다.

실습 프로젝트: 기본 CRUD API 구축하기

우리는 FastAPI를 사용하여 간단한 CRUD(Create, Read, Update, Delete) API를 구축할 것입니다. 이 API는 SQLite 데이터베이스를 사용하여 데이터 저장을 처리할 것입니다. 이후 MySQL을 사용하는 방법도 소개할 예정입니다.

  1. FastAPI 설치: FastAPI와 관련된 라이브러리를 설치합니다.

    pip install fastapi[all] sqlalchemy sqlite
    
  2. SQLite 데이터베이스 설정: 아래의 코드를 사용하여 SQLite 데이터베이스를 초기화하고 연결합니다.

    from sqlalchemy import create_engine, Column, Integer, String
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy.orm import sessionmaker
    
    DATABASE_URL = "sqlite:///./test.db"
    
    engine = create_engine(DATABASE_URL)
    SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
    Base = declarative_base()
    
  3. 모델 생성: 데이터베이스 모델을 정의합니다.

    class Item(Base):
        __tablename__ = "items"
    
        id = Column(Integer, primary_key=True, index=True)
        name = Column(String, index=True)
        description = Column(String)
    
  4. FastAPI CRUD 엔드포인트 작성: 다음으로 FastAPI를 사용하여 CRUD 기능을 제공하는 API 엔드포인트를 만듭니다.

    from fastapi import FastAPI, Depends
    from sqlalchemy.orm import Session
    
    app = FastAPI()
    
    @app.post("/items/")
    def create_item(item: Item, db: Session = Depends(get_db)):
        db.add(item)
        db.commit()
        db.refresh(item)
        return item
    

    위의 코드는 새로운 아이템을 생성하는 API 엔드포인트를 설정합니다. 필요한 경우 나머지 CRUD 엔드포인트도 비슷한 방식으로 구현할 수 있습니다.

  5. MySQL로의 변경: SQLite에서 MySQL로 전환하려면 데이터베이스 URL을 변경하고 MySQL 클라이언트 라이브러리를 설치합니다.

    pip install mysql-connector-python
    

    MySQL 데이터베이스에 접속하기 위해 데이터베이스 URL을 다음과 같이 변경합니다:

    DATABASE_URL = "mysql+mysqlconnector://user:password@localhost/dbname"
    

    이렇게 하면 동일한 코드 구조를 유지하면서 SQLite와 MySQL을 사용하는 API 구현이 가능합니다.

요약

이 장에서는 SQLite와 MySQL의 개념을 간단히 소개하고, FastAPI를 통해 CRUD API를 구현하는 방법을 배웠습니다. 실습을 통해 데이터베이스의 연동 방법을 체험할 수 있었기를 바랍니다.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.