마샬마로우(Marshmallow)는 파이썬에서 직렬화와 역직렬화를 위한 라이브러리입니다. 데이터베이스 스키마를 관리할 때 유용하게 사용될 수 있습니다. 이번 글에서는 마샬마로우를 사용하여 데이터베이스 스키마를 정의하고 관리하는 방법을 알아보겠습니다.
1. Marshmallow 설치하기
마샬마로우를 사용하기 위해 먼저 패키지를 설치해야 합니다. 다음 명령을 사용하여 마샬마로우를 설치할 수 있습니다.
pip install marshmallow
2. 스키마 정의하기
데이터베이스 스키마를 정의하기 위해 마샬마로우의 Schema
클래스를 상속한 클래스를 작성해야 합니다. 다음은 UserSchema
라는 클래스를 예시로 들어보겠습니다.
from marshmallow import Schema, fields
class UserSchema(Schema):
id = fields.Int(dump_only=True)
name = fields.Str()
email = fields.Email()
id
필드는 dump_only=True
로 설정하여 직렬화할 때만 사용되도록 설정하였습니다. name
필드는 문자열이며, email
필드는 이메일 형식을 가져야 합니다.
3. 데이터 직렬화하기
스키마를 정의한 후에는 데이터를 직렬화하여 JSON 형태로 변환할 수 있습니다. 다음은 UserSchema
를 사용하여 사용자 데이터를 직렬화하는 예제입니다.
user_data = {
'id': 1,
'name': 'John Doe',
'email': 'john@example.com'
}
user_schema = UserSchema()
result = user_schema.dump(user_data)
print(result)
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
{
'id': 1,
'name': 'John Doe',
'email': 'john@example.com'
}
4. 데이터 역직렬화하기
데이터베이스로부터 데이터를 가져올 때는 JSON 형태로 저장된 데이터를 역직렬화하여 사용해야 합니다. 다음은 UserSchema
를 사용하여 JSON 데이터를 역직렬화하는 예제입니다.
user_json = '''
{
"id": 1,
"name": "John Doe",
"email": "john@example.com"
}
'''
user_schema = UserSchema()
result = user_schema.load(user_json)
print(result)
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
{
'id': 1,
'name': 'John Doe',
'email': 'john@example.com'
}
마무리
마샬마로우는 데이터베이스 스키마 관리에 유용한 라이브러리입니다. 이번 글에서는 마샬마로우를 사용하여 데이터베이스 스키마를 정의하고 직렬화 및 역직렬화하는 방법을 알아보았습니다. 마샬마로우를 사용하여 데이터베이스 스키마 관리를 쉽게 할 수 있으니, 실제 프로젝트에서 활용해보시기 바랍니다.