데이터의 구조와 상태를 해치지 않고 다른 컴퓨팅 환경에 저장하고 재구성이 가능한 포맷으로 변환하는 과정
파이썬의 클래스를 선언해서 데이터 구조를 표현했다고 가정
이 클래스 데이터는 파이썬만 이해할 수 있고 다른 언어는 이해하지 못한다.
이런 문제를 해결하기 위해서 데이터 구조를 표현하는 통일된 규칙(JSON과 XML)을 사용한다.
이때 데이터 구조를 표현하는 통일된 규칙으로 변환하는 과정을 직렬화(Serializer) 라고 한다!
데이터를 저급(Low Level)하게 변환하는 과정이라고도 부른다.
클래스는 인간이 데이터 구조를 쉽게 표현하기 위해 만든 인간 친화적인 데이터 구조이다.
기계어(0101010, 이진수)-> bytes -> char, string -> class, OOP
인간 친화적인 언어 : 고급 언어
컴퓨터 친화적인 언어 : 저급 언어
(품질의 정도를 의미하는 것은 아니다!)
# 클래스
class User:
def __init__(self, user_id, name, age):
self.user_id = user_id
self.name = name
self.age = age
# 딕셔너리로 변환하는 메서드
def to_dict(self):
return {
"user_id": self.user_id,
"name": self.name,
"age": self.age
}
# 클래스 객체 생성
user = User(user_id=1, name="John Doe", age=30)
user_dict = user.to_dict()
user_json = json.dumps(user_dict)
user_bytes = user_json.encode('utf-8')
딕셔너리: {'user_id': 1, 'name': 'John Doe', 'age': 30}
JSON 문자열: {"user_id": 1, "name": "John Doe", "age": 30}
bytes: b'{"user_id": 1, "name": "John Doe", "age": 30}'
복원된 딕셔너리: {'user_id': 1, 'name': 'John Doe', 'age': 30}