[python] Marshmallow 모듈의 개요와 사용법
Marshmallow는 Python의 직렬화와 역직렬화를 위한 유연하고 강력한 라이브러리입니다. 이번 블로그 포스트에서는 Marshmallow의 개요와 사용법에 대해 알아보겠습니다.
개요
Marshmallow는 데이터 직렬화 및 역직렬화를 위한 강력한 도구로써, JSON, HTTP 요청 파라미터, ORM 모델 등과 같은 Python 객체를 변환하는 기능을 제공합니다. 이를 통해 데이터 모델을 유지하면서 데이터의 형식을 쉽게 변환하고 검증할 수 있습니다.
Marshmallow는 다음과 같은 주요 기능을 제공합니다:
- 객체의 필드를 직렬화하고 역직렬화하는 기능
- 데이터 유효성 검사를 위한 유효성 검증기(validation) 지원
- 중첩된 객체의 직렬화와 역직렬화 지원
- 데이터 직렬화를 위한 출력 포맷 지원(JSON, YAML 등)
사용법
- Marshmallow 설치
Marshmallow를 사용하기 위해서는 먼저 패키지를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다:
pip install marshmallow
- Schema 정의
Marshmallow는 직렬화 및 역직렬화를 위한 스키마(Schema)를 사용합니다. 스키마는 Python 클래스로 정의되며 필드의 구성 및 유효성 검사 규칙을 정의합니다. 아래는 간단한 스키마 예제입니다:
from marshmallow import Schema, fields
class UserSchema(Schema):
name = fields.String(required=True)
email = fields.Email(required=True)
age = fields.Integer(required=True)
- 데이터 직렬화
스키마를 사용하여 Python 객체를 직렬화할 수 있습니다. 아래는 User 객체를 직렬화하는 예제입니다:
user = User(name='John Doe', email='johndoe@example.com', age=25)
user_schema = UserSchema()
# 데이터 직렬화
result = user_schema.dump(user)
- 데이터 역직렬화
스키마를 사용하여 데이터를 역직렬화할 수 있습니다. 아래는 직렬화된 데이터를 역직렬화하는 예제입니다:
data = {
'name': 'John Doe',
'email': 'johndoe@example.com',
'age': 25
}
user_schema = UserSchema()
# 데이터 역직렬화
result = user_schema.load(data)
마무리
Marshmallow는 Python 객체의 직렬화 및 역직렬화를 위한 유용한 도구입니다. 유연하고 강력한 기능을 제공하며 사용하기 쉬운 API를 제공합니다. 이번 포스트에서는 Marshmallow의 개요와 간단한 사용법을 살펴보았습니다. 자세한 내용은 공식 문서를 참조하시기 바랍니다.