[python] Marshmallow에서 제공하는 데이터 유효성 검증 라이브러리 활용하기

Marshmallow는 Python에서 사용되는 데이터 직렬화 및 유효성 검증 라이브러리입니다. 이 라이브러리를 사용하면 데이터 스키마를 정의하고, 이를 통해 데이터를 직렬화하고 유효성을 검증할 수 있습니다. 이번 포스트에서는 Marshmallow를 사용하여 데이터 유효성 검증을 어떻게 할 수 있는지 살펴보겠습니다.

Marshmallow 설치

Marshmallow를 사용하기 위해서는 먼저 설치해야 합니다. 다음 명령을 사용하여 Marshmallow를 설치할 수 있습니다:

pip install marshmallow

데이터 스키마 정의하기

Marshmallow를 사용하기 위해서는 먼저 데이터 스키마를 정의해야 합니다. 데이터 스키마는 데이터의 구조와 유효성 검증 규칙을 정의하는 역할을 합니다. 다음과 같이 데이터 스키마를 정의할 수 있습니다:

from marshmallow import Schema, fields

class UserSchema(Schema):
    username = fields.Str(required=True)
    email = fields.Email(required=True)
    age = fields.Int()

위의 예제에서는 UserSchema라는 데이터 스키마를 정의하였습니다. 이 데이터 스키마는 username, email, age라는 필드로 구성되어 있습니다. fields.Str, fields.Email, fields.Int와 같은 필드 타입은 데이터 유형에 따라 지정됩니다.

데이터 직렬화하기

Marshmallow를 사용하여 데이터를 직렬화하는 방법은 매우 간단합니다. 다음과 같이 데이터를 직렬화할 수 있습니다:

user_data = {
    'username': 'john',
    'email': 'john@example.com',
    'age': 25
}

user_schema = UserSchema()
serialized_data = user_schema.dump(user_data)

위의 예제에서는 UserSchema를 이용하여 user_data라는 딕셔너리를 직렬화한 후 serialized_data 변수에 저장하였습니다. dump 메서드를 사용하여 데이터를 직렬화합니다.

데이터 유효성 검증하기

Marshmallow의 강력한 기능 중 하나는 데이터 유효성 검증입니다. 데이터 스키마를 사용하여 데이터의 유효성을 검증할 수 있습니다. 다음 예제를 참고하세요:

user_data = {
    'username': 'john',
    'email': 'john@example.com',
    'age': 'twenty five'
}

user_schema = UserSchema()
errors = user_schema.validate(user_data)
if errors:
    print(errors)

위의 예제에서는 user_data라는 딕셔너리를 유효성 검사하기 위해 UserSchema를 사용하였습니다. validate 메서드를 사용하여 데이터의 유효성 검사 결과를 확인할 수 있으며, 유효하지 않은 데이터를 포함한 오류 메시지가 반환됩니다.

결론

Marshmallow는 Python에서 데이터 직렬화와 유효성 검증을 위한 간편하고 유연한 도구입니다. 이번 포스트에서는 Marshmallow를 사용하여 데이터 유효성 검증을 어떻게 수행하는지 간략히 알아보았습니다. Marshmallow의 공식 문서에서 자세한 내용을 확인하실 수 있습니다.