위키득계정 ↗
기술

Marshmallow

Marshmallow기술
대상 언어
Python
주요 역할
검증과 객체 직렬화
규칙 정의
Schema와 필드
프레임워크 결합
특정 ORM에 독립적
Marshmallow는 Python 객체와 기본 자료형 사이의 변환 및 입력 검증을 위한 라이브러리다. 스키마에 필드를 정의해 자료를 읽거나 내보내며 특정 ORM이나 웹 프레임워크에 종속되지 않는다.

필드로 정의하는 스키마

스키마에 문자열과 날짜 및 중첩 객체 등의 필드를 선언해 자료 구조를 표현한다. 각 필드의 구성으로 객체와 기본 자료형 사이의 변환을 연결한다. 응용의 자료 모델과 외부 표현을 스키마에서 대응시키는 방식이다.

입력의 검증과 해석

스키마는 입력 자료를 검증하고 응용에서 사용할 자료로 역직렬화하는 데 쓰인다. 외부에서 들어온 값이 지정한 규칙에 맞는지 확인하는 계층이다. 객체를 밖으로 내보내는 방향과 입력을 읽는 방향을 함께 다룬다.

기본 자료형과 전송 형식

응용 객체를 기본 Python 자료형으로 변환해 내보낸다. 그 결과는 JSON 같은 표준 표현으로 인코딩해 HTTP API 등에서 사용할 수 있다. 객체의 변환과 전송할 파일이나 메시지의 인코딩을 구분해 구성한다.

관련 문서

Cerberus / Pydantic / Msgspec / Cattrs / Python / JSON