Serializer의 역할

heeyoung_1023·2026년 3월 9일

Serializer의 역할


핵심 한 줄 요약

Serializer = Django ↔ 외부(프론트/앱) 사이의 데이터 변환기 + 검증기

역할 1️⃣ 직렬화 (Python → JSON)

# DB에서 꺼낸 Python 객체
todo = Todo.objects.get(pk=1)

# Serializer로 JSON 변환
serializer = TodoSerializer(todo)
print(serializer.data)

# 결과
{
    "id": 1,
    "title": "공부하기",
    "complete": false,
    "created_at": "2024-01-01"
}

DB 데이터를 프론트엔드가 읽을 수 있는 JSON 으로 변환


역할 2️⃣ 역직렬화 (JSON → Python)

# 프론트엔드에서 보낸 JSON 데이터
data = {"title": "운동하기", "complete": False}

# Serializer로 Python 객체로 변환
serializer = TodoSerializer(data=data)
serializer.save()  # DB에 저장

프론트엔드가 보낸 JSON을 DB에 저장할 수 있는 형태로 변환


역할 3️⃣ 데이터 검증 (Validation)

data = {"title": ""}  # 빈 값 전송

serializer = TodoSerializer(data=data)

if serializer.is_valid():     # 유효성 검사
    serializer.save()
else:
    print(serializer.errors)  # {"title": ["필수 항목입니다."]}

잘못된 데이터가 DB에 저장되지 않도록 검증


전체 흐름도

[ 프론트엔드 / 앱 ]
        ↕  JSON
[ Serializer ]  ← 여기서 변환 + 검증
        ↕  Python 객체
[    DB (모델)   ]

역할 총정리

역할방향설명
직렬화DB → JSON프론트에 데이터 전달
역직렬화JSON → DB받은 데이터 저장
검증JSON 입력잘못된 데이터 차단

쉬운 비유

Serializer = 공항 입출국 심사대

출국 (직렬화)   : 한국어 데이터 → 영어(JSON)로 번역해서 내보냄
입국 (역직렬화) : 영어(JSON) → 한국어 데이터로 번역해서 들여옴
심사 (검증)     : 불량 데이터는 통과 ❌
profile
개발언어를 배우는 과정 기록

0개의 댓글