Django 내에서 RESTful api 서버를 구축하게끔 해주는 라이브러리입니다.
한 환경이 다른 환경과 데이터 객체를 주고받기위해선 동일한 데이터 구조를 갖추어야 하므로, 형식을 맞추어주는 절차가 필요합니다.
Serialization 즉 직렬화란 이 데이터 형식을 맞추어 주는 것을 의미합니다.
프로그래밍 언어끼리의 통신이라면 byte형으로, HTTP 통신이라면 주로 XML이나 JSON 형식으로 변환합니다.
+) Deserialization
Serializer로 변환하여 받은 문자열 형식의 데이터를 다시 원래의 데이터로 변환하는 것을 Deserializer(역직렬화) 라고 합니다.
Serializer는 Model(DB)에 저장되어있는 쿼리셋이나 모델인스턴스등의 데이터 객체를 API 통신에 적합한 JSON, XML와 같은 문자열 형식으로 변환시켜줍니다.
이를 통해 연속적이지 않던 데이터 객체를 변환하며, 변환한 데이터들을 파일형태로 저장합니다. 이렇게 Serializer을 통해 변환된 데이터들은 타 환경으로 전송할 수 있게 됩니다.
Serializer는 데이터를 변환한다는 점에서 form과 유사하지만 form 은 데이터를 HTML로 변환시켜주고 serilaizer은 JSON 문자열로 변환해준다는 차이점을 가집니다.
https://chrisjune.github.io/drf-02-json-serialization
https://velog.io/@ground4ekd/django-rest-framework
https://iwbtbitj.tistory.com/101#:~:text=json%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0,%EB%8B%A4%EC%96%91%ED%95%9C%20%EC%96%B8%EC%96%B4%EC%97%90%20%EC%82%AC%EC%9A%A9%EB%90%A9%EB%8B%88%EB%8B%A4.&text=json%EC%9D%80%20%EA%B0%9D%EC%B2%B4%20%EB%B3%80%EC%88%98%20%EB%B0%B0%EC%97%B4,%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4