728x90
반응형
직렬화
자바 언어에서 사용되는 Object, Data를 다른 컴퓨터의 자바 시스템에서도 사용할 수 있도록 바이트 스트림 형태로 연속적인 데이터로 변환하는 포맷 변환 기술입니다.
시스템적으로 JVM의 힙(Heap), 스택(stack) 메모리에 상주하고 있는 객체 데이터를 직렬화를 통해 바이트 형태로 변환하여 데이터베이스, 파일 같은 외부 저장소에 저장하고 다른 컴퓨터에서 이 파일을 가져와 역직렬화를 통해 자바 객체로 변환해서 JVM 메모리에 적재하는 것으로 생각하면 됩니다.
※ 역직렬화 : 바이트로 변환된 데이터를 원래대로 자바 시스템의 Object, Data로 변환하는 기술
※ 스트림 : 클라이언트, 서버 간에 출발지 목적지로 입출력하기 위한 데이터가 흐르는 통로
※ 바이트 스트림 : 자바는 기본 단위를 바이트로 두고 있어 네트워크, 데이터베이스로 전송하기 위해 최소 단위인 바이트 스트림으로 변환하여 처리
사용 목적
복잡한 데이터 구조의 클래스의 객체라도 직렬화 기본 조건만 지키면 큰 작업 없이 바로 직렬화, 역직렬화가 가능 합니다.
데이터의 타입이 자동으로 맞춰지기 때문에 관련 부분을 신경 쓰지 않아도 됩니다.
사용되는 곳
서블릿 세션
- 세션을 서블릿 메모리 위에서 운용한다면 직렬화를 필요로 하지 않지만 파일로 저장, 세션 클러스터링, DB를 저장하는 옵션 등을 선택하게 되면 세션 자체가 직렬화가 되어 저장되어 전달됩니다.
캐시
- 데이터베이스로부터 조회한 객체 데이터를 다른 모듈에서도 필요할 때 재차 DB를 조회하는 것이 아닌 객체를 직렬화하여 메모리, 외부 파일에 저장해 두어 역직렬화하여 사용하는 캐시 데이터로 사용 가능 합니다.
자바 RMI
- 원격 시스템 간의 메시지 교환을 위해서 사용하는 자바에서 지원하는 기술입니다.
- 이 메시지에 객체 데이터를 직렬화하여 송신하는 것입니다.
- 최근 소켓을 이용하여 비중이 없는 기술입니다.
728x90
반응형
'백수 > java' 카테고리의 다른 글
Tomcat, JSP, Servlet (0) | 2023.07.25 |
---|---|
10. Servlet과 JSP를 비교해서 설명하세요 (0) | 2023.07.25 |
JDBC란 (0) | 2023.07.18 |
버블 정렬 (0) | 2023.07.13 |
싱글톤 패턴 (0) | 2023.07.13 |