본문 바로가기

개발/장고

[DRF] Serializers - 개요

반응형
serializers_개요

[DRF] Serializers - 개요

serializers의 유용성을 넓히는 것은 우리가 해결하고자 하는 것입니다. 그러나 간단한 문제가 아닙니다 그리고 이것은 좀 심각한 디자인 작업이 필요합니다— Russell Keith-Magee, Django users group

Serializers는 JSON, XML이나 다른 컨텐트 타입으로 쉽게 렌더링 될 수 있는 파이썬 네이티브 데이터 타입으로 변환될 수 있는 쿼리셋과 모델 인스턴스 같은 복잡한 데이터를 허용한다. Serializers는 들어오는 데이터에 대해서 유효성 검사를 한 이후에 파싱된 데이터를 복잡한 형식으로 다시 변환 하는 것을 허용하면서, 역직렬화 또한 제공한다

이 serializers 는 장고의 FormModelForm 클래스들과 매우 비슷하게 동작한다. 우리는 Serializer class 뿐만 아니라 ModelSerializer 클래스를 제공한다. Serializer class는 응답 값을 다루는 제네릭하고 파워풀한 방법을 제공한다. ModelSerializer class는 모델 인스턴스와 querysets을 다루는 serializers를 생성하는데 유용한 shortcut을 제공한다.


내 마음대로 해설

위 문장을 처음 번역하면서 느낀점은 Serializers가 장점이 많다는 얘기 인데.. 굉장히 둘러서 표현한 것 같다 였다. 그래서 적힌 문장 중에 과하게 표현되어있는 문장을 좀 간단하게 말해보려고 한다.

  1. Serializers는 JSON, XML이나 다른 컨텐트 타입으로 쉽게 렌더링 될 수 있는 파이썬 네이티브 데이터 타입으로 쿼리셋과 모델 인스턴스 같은 복잡한 데이터가 변환되는 것을 허용한다.

    -> Queryset, Model instance를 파이썬 네이티브 데이터 타입으로 변경할 수 있다.

  1. Serializers는 들어오는 데이터에 대해서 유효성 검사를 한 이후에 파싱된 데이터를 복잡한 형식으로 다시 변환 하는 것을 허용하는 역직렬화 또한 제공한다

    -> Serializers는 역직렬화를 제공한다.


결론

  1. Serializers는 직렬화와 역직렬화 기능을 제공한다.
  1. Form, ModelForm과 매우 비슷하게 동작한다.
  1. 대표적으로 SerializerModelSerializer 가 있는데 매우 좋다
반응형