반응형
직렬화란 무엇인가?
자바 직렬화란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 Byte형태로 데이터를 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)을 아울러서 이야기합니다.
시스템적으로 이야기하자면 JVM(Java Virtual Machine 이하 JVM)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술과 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태를 같이 이야기합니다.
직렬화 실습
직렬화할 객체
직렬화 예제코드
실행 결과
rO0ABXNyABVjb20ubmF2ZXIudGVzdC5QZXJzb27dSuLZERrRxQIAA0wAA2FnZXQAEkxqYXZhL2xhbmcvU3RyaW5nO0wABWVtYWlscQB
역직렬화 예제 코드
역직렬화 조건
직렬화 대상이 된 객체의 클래스가 클래스 패스에 존재해야 하며 import 되어 있어야 한다!
* 중요한 점은 직렬화와 역직렬화의 객체가 다를 수도 있다는것을 고려해야한다.
JSON 직렬화 예제
실행 결과
궁금했던 점
자바에서도 JSON을 사용해서 파싱하면 되지 왜 직렬화를 써야하는가??
정답은 목적에 따라 적절하게 사용해야 한다는 점이다.
자바 직렬화의 장점
자바 직렬화는 자바 시스템에서 개발에 최적화 되어있다. 복잡한 데이터구조의 클래스의 객체라도 직렬화 기본 조건만 지키면 큰 작업 없이 바로 직렬화가 가능하다. 물론 역직렬화도 마찬가지, 당연하게 보이는 장점 중에하나는 데이터 타입이 자동으로 맞춰지기 때문에 관련 부분을 큰 신경을 쓰지 않아도 됩니다.
그렇게 역직렬화가 되면 기존 객체처럼 바로 사용할 수 있게 됩니다. 개발자 입장에서는 상당히 편한 부분인것!
반응형
'개인공부' 카테고리의 다른 글
Layered Architecture (0) | 2020.10.03 |
---|---|
Maven vs Gradle (0) | 2020.10.03 |
템플릿 엔진(Template Engine)이란 ? (0) | 2020.10.03 |
HTML (0) | 2020.09.28 |
HTTP 란? (0) | 2020.09.28 |