본문 바로가기
CS

직렬화

by 크라00 2025. 2. 24.

직렬화(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