hwooo
직렬화, 역직렬화 본문
직렬화
- 객체를 저장/전송 가능한 상태로 변환하는 것을 뜻함
- 외부의 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술
ex. 사용 언어의 코드 내 객체/해시 테이블/딕셔너리 → JSON으로 변환
JAVA 직렬화가 필요한 이유?
Java에서의 직렬화는 객체를 Binary 형태로 변환하는 것을 뜻함.
disk에 객체를 저장하거나 컴퓨터 네트워크 상으로 객체를 전송하고 싶다면 Binary 형태로 바꿔야지만 가능하다. 객체 그 자체는 disk나 네트워크 장비가 이해할 수 없을 것이다.
- 직렬화 예시
- CSV, XML, JSON 형태의 직렬화
- 사람이 읽을 수 있다
- 저장 공간의 효율성이 상대적으로 떨어지고, 파싱 하는 시간이 오래 걸린다
- 주로 데이터의 양이 적을 때 사용한다
- Binary 직렬화
- 사람이 읽을 수 없다
- 저장 공간의 효율성이 상대적으로 높고, 파싱 하는 시간이 빠르다
- 주로 데이터의 양이 많을 때 사용한다
- 모든 시스템에서 사용 가능하다
- java 직렬화
- java 시스템 간의 데이터 교환이 필요할 때 사용한다
- Serializable 인터페이스를 구현함으로써 사용가능하다
- CSV, XML, JSON 형태의 직렬화
사용처
- 네트워크 통신
- 객체를 직렬화하여 네트워크를 통해 전송하고, 수신 측에서 해당 객체를 역직렬화하여 사용
- 데이터 저장
- 객체의 상태를 파일 시스템이나 데이터베이스에 저장할 때 사용
- 직렬화를 통해 객체를 바이트 스트림으로 변환
- 캐싱
- 캐싱된 데이터를 직렬화하여 효율적으로 저장, 필요할 때 빠르게 역직렬화하여 사용
역직렬화
- 특정 포맷 상태의 데이터를 다시 객체로 변환하는 것
ex. JSON → 객체/해시 테이블/딕셔너리 등으로 변환
참고
인프런 큰돌 - [CS 지식의 정석]
'Study > CS' 카테고리의 다른 글
| XML (0) | 2025.09.17 |
|---|---|
| JSON (Java-Script Object Notation) (0) | 2025.09.15 |