PangLog
PangLog_k.k
PangLog
전체 방문자
오늘
어제
  • Category (77)
    • 💾기록 (2)
      • 📔기록 (2)
    • 🔧알고리즘 (10)
    • ⚡AI (17)
      • ∃Mathematics (11)
      • AI (5)
      • 논문 (1)
    • 👨‍💻Data Science (2)
    • 📚CS (4)
      • 📡컴퓨터 네트워크 (3)
      • 💾DB (0)
      • ⚙OS (1)
    • ⌨Programming (15)
      • Python (6)
      • Pytorch (3)
      • FastAPI (0)
      • Java (1)
      • Spring (3)
      • Elastic Search (2)
    • 💻 (23)
      • Git (9)
      • Issue sol (2)
      • Linux (2)
      • etc (7)
      • Web (2)
      • Docker (1)
    • 📰칼럼 (4)
      • IT (4)
      • 그 외 (0)
    • Review (0)

블로그 메뉴

  • 홈
  • Github

인기 글

최근 글

태그

  • inference
  • cv2
  • 11660
  • 옹알이(1)
  • 쥬피터랩
  • 깃허브
  • 내부단편화
  • 프로그래머스
  • 인퍼런스
  • 파이참
  • 백준허브
  • SWEA
  • 백준
  • 백준허브 이슈
  • 자바
  • Jupyter Lab
  • Java
  • 프로그래머스 체육복
  • cors
  • 5215
  • pycham
  • 탐색적 데이터 분석
  • K-디지털트레이닝 해커톤
  • 백준허브 에러
  • 알고리즘
  • 파이썬
  • 외부단편화
  • URL URI 차이
  • Python
  • BOJ
hELLO · Designed By 정상우.
PangLog

PangLog_k.k

⌨Programming/Java

직렬화와 마셜링

2023. 11. 9. 14:02

직렬화(Serializable)

  • 자바에서 사용되는 데이터들을 다른 자바 시스템에서도 사용할 수 있도록 Binary형식이나 byte stream형태로 바꾸는 작업
  • 직렬화의 대상은 객체의 값이나 컨텐츠이다, 클래스의 정의는 포함되지 않는다(메서드 같은 정보)
  • JVM위의 heap이나 stack메모리에 있는 데이터들을 직렬화를 통해 변환하고 DB같은 저장소에 저장하거나 다른 컴퓨터의 자바 시스템에서 가져가 데이터를 역직렬화를 통해 사용

왜 하는데?

  1. 예를 들어 내 컴퓨터에 0x00A라는 주소를 가진 A객체가 있을 때 이 주소값만을 그대로 다른 컴퓨터로 보낸다면 이는 동일한 A객체를 가르키지 않을 것이다. 때문에 실제로 주소값을 타고 넘어가 실제값을 byte stream으로 변환하여 넘기기 위해 사용한다.
  2. 자바를 예를 들면, 여러가지 레퍼런스타입을 외부로 보낼 수 있다. 기본형, array등은 JSON으로 쉽게 넘길 수 있지만 자바만의 컬렉션, 클래스, 인터페이스, 커스텀 타입일 경우 데이터를 매칭시키는 추가 작업(Parsing)이 필요하다.

마샬링(Marshalling)

  • 코드베이스를 포함하여 객체를 직렬화 한다.
코드베이스란?

객체의 구현을 어디서 찾을 수 있는지에 대한 정보.
다른 프로그램에게 객체를 전달했을 때 이 객체를 다시 사용하러면 데이터 타입에 관한 정보가 있어야한다. 이 때 코드베이스는 이 데이터가 어디에 있는지 알려주는 정보를 뜻한다.

참고자료

  • https://hyesun03.github.io/2019/09/08/marshalling-vs-serialization/
  • https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%A7%81%EB%A0%AC%ED%99%94Serializable-%EC%99%84%EB%B2%BD-%EB%A7%88%EC%8A%A4%ED%84%B0%ED%95%98%EA%B8%B0
  • https://donghyeon.dev/2020/11/07/%EC%A7%81%EB%A0%AC%ED%99%94%EC%99%80-%EB%A7%88%EC%83%AC%EB%A7%81/

 

반응형
저작자표시 비영리 변경금지 (새창열림)
    PangLog
    PangLog

    티스토리툴바