Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백엔드 인턴십
- 클래스
- Jar배포
- 토이프로젝트
- 컴프리헨션
- 코딩테스트
- numpy
- 함수
- 파이써닉코드
- 람다함수
- 조건연산
- 프로그래머스
- EC2
- Comprehension
- PYTHON
- 집계함수
- mock server
- cerbot
- API
- Django
- 행렬곱
- self
- sqlalchemy
- 프리온보딩
- todo project
- yaml
- Postman
- 파이썬
- RDS
- spring boot
Archives
- Today
- Total
build my life
[DRF] 직렬화란? 본문
728x90
DRF 내부에서는 필드명과 각 필드별 속성을 자동으로 지정해서 사용하고 있다.
그래서 필요할 경우 각 필드명과 속성을 정의해 줄 필요가 있다.
django Form 클래스는 HTML <form>을 다루기 위한 클래스
django Model 클래스는 DB table을 다루기 위한 클래스
위 두개의 클래스는 Serialization(직렬화), Validation(유효성검사) 기능을 제공하고 있음
두개의 기능을 제공하는 클래스가 DRF Serializer임
📌 Serializer가 무엇일까?
1. 메모리 내부 vs 외부
2. 복원시 정보 유지
"홍길동" -> 파일 , DB , Network에 보낼 수 있음
내부외 외부의 환경이 다르기 때문에 문자열 그대로 저장할 수 없음
바이트 스트링으로 변환한 다음 저장할 수 있음
99 -> 복원할 경우 -> "99"
int -> string integer 정보가 손실됨 -> 문제점
이러한 정보 손실 문제점이 클래스를 다룰때에도 발생함!
클래스 정보가 복원했을 때 그대로 저장되어야함
이런 정보를 저장할 때는 직렬화를 한 후 저장을 해야하며 다시 복원할 때는 역직렬화를 해야 복원이 가능하다.
class Person:
name = 'kim'
age = 25
Serialize -> 외부
내부 <- Deserialize
Serialize는 다양하고 복잡하게 할 수 있는데
Json으로 포맷하는 것이 가장 간단한 방법 중 하나이다.
허용되는 자료형 : Number, String, object, List, null
728x90
'Django' 카테고리의 다른 글
poetry를 사용하여 가상환경 만들기 (0) | 2023.11.02 |
---|---|
[DRF] Serializer 사용법 (0) | 2023.07.21 |
[DRF] Serializer : dict-like (0) | 2023.07.21 |
[DRF] View 관련 자료 - 공부법 (0) | 2023.07.17 |
[DRF] Router (0) | 2023.07.17 |