Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
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
Archives
Today
Total
관리 메뉴

hwooo

직렬화, 역직렬화 본문

Study/CS

직렬화, 역직렬화

hwooo 2025. 9. 15. 17:43

직렬화

  • 객체를 저장/전송 가능한 상태로 변환하는 것을 뜻함
  • 외부의 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술

ex. 사용 언어의 코드 내 객체/해시 테이블/딕셔너리 → JSON으로 변환

JAVA 직렬화가 필요한 이유?

Java에서의 직렬화는 객체를 Binary 형태로 변환하는 것을 뜻함.

disk에 객체를 저장하거나 컴퓨터 네트워크 상으로 객체를 전송하고 싶다면 Binary 형태로 바꿔야지만 가능하다. 객체 그 자체는 disk나 네트워크 장비가 이해할 수 없을 것이다.

  • 직렬화 예시
    • CSV, XML, JSON 형태의 직렬화
      • 사람이 읽을 수 있다
      • 저장 공간의 효율성이 상대적으로 떨어지고, 파싱 하는 시간이 오래 걸린다
      • 주로 데이터의 양이 적을 때 사용한다
    • Binary 직렬화
      • 사람이 읽을 수 없다
      • 저장 공간의 효율성이 상대적으로 높고, 파싱 하는 시간이 빠르다
      • 주로 데이터의 양이 많을 때 사용한다
      • 모든 시스템에서 사용 가능하다
    • java 직렬화
      • java 시스템 간의 데이터 교환이 필요할 때 사용한다
      • Serializable 인터페이스를 구현함으로써 사용가능하다

사용처

  • 네트워크 통신
    • 객체를 직렬화하여 네트워크를 통해 전송하고, 수신 측에서 해당 객체를 역직렬화하여 사용
  • 데이터 저장
    • 객체의 상태를 파일 시스템이나 데이터베이스에 저장할 때 사용
    • 직렬화를 통해 객체를 바이트 스트림으로 변환
  • 캐싱
    • 캐싱된 데이터를 직렬화하여 효율적으로 저장, 필요할 때 빠르게 역직렬화하여 사용

역직렬화

  • 특정 포맷 상태의 데이터를 다시 객체로 변환하는 것

ex. JSON → 객체/해시 테이블/딕셔너리 등으로 변환

 


참고

인프런 큰돌 - [CS 지식의 정석]

'Study > CS' 카테고리의 다른 글

XML  (0) 2025.09.17
JSON (Java-Script Object Notation)  (0) 2025.09.15