본문 바로가기
Apache Avro

직렬화와 역직렬화

by 자는게젤루좋아 2024. 9. 21.

직렬화(Serialization)

  • 정의: 직렬화는 프로그램에서 사용되는 데이터 구조나 객체를 파일, 메모리, 네트워크 등에서 쉽게 저장하거나 전송할 수 있는 형식으로 변환하는 과정입니다.
  • 예시: 복잡한 객체를 바이너리(binary)나 텍스트 형식(JSON, XML 등)으로 변환하여 저장하거나 전송합니다.
    • 네트워크를 통해 객체를 전송할 때(예: 웹 서비스에서 JSON 형식으로 데이터 전송)
    • 객체를 파일에 저장할 때(예: 데이터베이스에 객체를 저장)
    • 메모리 상의 객체를 저장하여 나중에 다시 사용할 때(예: 프로그램 종료 후에도 객체 상태 유지)

역직렬화(Deserialization)

  • 정의: 역직렬화는 직렬화된 데이터를 다시 원래의 객체나 데이터 구조로 복원하는 과정입니다.
  • 예시: 전송된 JSON 데이터를 다시 프로그램 내에서 사용할 수 있는 객체로 변환합니다.

직렬화와 역직렬화의 예

  1. JSON 직렬화: 객체를 JSON 문자열로 변환하여 저장하거나 전송.
  2. JSON 역직렬화: JSON 문자열을 다시 객체로 변환하여 프로그램에서 사용.
  3. NIFI에서 JSON형태의 schema + csv 파일 -> avro type의 객체로 역직렬화 -> parquet 포맷으로 직렬화

 

댓글