직렬화(Serialization)란?
직렬화(Serialization)는 객체(Object)나 데이터 구조를 저장하거나 전송할 수 있도록 바이트 형태(혹은 특정 포맷)로 변환하는 과정입니다.
반대로, 직렬화된 데이터를 다시 원래 객체 형태로 변환하는 과정을 **역직렬화(Deserialization)**라고 합니다.
직렬화가 필요한 이유
1. 데이터 저장
• 객체를 파일, 데이터베이스 등에 저장할 때 직렬화하여 보관할 수 있음.
2. 네트워크 전송
• 클라이언트와 서버 간 데이터를 전송할 때 직렬화된 데이터를 사용하면 더 쉽게 전송할 수 있음.
3. 프로세스 간 통신(IPC)
• 서로 다른 프로세스나 시스템에서 데이터를 주고받을 때 직렬화된 데이터를 활용.
직렬화가 사용되는 곳
• 웹 개발: JSON, XML을 사용하여 API 데이터 전송 (REST, GraphQL)
• 데이터베이스: BSON(MongoDB), Avro(Hadoop) 등으로 저장
• 네트워크 통신: RPC(Remote Procedure Call), gRPC
• 파일 저장: 로그 파일, 설정 파일, 캐싱
• 게임 개발: 객체 상태 저장/복원 (Save & Load 기능)
✅ 직렬화는 데이터를 저장하거나 전송하기 위한 필수 개념
✅ JSON, Protobuf, MessagePack 등 다양한 포맷이 존재
✅ 보안 및 성능 이슈를 고려하여 적절한 직렬화 방식 선택
'CS' 카테고리의 다른 글
프론트엔드에서 네트워크 중복 호출 방지 (0) | 2025.04.02 |
---|---|
Axios CancelToken (0) | 2025.04.02 |
React server component (0) | 2025.02.24 |
[React Native] Pressable 컴포넌트 (1) | 2025.01.31 |
[React Native] Metro Bundler (2) | 2024.12.15 |