์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

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 ๋„๊ตฌ | | ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  | ํ”„๋ก ํŠธ์™€ ๋ฐ์ดํ„ฐ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ๊ผญ ํ•„์š”ํ•จ |

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: