직렬화(serialization)

Joseph·2024년 1월 24일

정의

객체나 데이터 구조를 네트워크나 저장소(예, 배열 버퍼 또는 파일 형식)를 통한
전송에 적합한 형식으로 변환하는 프로세스입니다.

조금 더 간단히 말하면 복잡한 데이터 구조(객체 등)을
연속적인 데이터 형식(문자열 등)으로 변환화는 과정입니다.

목적

주요 목적은 데이터를 표준화된 형식으로 변환하여
다른 시스템, 애플리케이션 또는 네트워크 환경에서도 사용할 수 있도록 하는 것.

웹개발에서의 직렬화

웹 개발의 관점에서 볼 때, 직렬화는
클라이언트(예: 웹 브라우저)서버 간의 데이터 교환을 용이하게 하는
중요한 역할을 합니다.

웹 애플리케이션에서 데이터는 보통 HTTP 요청을 통해 전송되며,
이 데이터는 직렬화 과정을 거쳐야 서로 다른 시스템 간에 효율적으로 전송될 수 있습니다.

웹에서 사용되는 가장 흔한 예시로
JSON(JavaScript Object Notation)과 XML(eXtensible Markup Language)이 있습니다.

JSON

JSON 직렬화

  • 데이터 구조나 객체를 -> JSON(JavaScript Object Notation) 형식의 문자열로 변환하는 과정
  • 표준적인 방법 : JSON.stringify()
  • 이렇게 생성된 JSON 문자열은 웹 API를 통해 전송하거나 파일로 저장할 수 있습니다.

JSON 역직렬화

  • JSON 형식의 문자열을 -> 원래의 데이터 구조나 객체로 변환하는 과정
  • 표준적인 방법 : JSON.parse()
  • 변환된 데이터 구조는 프로그램 내에서 사용할 수 있습니다.

다른 언어 예시

JAVA : Serializable 인터페이스를 사용하여 객체를 직렬화
Python : pickle 모듈 사용

참조 사이트 : https://developer.mozilla.org/ko/docs/Glossary/Serialization

profile
안녕하세요 프론트와 백 둘다 관심있는 웹개발자 이창무입니다.

0개의 댓글