๐ Serialize๋?
Serialize๋?
1๏ธโฃ ์ง๋ ฌํ(Serialization)๋?
์ง๋ ฌํ
๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ๊ฐ์ฒด๋ฅผ ์ ์กํ๊ฑฐ๋ ์ ์ฅํ๊ธฐ ์ํด ๋ฌธ์์ด์ด๋ ๋ฐ์ดํธ๋ก ๋ณํํ๋ ๊ณผ์ ์
๋๋ค.
์๋ฅผ ๋ค์ด, Python์ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ๊ฒ์ด ๋ํ์ ์ธ ์ง๋ ฌํ์
๋๋ค.
์ฆ, โ์ปดํจํฐ ๋ด๋ถ์ ๋ณต์กํ ๊ฐ์ฒด โ ๋คํธ์ํฌ๋ฅผ ํตํด ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํํ๋ก ๋ณํโํ๋ ์์ ์ ๋๋ค.
์ ํ์ํ๊ฐ?
- API ํต์ ์, Python ๊ฐ์ฒด๋ฅผ JSON ํ์์ผ๋ก ์๋ตํ๊ธฐ ์ํด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ฑฐ๋ ์ฝ์ ๋, ์ง๋ ฌํ/์ญ์ง๋ ฌํ ํ์
- ํ๋ก ํธ์๋์์ ๋ฐ์ดํฐ ๊ตํ ํ์ ํต์ผ
Python์์์ ์ง๋ ฌํ ์์
import json
data = {"name": "Tom", "age": 20}
json_data = json.dumps(data) # ํ์ด์ฌ dict โ JSON ๋ฌธ์์ด๋ก ๋ณํ
print(json_data) # {"name": "Tom", "age": 20}
2๏ธโฃ ์น ๊ฐ๋ฐ์์ ์ฌ์ฉํ๋ ์ํฉ
API๋ฅผ ๋ง๋ค๋ฉด, ๋ณดํต DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ํ๋ก ํธ์ ๋๊ฒจ์ค์ผ ํฉ๋๋ค. ์ด๋ Python ๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ฐ๊พธ๋ ์ญํ ์ ํ๋ ๊ฒ์ด Serializer์ ๋๋ค.
3๏ธโฃ Django REST Framework์์์ Serializer๋?
Django์์๋ ์ง์ JSON์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ ์๋๋ผ Serializer๋ผ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ ์๋์ผ๋ก ๋ณํ
from rest_framework import serializers
class PostSerializer(serializers.Serializer):
title = serializers.CharField()
content = serializers.CharField()
# ๊ฒ์๊ธ(Post)์ title๊ณผ content๋ฅผ JSON์ผ๋ก ์ง๋ ฌํํด์ฃผ๋ ์ญํ
ํต์ฌ
| ๊ฐ๋ | ์ค๋ช | | โโโ- | โโโโโโโโ | | ์ง๋ ฌํ | ํ์ด์ฌ ๊ฐ์ฒด โ ๋ฌธ์์ด(์: JSON) ๋ณํ | | ์ญ์ง๋ ฌํ | ๋ฌธ์์ด(JSON) โ ํ์ด์ฌ ๊ฐ์ฒด๋ก ๋ณํ | | Serializer | ์ด ๊ณผ์ ์ ์ฝ๊ฒ ๋์์ฃผ๋ Django ๋๊ตฌ | | ์ฌ์ฉํ๋ ์ด์ | ํ๋ก ํธ์ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ๊ผญ ํ์ํจ |