Peewee는 Python에서 사용할 수 있는 간단하고 가벼운 ORM(Object-Relational Mapping) 라이브러리입니다. 기본적으로는 관계형 데이터베이스와 연동하여 데이터를 다루지만, Peewee를 사용하여 NoSQL 데이터베이스와도 연동할 수 있습니다. 이번 글에서는 Peewee를 사용하여 NoSQL 데이터베이스와 연동하는 방법에 대해 알아보겠습니다.
NoSQL 데이터베이스 선택
Peewee는 다양한 NoSQL 데이터베이스와 연동할 수 있습니다. 그 중에서도 가장 널리 사용되는 NoSQL 데이터베이스인 MongoDB를 예시로 사용하겠습니다. MongoDB는 document-based NoSQL 데이터베이스로, JSON 형태의 문서를 저장하고 쿼리할 수 있습니다.
프로젝트 설정
Peewee와 MongoDB를 연동하기 위해, pymongo 라이브러리를 설치해야 합니다. 아래 명령을 사용하여 pymongo를 설치할 수 있습니다.
pip install pymongo
또한, Peewee의 pymongo 확장 패키지인 peewee-asyncmongo를 설치해야 합니다. 아래 명령을 사용하여 peewee-asyncmongo를 설치할 수 있습니다.
pip install peewee-asyncmongo
Peewee 모델 정의
Peewee를 사용하여 NoSQL 데이터베이스와 연동하기 위해, 모델 클래스를 정의해야 합니다. 아래는 Peewee 모델 클래스의 예시입니다.
from peewee import *
from peewee_async import Manager
class User(Model):
name = CharField()
age = IntegerField()
class Meta:
database = Manager()
데이터베이스 연결
먼저, MongoDB에 연결해야 합니다. Peewee에서는 연결 정보를 담은 Connection
객체를 생성하고, 이를 MongoDatabase
에 전달하여 데이터베이스에 연결합니다. 아래는 MongoDB에 연결하는 예시 코드입니다.
from peewee_async import PooledMySQLDatabase
database = PooledMySQLDatabase(
'my_database',
host='localhost',
port=3306,
user='my_user',
password='my_password'
)
database.connect()
데이터 CRUD 작업
Peewee를 사용하여 NoSQL 데이터베이스와 CRUD 작업(생성, 조회, 갱신, 삭제)을 수행할 수 있습니다. 아래는 간단한 CRUD 작업의 예시 코드입니다.
생성(Create)
user = User(name='John', age=30)
user.save()
조회(Read)
query = User.select().where(User.age > 25)
users = query.execute()
갱신(Update)
user = User.get(User.name == 'John')
user.age = 35
user.save()
삭제(Delete)
user = User.get(User.name == 'John')
user.delete_instance()
결론
Peewee를 사용하여 NoSQL 데이터베이스와 연동하는 방법에 대해 알아보았습니다. Peewee를 통해 간편하게 Python 애플리케이션과 NoSQL 데이터베이스를 연결하여 데이터를 다룰 수 있습니다.