[파이썬] 데이터베이스 연동 라이브러리 소개

데이터베이스 연동은 소프트웨어 개발에서 중요한 부분입니다. 데이터베이스는 애플리케이션에서 사용하는 데이터를 관리하고 저장하는데 사용되며, 이를 효과적으로 관리하기 위해서는 데이터베이스와의 연동이 필수적입니다. 이번 포스트에서는 파이썬에서 데이터베이스 연동을 도와주는 몇 가지 인기 있는 라이브러리를 소개하겠습니다.

1. SQLAlchemy

SQLAlchemy는 파이썬에서 가장 인기 있는 ORM(Object-Relational Mapping) 라이브러리 중 하나입니다. ORM은 객체와 데이터베이스 간의 매핑을 자동으로 처리해주는 도구로, SQL을 직접 작성하지 않아도 데이터베이스를 쉽게 조작할 수 있습니다. SQLAlchemy는 다양한 데이터베이스 시스템과 호환되며, 강력한 쿼리 기능과 데이터베이스 스키마를 관리하는 기능을 제공합니다.

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite:///mydatabase.db', echo=True)
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

Base.metadata.create_all(engine)

# 데이터 추가
user = User(name="John", age=25)
session.add(user)
session.commit()

# 데이터 조회
users = session.query(User).all()
for user in users:
    print(user.name, user.age)

2. psycopg2

psycopg2는 파이썬에서 PostgreSQL 데이터베이스를 연동하기 위한 라이브러리입니다. PostgreSQL은 가장 강력한 오픈 소스 데이터베이스 시스템 중 하나로, psycopg2를 사용하면 파이썬 애플리케이션과 간편하게 연동할 수 있습니다.

import psycopg2

conn = psycopg2.connect(database="mydatabase", user="myuser", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()

# 쿼리 실행
cur.execute("SELECT * FROM mytable")
rows = cur.fetchall()
for row in rows:
    print(row)

# 데이터 추가
cur.execute("INSERT INTO mytable (name, age) VALUES (%s, %s)", ("John", 25))
conn.commit()

cur.close()
conn.close()

3. pymongo

pymongo는 MongoDB와 파이썬 애플리케이션을 연동하기 위한 라이브러리입니다. MongoDB는 유연하고 확장 가능한 NoSQL 데이터베이스 시스템으로, pymongo를 사용하여 파이썬에서 MongoDB에 접근할 수 있습니다.

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017/')
db = client['mydatabase']
collection = db['mycollection']

# 데이터 추가
data = {"name": "John", "age": 25}
collection.insert_one(data)

# 데이터 조회
data = collection.find({})
for doc in data:
    print(doc)

client.close()

위에서 소개한 라이브러리들은 각각 다른 데이터베이스 시스템을 연동하기 위한 도구로, 파이썬에서 데이터베이스와 쉽게 상호작용할 수 있도록 도와줍니다. 프로젝트의 요구사항에 맞는 라이브러리를 선택하고 활용하여 데이터베이스 연동을 효과적으로 처리해보세요.