[python] 파이썬에서 데이터베이스 연동 시 ORM 사용하기

파이썬은 다양한 데이터베이스와의 연동을 지원하며, ORM(Object-Relational Mapping)을 통해 데이터베이스를 쉽게 다룰 수 있습니다. 이번 포스트에서는 파이썬에서 ORM을 이용하여 데이터베이스를 연동하는 방법에 대해 알아보겠습니다.

ORM이란?

ORM은 객체와 관계형 데이터베이스의 데이터를 매핑해주는 도구입니다. ORM을 사용하면 SQL 쿼리를 직접 작성하지 않고도 객체지향 프로그래밍 언어에서 데이터베이스를 다룰 수 있습니다. 파이썬에서는 SQLAlchemy, Django ORM 등 여러 ORM 라이브러리를 제공하고 있습니다.

SQLAlchemy를 이용한 ORM 연동 예시

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

# 데이터베이스 연결
engine = create_engine('sqlite:///example.db', echo=True)

# 클래스 선언
Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

# 테이블 생성
Base.metadata.create_all(engine)

# 세션 생성
Session = sessionmaker(bind=engine)
session = Session()

# 데이터 추가
new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()

위의 예시는 SQLAlchemy를 이용하여 SQLite 데이터베이스와 연동하고, User 클래스를 통해 데이터를 추가하는 방법을 보여줍니다.

Django ORM을 이용한 ORM 연동 예시

Django에서는 ORM을 기본으로 제공하며, 모델 클래스를 정의하고 데이터베이스와의 연동을 쉽게 할 수 있습니다.

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()

# 데이터 추가
user = User(name='Bob', age=30)
user.save()

위의 예시는 Django의 ORM을 이용하여 User 모델을 정의하고, 데이터를 추가하는 방법을 보여줍니다.

마무리

이렇게 ORM을 사용하면 SQL을 직접 다루지 않고도 객체지향적으로 데이터베이스를 다룰 수 있습니다. 각각의 ORM 라이브러리마다 조금씩 문법이 다를 수 있으니 해당 문서를 참고하여 사용하는 것이 좋습니다.

더 많은 정보를 원하신다면 아래의 참고 문헌을 참고하시기 바랍니다.

참고 문헌